All Projects → reddec → tinc-boot

reddec / tinc-boot

Licence: MPL-2.0 License
Bootstrap your Tinc node quickly and easy

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to tinc-boot

Wireguard Private Networking
Build your own multi server private network using wireguard and ansible
Stars: ✭ 124 (-3.12%)
Mutual labels:  mesh-networks, vpn
NeoNetwork
A useless VPN Network ready for peering
Stars: ✭ 46 (-64.06%)
Mutual labels:  vpn, tinc
docker-tinc
A docker image to run tinc vpn 🐳
Stars: ✭ 18 (-85.94%)
Mutual labels:  vpn, tinc
EtherGuard-VPN
Layer2 version of wireguard with Floyd Warshall implement in go.
Stars: ✭ 38 (-70.31%)
Mutual labels:  mesh-networks, vpn
edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Stars: ✭ 223 (+74.22%)
Mutual labels:  mesh-networks, vpn
Drago
A flexible configuration manager for Wireguard networks
Stars: ✭ 204 (+59.38%)
Mutual labels:  mesh-networks, vpn
Wesher
wireguard overlay mesh network manager
Stars: ✭ 461 (+260.16%)
Mutual labels:  mesh-networks, vpn
v-switch
Virtual Encrypted Switch across the network, using UDP + AES + TAP
Stars: ✭ 27 (-78.91%)
Mutual labels:  vpn, tinc
ansible-tinc
Role to install tinc in a star/ring topology (w/ leaf/spine) (based on your variables)
Stars: ✭ 15 (-88.28%)
Mutual labels:  vpn, tinc
netmaker
Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
Stars: ✭ 4,147 (+3139.84%)
Mutual labels:  mesh-networks, vpn
wg-api
creates an HTTP endpoint for a Wireguard® VPN server
Stars: ✭ 61 (-52.34%)
Mutual labels:  vpn
free
freefq账号已恢复,此号暂停使用!--翻墙、免费翻墙、免费科学上网、免费节点、免费梯子、免费ss/v2ray/trojan节点、蓝灯、谷歌商店、翻墙梯子
Stars: ✭ 280 (+118.75%)
Mutual labels:  vpn
chef-openvpn
A multi-configuration OpenVPN server cookbook featuring IPv6 support and easy setup of client files.
Stars: ✭ 23 (-82.03%)
Mutual labels:  vpn
AdGuard-WireGuard-Unbound-Cloudflare
The Ultimate Network Security Guide 🔒 Protection | 🔎 Privacy | 🚀 Performance on home network 24/7 🕛 Accessible anywhere 🌏
Stars: ✭ 160 (+25%)
Mutual labels:  vpn
ipvpn
[WIP] Easy-to-use decentralized secure overlay private network (for any device)
Stars: ✭ 24 (-81.25%)
Mutual labels:  vpn
iosvpn.github.io
iPhone和iOS 翻墙梯子VPN推荐,2022中国苹果手机iPhone翻墙软件和科学上网避坑指南,稳定梯子推荐。
Stars: ✭ 72 (-43.75%)
Mutual labels:  vpn
v2rayfree
免费公益v2ray节点订阅、最新免费v2ray节点订阅地址、免费v2ray节点每日更新、免费ss/v2ray/trojan节点、freefq
Stars: ✭ 352 (+175%)
Mutual labels:  vpn
mediastack
All in one Docker Compose media server
Stars: ✭ 42 (-67.19%)
Mutual labels:  vpn
nordvpn
NordVpn Docker Client
Stars: ✭ 475 (+271.09%)
Mutual labels:  vpn
linguard
A simple, yet powerful web GUI to manage your Wireguard server, powered by Flask.
Stars: ✭ 88 (-31.25%)
Mutual labels:  vpn

Tinc-Boot

license donate Download

Idea to create a easy-to-use wrapper over tinc vpn.

Quick start (linux only)

skip to installation

Automatic

node 1

sudo tinc-boot run

node 2

follow command from previous operation

Custom token

node 1

sudo tinc-boot -t MYSECRET run 

node 2

sudo tinc-boot run -t MYSECRET --join http://<node1>:8665

Firewall

Use (--ufw) to open port on ufw-based systems automatically

tinc-boot run --ufw ...

Required opened default ports:

  • <port>/udp,<port>/tcp - port defined as --tinc-port or generated in tinc.conf
  • 8665/tcp - port defined as -p --port for boot protocol
  • 18655/tcp (tinc interface) - internal port for communication. Only for interface defined in tinc.conf

