Skip to content
Download

Self-deployment Tutorial 1 (Direct Deployment)

If you find public nodes less than satisfactory, why not try deploying your own personal server node.

Prerequisites: A server (computer) with an accessible public IP port. EasyTier has very low resource overhead and hardly affects normal server operation.

As mentioned earlier, EasyTier does not distinguish between server and client. Therefore, on a server with a graphical interface, you can directly use QtEasyTier to deploy an EasyTier server.

Create a new instance configuration. In the basic settings, fill in the hostname, network name, and secret. If you want this server to act as a pure “network access point” and do not need to access services on this device, you can disable DHCP and leave the virtual IPv4 address empty, so that no IP address is assigned to this server. If you also want to manage this device through the QtEasyTier virtual network, you can keep DHCP enabled or assign a fixed virtual IP (recommended).

If you only plan to use this server for your own virtual networking, enable private mode. If you want to use it as a public server or share it with others, turn off this switch so that the instance can forward traffic from devices with different network names and secrets.

Basic Settings

Switch to the advanced settings page. In the Network Services section, there is a “Listen Address” setting. Click “Add Listen Address” and fill it in the following format to confirm.

protocol://0.0.0.0:port

The protocol can be tcp, udp, ws (WebSocket), wss (WebSocket over TLS), or wg (WireGuard). Choose based on your actual situation. If you don’t know which to choose, using tcp and udp is fine.

Add Listen Address

You can add multiple protocols and ports so that the server can be reached through multiple methods, improving connection stability.

After all the above settings are configured, click “Start Running” to run the “server” node. Others can connect to this node using the server’s public IP + port.


Deploying on Linux Without a GUI (using easytier-core)

Section titled “Deploying on Linux Without a GUI (using easytier-core)”

The method described here deploys by directly downloading EasyTier’s official binary and using a configuration file.
This section uses Ubuntu 24.04.3 LTS as an example.

Downloading the EasyTier CLI (easytier-core)

Section titled “Downloading the EasyTier CLI (easytier-core)”

In the text below, * represents an arbitrary filename, and ** represents a different arbitrary filename.

1.1. EasyTier Community Edition install script — maintained by 凉城听暖

Terminal window
wget -O /tmp/installer.sh "https://gitee.com/zyflypzlc/warehouse/raw/master/easytier_installer/installer.sh" && sudo bash /tmp/installer.sh

After installing with the community edition script, the config file does not include public servers. Please add them manually if needed.

1.2. EasyTier Official Script (currently only supports installing 2.4.5)

Note: The official one-click script requires unzip to be installed first.

Terminal window
# Install unzip
sudo apt update && sudo apt install unzip
# One-click install script
wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && sudo bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/

1.3. After Script Execution After the script completes successfully, the EasyTier binaries will be installed in /opt/easytier, with configuration files located at /opt/easytier/config/*.conf.

EasyTier will be registered as a system service, which can be managed with the following commands:

Terminal window
systemctl start easytier # Start
systemctl stop easytier # Stop
systemctl status easytier # Check status
systemctl restart easytier # Restart

The official script’s management commands require replacing easytier with easytier@config-filename It is not recommended to manually change the GitHub acceleration link in the one-click install script!
If the install script fails and you retry, delete the /opt/easytier folder first!

  • Download the appropriate easytier CLI version for your hardware architecture from the EasyTier download page.

For example, for a 64-bit AMD/Intel processor, choose easytier-linux-x86_64-v2.x.x.zip.

https://gh-proxy.org/https://github.com/EasyTier/EasyTier/releases/download/v2.6.4/easytier-linux-x86_64-v2.6.4.zip

You can also use curl to download:

Terminal window
# Install curl (Debian/Ubuntu)
sudo apt update && sudo apt install curl
# Download easytier archive to /tmp
curl -L https://gh-proxy.org/https://github.com/EasyTier/EasyTier/releases/download/v2.6.4/easytier-linux-x86_64-v2.6.4.zip -o /tmp/easytier_tmp_install.zip
  • Extract the archive and move the binary to /opt/easytier
Terminal window
# Install unzip
sudo apt update && sudo apt install unzip
# Extract to /opt/easytier
unzip -o /tmp/easytier_tmp_install.zip -d /opt/easytier
# Move binary files to /opt/easytier
mv /opt/easytier/easytier-linux-x86_64/* /opt/easytier/
  • (Optional) Create the config directory and remove the empty folder
Terminal window
mkdir /opt/easytier/config
rm -rf /opt/easytier/easytier-linux-x86_64/
  • Set execution permissions
Terminal window
sudo chmod +x /opt/easytier/easytier-core /opt/easytier/easytier-cli
  • Use the following command to check the easytier core version. If it displays, the installation was successful.
Terminal window
/opt/easytier/easytier-core --version
  1. (Optional) Install Shell Auto-Completion
Terminal window
# Fish auto-completion
easytier-core --gen-autocomplete fish > ~/.config/fish/completions/easytier-core.fish
easytier-cli gen-autocomplete fish > ~/.config/fish/completions/easytier-core.fish

Next, write a TOML configuration file according to the EasyTier configuration file format.

  • For ET installed via the one-click script, you can directly modify the /opt/easytier/config/*.conf config file.
  • For manually downloaded ET, choose a directory to store the config file, preferably near the easytier-core binary.

The configuration file can be generated using the Config File Generator.

  1. Here is an example config file:
hostname = "MingYueQingFeng" # Node name, customizable
dhcp = false
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
] # Listening ports, customizable
[network_identity]
network_name = "your-network-name"
network_secret = "your-network-key"
[flags]
latency_first = true # Low-latency mode
private_mode = true # Private mode

For ET installed via the one-click script, use the following commands directly to start the EasyTier node:

Terminal window
systemctl start easytier # Community Edition
systemctl start easytier@default # Official Edition

For ET using a custom **.conf config file, use the following commands to start the EasyTier node:

Terminal window
# Stop the node running with the default config
systemctl disable easytier@* && systemctl stop easytier@*
# Enable and start the node with the custom config file
systemctl enable easytier@** && systemctl start easytier@**

For manually installed core, use the following command to start the EasyTier node:

Terminal window
./easytier-core -c /path/to/your/config.toml
# Launch with multiple config files
./easytier-core -c /path/to/your/config1.toml -c /path/to/your/config2.toml

When launching with multiple config files, each config’s listening port and RPC port must use different ports from other simultaneously launched configs!

However, once you close the terminal, EasyTier will be killed. Therefore, we need to register it as a system service so it can keep running.

This example uses a Linux system with systemctl.

  1. Create a systemd service file
Terminal window
sudo nano /etc/systemd/system/easytier.service
  1. Edit the service file
[Unit]
Description=EasyTier Service
# Ensure the network is fully online before starting
After=network.target network-online.target syslog.target
# Explicitly require network online
Wants=network.target network-online.target
[Service]
Type=simple
ExecStart=/path/to/your/easytier-core -c /path/to/your/config.toml
Restart=always
RestartSec=3s
StartLimitIntervalSec=0
[Install]
WantedBy=multi-user.target
  1. Set permissions and load the service
  • Save and exit the editor, then run the following to reload systemd service configuration:
Terminal window
sudo systemctl daemon-reload
  • Enable the service to start automatically on boot:
Terminal window
sudo systemctl enable easytier
  • Start the service:
Terminal window
sudo systemctl start easytier
  • You can check service status and logs with:
Terminal window
systemctl status easytier
journalctl -u easytier

At this point, if nothing goes wrong, the EasyTier server node should have started successfully.