EasyTier: A New Tool for Cross-Region Networking

Follow us on WeChat “Wonderful Linux World
Set as “Starred“, bringing you Linux fun every day!
EasyTier: A New Tool for Cross-Region Networking

EasyTier is a simple, secure, decentralized remote networking solution powered by Rust and Tokio, an open-source project.

Advantages

  • Decentralized: No reliance on centralized services, nodes are equal and independent
  • Public IP Networking: Supports networking using shared public nodes, can use EasyTier public peers
  • Low Resource Usage: Even the most basic machines can run it
  • Cross-Platform Support
  • NAT Traversal: Supports UDP-based NAT traversal, establishing stable connections even in complex network environments
  • Subnet Proxy (Point-to-network): Nodes can expose accessible subnets as proxies to remote subnets, allowing other nodes to access these subnets through that node
  • Smart Routing: Intelligently selects links based on traffic, reducing latency and increasing throughput
  • TCP Support: Provides reliable data transmission through concurrent TCP connections when UDP is restricted, optimizing performance
  • High Availability: Supports multi-path and switches to healthy paths when high packet loss or network errors are detected
  • Security: Supports encrypted communication using WireGuard, also supports AES-GCM encryption to protect transit traffic
  • IPv6 Support: Supports networking using IPv6

Project Status

  • EasyTier/EasyTier
  • Official Documentation

Deployment

Here we will take manual installation and Docker deployment as examples

Manual Installation Deployment

EasyTier is developed in Rust and cross-compiled into binary files, making deployment extremely easy. Just download the pre-compiled files and install them, follow the steps below.

EasyTier does not differentiate between client and server by default, so this deployment serves as both server and client. Generally, open listening ports for server, and do not open listening ports for client.

Linux-x86_64 is suitable for Debian series, other architecture systems are similar. Default execution is in the root terminal.

Download EasyTier

$ mkdir -p /etc/et && cd /etc/et
$ wget https://github.com/EasyTier/EasyTier/releases/download/v2.1.1/easytier-linux-x86_64-v2.1.1.zip
# If the above cannot be downloaded, use the link below
$ wget https://gh.dev.438250.xyz/https://github.com/EasyTier/EasyTier/releases/download/v2.1.1/easytier-linux-x86_64-v2.1.1.zip

Unzip

