gvn - a distrabuted VPN implementation by Go aimed distributed work environment
Go to file
2022-03-04 10:20:06 +08:00
.vscode workable on macOS/Linux 2022-02-24 13:27:34 +08:00
cmd remove pubsub module 2022-03-01 18:09:31 +08:00
conf implementation PING/PONG mechanism 2022-03-01 15:01:45 +08:00
dhcp optimization route logical 2022-03-01 17:53:37 +08:00
eventbus implementation PING/PONG mechanism 2022-03-01 15:01:45 +08:00
p2p remove pubsub module 2022-03-01 18:09:31 +08:00
route optimization route logical 2022-03-01 17:53:37 +08:00
tun fix typo 2022-02-28 09:51:40 +08:00
.gitignore update 2022-02-15 18:45:01 -08:00
cobra.yaml fix typo 2022-02-28 09:51:40 +08:00
go.mod remove pubsub module 2022-03-01 18:09:31 +08:00
go.sum remove pubsub module 2022-03-01 18:09:31 +08:00
LICENSE cobra init 2022-02-15 18:34:21 -08:00
main.go fix typo 2022-02-28 09:51:40 +08:00
Makefile implementation PING/PONG mechanism 2022-03-01 15:01:45 +08:00
README.md Update README.md 2022-03-04 10:20:06 +08:00

GVN: Golang implementation VPN, aimed at distributed work environments.

Build

# for cross-compile, you may need to install aarch64 compile tools:
# dnf install gcc-aarch64-linux-gnu gcc-c++-aarch64-linux-gnu # Fedora and others using RPM etc
# apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu # Ubuntu and others using DEB etc
make clean && make all

Generate config file

export PATH_TO_GVN="..."
# server
"${PATH_TO_TO_GVN}"/gvn-`uname`-`uname -m` init -c server.yaml -s
# client
"${PATH_TO_TO_GVN}"/gvn-`uname`-`uname -m` init -c client.yaml

Run

export PATH_TO_GVN="..."
# server
"${PATH_TO_TO_GVN}"/gvn-`uname`-`uname -m` up -c server.yaml
# client
"${PATH_TO_TO_GVN}"/gvn-`uname`-`uname -m` up -c client.yaml

Windows

Download the wintun.dll from the website and place it under %SYSTEM32% dir.

Test

Has been tested on Linux, macOS and Windows.