Go bindings, management daemons and CLIs for n2n edges and supernodes.
gon2n
is a collection of Go bindings, management daemons and CLIs for the n2n peer-to-peer VPN. n2n is built of two main components:
edge
s, which are the "VPN clients" that manage the TUN/TAP interfaces on every device that is part of a community (a overlay network)supernode
s, which are responsible for both keeping track of theedge
s of a community as well routing traffic toedge
s which can't communicate to each other with a peer-to-peer connection
In a similar way, gon2n
is built of multiple components. The components are:
edged
, a n2n edge management daemon with a gRPC interfacesupernoded
, a n2n supernode management daemon with a gRPC interfaceedgectl
, a CLI foredged
supernodectl
, a CLI forsupernoded
Prebuilt binaries are available on the releases page.
A Go package is available.
A Docker image is available on Docker Hub.
A Docker image is available on Docker Hub.
Helm charts for supernoded
and edged
are available in @pojntfx's Helm chart repository.
There are two daemons, supernoded
and edged
; the latter requires CAP_NET_ADMIN
capabilities to manage the TUN/TAP interfaces.
You may also set the flags by setting env variables in the format SUPERNODED_[FLAG]
(i.e. SUPERNODED_SUPERNODED_CONFIGFILE=examples/supernoded.yaml
) or by using a configuration file.
% supernoded --help
supernoded is the n2n supernode management daemon.
Find more information at:
https://pojntfx.github.io/gon2n/
Usage:
supernoded [flags]
Flags:
-h, --help help for supernoded
-f, --supernoded.configFile string Configuration file to use.
-l, --supernoded.listenHostPort string TCP listen host:port. (default ":1050")
You may also set the flags by setting env variables in the format EDGED_[FLAG]
(i.e. EDGED_EDGED_CONFIGFILE=examples/edged.yaml
) or by using a configuration file.
% edged --help
edged is the n2n edge management daemon.
Find more information at:
https://pojntfx.github.io/gon2n/
Usage:
edged [flags]
Flags:
-f, --edged.configFile string Configuration file to use.
-l, --edged.listenHostPort string TCP listen host:port. (default ":1060")
-h, --help help for edged
There are two client CLIs, supernodectl
and edgectl
.
You may also set the flags by setting env variables in the format SUPERNODE_[FLAG]
(i.e. SUPERNODE_SUPERNODE_CONFIGFILE=examples/supernode.yaml
) or by using a configuration file.
% supernodectl
supernodectl manages supernoded, the n2n supernode management daemon.
Find more information at:
https://pojntfx.github.io/gon2n/
Usage:
supernodectl [command]
Available Commands:
apply Apply a supernode
delete Delete one or more supernode(s)
get Get one or all supernode(s)
help Help about any command
Flags:
-h, --help help for supernodectl
Use "supernodectl [command] --help" for more information about a command.
You may also set the flags by setting env variables in the format EDGE_[FLAG]
(i.e. EDGE_EDGE_CONFIGFILE=examples/edge.yaml
) or by using a configuration file (alternative with DHCP instead of static IPs).
% edgectl
edgectl manages edged, the n2n edge management daemon.
Find more information at:
https://pojntfx.github.io/gon2n/
Usage:
edgectl [command]
Available Commands:
apply Apply an edge
delete Delete one or more edge(s)
get Get one or all edge(s)
help Help about any command
Flags:
-h, --help help for edgectl
Use "edgectl [command] --help" for more information about a command.
gon2n (c) 2021 Felix Pojtinger
SPDX-License-Identifier: AGPL-3.0