@end quotation
@end copying
-@ifnottex
@node Top
@top GoVPN
This manual is for GoVPN -- simple secure free software virtual private
network (VPN) daemon, written entirely on Go programming language.
-@end ifnottex
@menu
* Overview::
all of them independently. Identification key is not secret, but it is
encrypted (obfuscated) during transmission.
+The only platform specific requirement is TAP network interface support.
+API to that kind of device is different, OS dependent and non portable.
+So only a few operating systems is officially supported. Author has no
+proprietary software to work with, so currently there is lack of either
+popular Microsoft Windows or Apple OS X support.
+
@itemize @bullet
@item
Works with @url{https://en.wikipedia.org/wiki/TAP_(network_driver), TAP}
trusted source. Alternatively check this page from other sources and
look for the mailing list announcements.
-You have to set up @code{$GOPATH} properly first. After that you can
-just type @code{make} and all necessary Go libraries will be installed
-and client/server binaries are built in the current directory.
+You have to set up @code{$GOPATH} properly first. For example you can
+clone the repository or decompress tarball and set path like this:
+
+@example
+% mkdir -p govpn/src
+% git clone https://github.com/stargrave/govpn govpn/src/govpn
+or
+% tar xfC govpn-1.5.tar.xz govpn/src && mv govpn/src/govpn-1.5 govpn/src/govpn
+% export GOPATH=$(pwd)/govpn:$GOPATH
+@end example
+
+After that you can just type @code{make} and all necessary Go libraries
+will be installed and client/server binaries are built in the current
+directory:
+
+@example
+% cd govpn/src/govpn
+% make
+[or gmake under FreeBSD]
+@end example
@include pubkey.texi
MTU for the link is 1476, however it does not take in account TAP's
Ethernet frame header length, that in my case is 14 bytes long (1476 - 14).
+Do not forget about setting @code{GOMAXPROC} environment variable for
+using more than one CPU.
+
GNU/Linux IPv4 client-server example:
@example
server% ip link set mtu 1462 dev tap10
server% ip addr add 172.16.0.1/24 dev tap10
server% ip link set up dev tap10
-server% govpn -bind 192.168.0.1:1194
+server% GOMAXPROC=4 govpn-server -bind 192.168.0.1:1194
@end example
@example
client% ip addr add 172.16.0.2/24 dev tap10
client% ip link set up dev tap10
client% ip route add default via 172.16.0.1
+client% export GOMAXPROC=4
client% while :; do
- govpn -key key.txt -id CLIENTID -iface tap10 -remote 192.168.0.1:1194
+ govpn-client -key key.txt -id CLIENTID -iface tap10 -remote 192.168.0.1:1194
done
@end example
EOF
server% chmod 500 peers/CLIENTID/up.sh
server% ifconfig em0 inet6 fe80::1/64
-server% govpn -bind fe80::1%em0
+server% GOMAXPROC=4 govpn-server -bind fe80::1%em0
@end example
@example
client% ifconfig tap10
client% ifconfig tap10 inet6 fc00::2/96 mtu 1462 up
client% route -6 add default fc00::1
+client% export GOMAXPROC=4
client% while :; do
- govpn -key key.txt -id CLIENTID -iface tap10 -remote [fe80::1%me0]:1194
+ govpn-client -key key.txt -id CLIENTID -iface tap10 -remote [fe80::1%me0]:1194
done
@end example