Overview

Tinc VPN - is full-mesh, auto-healing, time-proofed VPN system without single point of failure, with high-throughput and serious cryptography. All nodes in a Tinc network are fully equal. New nodes discovering full topology through any entry point. Node may interact with each other even if they don't have direct connections.

Tinc is a great and have a lot of features. It's ideal for a complicated situations (China, Russia and others). I really admire the project.

transit

But... it's pain to configure and maintain.

Pain to create a new node. Pain to add new node to network.

Minimal configuration for a first public node:

  • 2 files (tinc.conf, hostfile),
  • 1 script (tinc-up),
  • 2 directories (net, hosts),
  • 1 command execution (key generation).

(let's not count service initialization and other common stuff)

Second node adds key exchange (+1 operation if we will use rsync, or +2 operations if manually).

second_node

Next new public nodes require increasing number of additional operations (+N operations, where N is a number of public nodes).

third_node

To be honest, to just to connect to the network an only single key exchange operation required: with any public node. Than tincd will discover all other nodes.

But after your node disconnect/reboot and in case of death of your entry node you will be no more able to connect to other alive nodes (because they don't know your key and your node don't know theirs).

Tinc-boot - is a all-in-one tool with zero dependency (except tinc of course), that aims to achieve:

  1. one-line node initialization
  2. automatic keys distribution
  3. simplified procedure to add new node to existent net

With simple UI (available on your VPN address with port 1655 by default)

image

Donating always welcome

  • ETH: 0xA4eD4fB5805a023816C9B55C52Ae056898b6BdBC
  • BTC: bc1qlj4v32rg8w0sgmtk8634uc36evj6jn3d5drnqy

Installation

  • (recommended) look at releases page and download
  • one line shell command:
curl -L https://github.com/reddec/tinc-boot/releases/latest/download/tinc-boot_linux_amd64.tar.gz | sudo tar -xz -C /usr/local/bin/ tinc-boot
  • build from source go get -v github.com/reddec/tinc-boot/cmd/...

  • Ansible galaxy: ansible-galaxy install reddec.tinc_boot

  • From bintray repository for most debian-based distribution (trusty, xenial, bionic, buster, wheezy):

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61
echo "deb https://dl.bintray.com/reddec/debian {distribution} main" | sudo tee -a /etc/apt/sources.list
sudo apt install tinc-boot

Independent maintainers

Support

Build requirements

  • go 1.13+

Documentation

  • Available by --help for all commands
  • Available in MANUAL.md

Runtime requirements

  • Linux
  • tincd 1.10.xx
  • bash
  • (recommended) systemd

Tested operation systems

  • Ubuntu 18.04 x64
  • Archlinux (Q1 2019) x64
  • Manjaro (Q1 2019) x64

Should work on all major linux systems, except generated helpers useful only for systemd-based OS.

Quick start

Download/build binary to /usr/local/bin/tinc-boot.

First node

sudo tinc-boot gen --standalone -a <PUBLIC ADDRESS>

and follow recommendations

Explanation

  • --standalone means that it's a first node, no need for keys exchange
  • -a <address> sets public address of node (if exists); could be used several times

Will generate all required files under /etc/tinc/dnet.

Turn node to boot node

sudo tinc-boot bootnode --service --token <SECRETTOKEN>

and follow recommendations

Explanation

  • --service generates systemd file to /etc/systemd/system/tinc-boot-{net}.service
  • --dir location of tinc configuration
  • --token set's authorization token that will be used by clients

Create another node and join to net

sudo tinc-boot gen --token <SECRETTOKEN> <PUBLIC ADDRESS>:8655

Don't forget add -a <NODE ADDRESS> if applicable

and follow recommendations

How it works

overview

Windows

Non-primary platform, limited support, but should work

Tested only for x64

See proof on Youtube

Requirements:

  1. Tinc for Windows: download on official site
  2. Install TAP driver!:
  • Go to C:\Program Files(x86)\tinc\tap-win64
  • As administrator run addtap.bat
  1. Rename generated network adapter to the name of the network (dnet by-default)

Usage:

  1. Launch command line As administrator
  2. Navigate to the directory with tinc-boot.exe
  3. With black-magic, tinc-boot.exe /help command and instructions for normal OS (*Nix) generate config
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].