$ unzip easytier-linux-x86_64-v2.1.1.zip
$ cp -a easytier-linux-x86_64/* .
$ rm -rf easytier-linux-x86_64 easytier-linux-x86_64-v2.1.1.zip
$ chmod +x ./*
$ mv ./easytier-* /usr/bin/

Create Configuration File

The default path is /etc/et/config.toml, with the following content:

instance_name = "default"
# The IP address for easytier networking
ipv4 = "192.168.66.80"
dhcp = false
exit_nodes = []
# API address, remember to change to local listening
rpc_portal = "127.0.0.1:15888"
# Custom use ports 32379 32380 as listening discovery service, default listens IPv4/IPv6, server can configure according to actual situation, can open all or leave empty to not open listeners = [] , client can not open
listeners = [
    "tcp://0.0.0.0:32379",
    "udp://0.0.0.0:32379",
    "udp://[::]:32379",
    "tcp://[::]:32379",
    "wss://0.0.0.0:32380/",
    "wss://[::]:32380/",
]

# Networking credentials
[network_identity]
network_name = "xxxx"
network_secret = "xxxx"

# tcp://public.easytier.top:11010 is a custom node to connect to, if it's the first node, no configuration is needed, here using the official node as an example
[[peer]]
uri = "tcp://public.easytier.top:11010"

# Other parameters
[flags]
dev_name = "easytier0"
enable_ipv6 = true

Additionally, once the service is running, you can also use the easytier-cli node config command to view the node configuration file.

Create Startup Daemon File and Start

$ cat > /etc/systemd/system/easytier.service <<EOF
[Unit]
Description=EasyTier
After=network.target

[Service]
Type=simple
WorkingDirectory=/etc/et
# ExecStart=/usr/bin/easytier-core -i 192.168.66.80 --network-name ysicing --network-secret ysicing -e tcp://public.easytier.top:11010 --dev-name easytier0 --rpc-portal 127.0.0.1:15888 --no-listener
ExecStart=/usr/bin/easytier-core -c /etc/et/config.toml
Restart=always
RestartSec=10
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF

You can use the configuration file or command-line parameters. If the node configurations are the same, it is recommended to use the configuration file method.

Start Service

# Enable to start at boot and start immediately
$ systemctl enable easytier --now

If using command-line parameters, you need to reload after each startup.

$ systemctl daemon-reload
$ systemctl restart easytier

Check if Service is Running Normally

Execute easytier-cli peer, since public nodes are used, there will be node information.

EasyTier: A New Tool for Cross-Region Networking

Below is my own networking node.

EasyTier: A New Tool for Cross-Region Networking

Using Docker Deployment

Create docker-compose.yml

  • First, create a directory (e.g., easytier), then create a docker-compose.yml file in that directory with the following content:
services:
  easytier:
    privileged: true
    container_name: easytier
    network_mode: host
    volumes:
      - easytier:/root
    environment:
      - TZ=Asia/Shanghai
    # For easy deployment in China, I will periodically sync to Tencent Cloud Container Repository
    image: ccr.ccs.tencentyun.com/k7scn/easytier:latest
    # Credentials must remain consistent
    command: -i 192.168.66.8 --network-name ysicing --network-secret ysicing -l tcp://0.0.0.0:32379 -e tcp://public.easytier.top:11010 --dev-name easytier0 --rpc-portal 127.0.0.1:15888 # --vpn-portal wg://0.0.0.0:32380/192.168.77.0/24
    restart: always

volumes:
  easytier:
    driver: local
  • Start Service
$ docker compose pull
$ docker compose up -d

Similarly, if you need to check node information, you can use docker exec -it easytier easytier-cli peer command.

You need to allow relevant ports, such as 32379, 32380, etc.

Deployment on Other Systems

Windows deployment can refer to the official documentation.

Windows Scoop Installation

Run the following code in PowerShell to install Scoop.

irm get.scoop.sh | iex
scoop install git
scoop install nssm
# Add software source
scoop bucket add moec https://github.com/laoxong/ScoopBucket
scoop install easytier
# Start as a service, or can directly start for testing
nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe your parameters
# Edit service
nssm edit easytier_service

Example: nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe -i 192.168.66.81 -e tcp://public.easytier.top:11010 --dev-name easytier0 --network-name xxxx --network-secret xxxx

Note: Windows requires administrator privileges to execute, and the relevant paths need to be confirmed, not necessarily C:\Scoop\, it may be in the current user’s directory under scoop directory.

Open services.msc to find easytier_service and modify to delayed start.

EasyTier: A New Tool for Cross-Region Networking

Others

For reference only, no responsibility for its security.

  • EasyTier Configuration Management Script
  • EasyTier Manager
  • EasyTier Public Server

This article is reprinted from: “Solitudes”, original text: https://ysicing.me/easytier, copyright belongs to the original author. Welcome to submit articles, submission email: [email protected].

EasyTier: A New Tool for Cross-Region Networking

🚀 Recently, we have established a technical exchange WeChat group. Many industry experts have already joined. Interested students can join us to exchange technology. Reply “Join Group” directly on the “Wonderful Linux World” WeChat official account to get invited.

🌟“Geek View”A comprehensive information guide essential for tech enthusiasts, waiting for you to explore! Visit https://bestgeek.org to open a new world.

📕 Follow“Wonderful Linux World” WeChat official account, leading you to an interesting new life! For more useful and fun software resources, visit https://666666.dev for free access.

EasyTier: A New Tool for Cross-Region Networking

You might also like

Click the image below to read

EasyTier: A New Tool for Cross-Region Networking

Another ping tool that supports visual charts and multi-address concurrencyEasyTier: A New Tool for Cross-Region NetworkingClick the image above, “Meituan|Ele.me” takeaway red envelopes are free every day

EasyTier: A New Tool for Cross-Region Networking

For more interesting internet news, follow the “Wonderful Internet” video account for all updates!

Leave a Comment