GithubHelp home page GithubHelp logo

chzhewl / gon2n Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pojntfx/gon2n

0.0 1.0 0.0 240 KB

Go bindings, management daemons and CLIs for n2n edges and supernodes.

Home Page: https://pojntfx.github.io/gon2n/

License: GNU Affero General Public License v3.0

Go 91.93% C 5.82% C++ 0.53% Makefile 1.71%

gon2n's Introduction

gon2n

Go bindings, management daemons and CLIs for n2n edges and supernodes.

make CI dibs CI PkgGoDev

Overview

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:

  • edges, which are the "VPN clients" that manage the TUN/TAP interfaces on every device that is part of a community (a overlay network)
  • supernodes, which are responsible for both keeping track of the edges of a community as well routing traffic to edges 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 interface
  • supernoded, a n2n supernode management daemon with a gRPC interface
  • edgectl, a CLI for edged
  • supernodectl, a CLI for supernoded

Installation

Prebuilt Binaries

Prebuilt binaries are available on the releases page.

Go Package

A Go package is available.

Docker Image

supernoded

A Docker image is available on Docker Hub.

edged

A Docker image is available on Docker Hub.

Helm Chart

Helm charts for supernoded and edged are available in @pojntfx's Helm chart repository.

Usage

Daemons

There are two daemons, supernoded and edged; the latter requires CAP_NET_ADMIN capabilities to manage the TUN/TAP interfaces.

supernoded

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")

edged

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

Client CLIs

There are two client CLIs, supernodectl and edgectl.

supernodectl

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.

edgectl

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.

License

gon2n (c) 2021 Felix Pojtinger

SPDX-License-Identifier: AGPL-3.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.