### One-Click Installation Script for EasyTier (Linux) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/installation.md This bash script automates the installation of EasyTier on Linux systems. It downloads the script, executes it with optional proxy support, and installs EasyTier binaries to `/opt/easytier`. It also registers EasyTier as a system service for management. ```bash 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/ systemctl start easytier@default ``` -------------------------------- ### Install EasyTier Windows Service Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-windows-service.md This command executes the 'install.cmd' script to install the EasyTier application as a Windows service. Follow the on-screen prompts to provide necessary configuration information. The service will start automatically upon successful installation. ```batch install.cmd ``` -------------------------------- ### Install EasyTier from Source using Cargo Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/installation.md This command installs the EasyTier program directly from its Git repository using Cargo, the Rust package manager. This method requires a pre-installed Rust environment and LLVM. ```sh cargo install --git https://github.com/EasyTier/EasyTier.git easytier ``` -------------------------------- ### Download and Run EasyTier Executable (Linux/macOS/Windows) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/installation.md This snippet shows how to download and verify the EasyTier command-line program. It provides commands for Linux, macOS, and FreeBSD, as well as for Windows. ```bash ./easytier-core --version ``` ```powershell .\easytier-core.exe --version ``` -------------------------------- ### Install EasyTier via One-Click Script (Linux) Source: https://context7.com/easytier/easytier.github.io/llms.txt Automates the installation of EasyTier on Linux systems, setting it up as a systemd service. This script also facilitates configuration file management and provides commands to manage the EasyTier service. ```bash # Download and run installation 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/ # Binary installed to /opt/easytier # Config file at /opt/easytier/config/default.conf # Manage the service systemctl start easytier@default systemctl stop easytier@default systemctl status easytier@default ``` -------------------------------- ### Install EasyTier using Docker Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/installation.md Instructions for pulling and running the EasyTier Docker image from DockerHub. It includes commands for both the official image and a mirrored image for domestic users, along with options for detached mode and privileged access. ```sh # docker.io image docker pull easytier/easytier:latest docker run -d --privileged --network host easytier/easytier:latest # Domestic users can use DaoCloud image docker pull m.daocloud.io/docker.io/easytier/easytier:latest docker run -d --privileged --network host m.daocloud.io/docker.io/easytier/easytier:latest ``` -------------------------------- ### Multiple Configuration Files Startup (Shell) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/config-file.md Shows how to start EasyTier with multiple configuration files by specifying the -c parameter multiple times. This enables the creation of multiple virtual networks within a single process. ```sh easytier-core -c ./config1.yaml -c ./config2.yaml ``` -------------------------------- ### Deploy EasyTier with Docker Compose Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/installation.md A Docker Compose configuration file for setting up EasyTier. This includes a 'watchtower' service for automatic updates and the main 'easytier' service with specified network modes, capabilities, environment variables, and volume mounts for configuration and machine ID. ```yaml services: watchtower: # Used to automatically update easytier image, delete this part if not needed image: containrrr/watchtower container_name: watchtower restart: unless-stopped environment: - TZ=Asia/Shanghai - WATCHTOWER_NO_STARTUP_MESSAGE volumes: - /var/run/docker.sock:/var/run/docker.sock command: --interval 3600 --cleanup --label-enable easytier: image: easytier/easytier:latest # Domestic users can use m.daocloud.io/docker.io/easytier/easytier:latest hostname: easytier container_name: easytier labels: com.centurylinklabs.watchtower.enable: 'true' restart: unless-stopped network_mode: host cap_add: - NET_ADMIN - NET_RAW environment: - TZ=Asia/Shanghai devices: - /dev/net/tun:/dev/net/tun volumes: - /etc/easytier:/root - /etc/machine-id:/etc/machine-id:ro # Map host machine code command: -d --network-name --network-secret -p tcp://:11010 ``` -------------------------------- ### Start EasyTier as a Public Shared Node Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/host-public-server.md Users can run EasyTier without any parameters to start a public shared node. This allows the node to be used as a public server for networking, even without a public IP address. No root privileges are required for this operation. ```bash easytier-core ``` -------------------------------- ### Manage EasyTier Systemd Service Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-systemd-service.md These shell commands are used to manage the EasyTier systemd service. 'enable' ensures the service starts on boot, while 'start' and 'stop' control its current running state. These commands are the modern approach for systems using systemd. ```shell systemctl enable easytier.service ``` ```shell systemctl start easytier.service ``` ```shell systemctl stop easytier.service ``` -------------------------------- ### Start EasyTier Node with Web Console Connection Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/web-console.md This command starts an EasyTier node and connects it to the Web Console for management. It requires a username registered on the Web Console. The `--machine-id` parameter is recommended for persistent configurations, especially in Docker environments. ```sh sudo ./easytier-core -w sudo ./easytier-core -w --machine-id abc123 sudo ./easytier-core -w --hostname ``` -------------------------------- ### Install EasyTier via Docker Source: https://context7.com/easytier/easytier.github.io/llms.txt Instructions for installing and running EasyTier using Docker containers. This method requires privileged network access for full TUN device support. It includes commands to pull the latest image and run it with default or custom network configurations. ```bash # Pull and run the latest EasyTier image docker pull easytier/easytier:latest docker run -d --privileged --network host easytier/easytier:latest # Run with custom network configuration docker run -d --privileged --network host easytier/easytier:latest \ -d --network-name mynetwork --network-secret mysecret \ -p tcp://public.easytier.top:11010 ``` -------------------------------- ### Start EasyTier and Proxy Subnet on Node B (Linux) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/network-to-network.md This snippet demonstrates how to start the EasyTier core on Node B, proxying the 10.1.1.0/24 subnet. This configuration is part of the network-to-network setup, allowing devices in this subnet to communicate with others via the EasyTier network. ```bash # Start EasyTier and proxy the 10.1.1.0/24 subnet, using a public server to help network easytier-core -i 10.144.144.2 -n 10.1.1.0/24 --network-name n2n_test ``` -------------------------------- ### Start Easytier Core with UDP Protocol Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/web-console.md This command initiates the easytier core service using the UDP protocol, specifying the local address and port for communication. It requires a username for the self-hosted web console. Subsequent usage mirrors the official console. ```bash ./easytier-core -w udp://127.0.0.1:22020/ ``` -------------------------------- ### Start Self-hosted Web Console Source: https://context7.com/easytier/easytier.github.io/llms.txt Launches the EasyTier web console, which provides a user interface for managing the network. It requires specifying the API server port and host, as well as the config server port and protocol. ```bash # Self-hosted web console ./easytier-web-embed \ --api-server-port 11211 \ --api-host "http://your-server:11211" \ --config-server-port 22020 \ --config-server-protocol udp ``` -------------------------------- ### Establish Two-Node Network Source: https://context7.com/easytier/easytier.github.io/llms.txt Demonstrates setting up a basic virtual network between two nodes, where one node has a public IP address. It shows how to start the initial node and connect the second node, enabling basic connectivity like pinging between them. ```bash # Node A (has public IP 22.1.1.1) - Start as the initial node sudo easytier-core -i 10.144.144.1 # Default listening ports: # TCP: 11010, UDP: 11010, WebSocket: 11011, WSS: 11012, WireGuard: 11011 (UDP), QUIC: 11012 (UDP) # Node B - Connect to Node A using DHCP for automatic IP assignment sudo easytier-core -d -p udp://22.1.1.1:11010 # Node B can now ping Node A ping 10.144.144.1 ``` -------------------------------- ### Install EasyTier Service (Linux/Windows) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/oneclick-install-as-service.md Registers EasyTier as a system service for automatic startup on boot. Requires 'easytier-core' and 'easytier-cli' in the same directory. Startup parameters are passed after the 'install' command. ```sh sudo ./easytier-cli service install -w abc ``` ```powershell .\easytier-cli.exe service install -w abc ``` -------------------------------- ### Download Install/Uninstall Scripts using PowerShell Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-windows-service.md These PowerShell commands download the 'install.cmd' and 'uninstall.cmd' scripts from the EasyTier GitHub repository. Ensure PowerShell is running in the directory where you want to save these scripts. ```powershell iwr "https://github.com/EasyTier/EasyTier/raw/refs/heads/main/script/install.cmd" -OutFile "install.cmd" iwr "https://github.com/EasyTier/EasyTier/raw/refs/heads/main/script/uninstall.cmd" -OutFile "uninstall.cmd" ``` -------------------------------- ### Install EasyTier as Systemd Service Source: https://context7.com/easytier/easytier.github.io/llms.txt Sets up EasyTier to run as a systemd service, ensuring automatic startup on Linux systems. This involves creating a service file and managing the service using systemctl commands. ```bash # Create service file /etc/systemd/system/easytier.service cat > /etc/systemd/system/easytier.service << 'EOF' [Unit] Description=EasyTier Service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/root/easytier-core --ipv4 10.144.144.1 --network-name mynet --network-secret mysecret --peers tcp://public.easytier.top:11010 [Install] WantedBy=multi-user.target EOF # Enable and start service systemctl enable easytier.service systemctl start easytier.service # Manage service systemctl status easytier.service systemctl stop easytier.service systemctl restart easytier.service ``` -------------------------------- ### Configure EasyTier Using Configuration Files Source: https://context7.com/easytier/easytier.github.io/llms.txt Manage EasyTier settings using YAML or TOML configuration files instead of command-line parameters. A minimal configuration can be generated and then used to start EasyTier. Multiple configuration files can be applied, and command-line parameters can override settings from the configuration file. ```bash # Generate minimal config (run without parameters) easytier-core # Config is printed to stdout, copy to file # Start with configuration file easytier-core -c ./config.yaml # Start multiple networks from one process easytier-core -c ./config1.yaml -c ./config2.yaml # Command-line parameters override config file settings easytier-core -c ./config.yaml --hostname override-name ``` ```yaml ipv4: 10.144.144.1 network_name: mynetwork network_secret: mysecret dhcp: false listeners: - tcp://0.0.0.0:11010 - udp://0.0.0.0:11010 peers: - tcp://public.easytier.top:11010 proxy_networks: - 192.168.1.0/24 hostname: my-node rpc_portal: 15888 ``` -------------------------------- ### Deploy EasyTier using Docker Compose Source: https://context7.com/easytier/easytier.github.io/llms.txt Provides a Docker Compose configuration for deploying EasyTier, facilitating easy setup and management of the network. This enables automatic updates and simplifies the deployment process. ```yaml version: '3.8' services: easytier: image: ghcr.io/easytier/easytier:latest container_name: easytier restart: unless-stopped command: easytier-core --network-name mynet --network-secret mysecret --peers tcp://public.easytier.top:11010 ports: - "11010:11010" - "11011:11011" volumes: - ./config:/etc/easytier ``` -------------------------------- ### Manage EasyTier Service (Linux/Windows) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/oneclick-install-as-service.md Commands to manage the installed EasyTier service, including starting, stopping, and checking its status. These commands are used after the service has been successfully installed. ```sh sudo ./easytier-cli service start sudo ./easytier-cli service stop sudo ./easytier-cli service status ``` ```powershell .\easytier-cli.exe service start .\easytier-cli.exe service stop .\easytier-cli.exe service status ``` -------------------------------- ### Manage easytier Service with launchctl (Bash) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-macos-service.md Commands to start, stop, load, and unload the easytier service on macOS using launchctl. The load/unload commands with the -w flag ensure persistence across reboots. Dependencies: easytier service registered with launchd. ```bash # Start the easytier service: sudo launchctl start easytier # Load task, -w option will restart on next login/restart. launchctl load -w /Library/LaunchDaemons/easytier.plist # Stop the easytier service: sudo launchctl stop easytier # Unload task, -w option will not be executed on next login/restart. launchctl unload -w /Library/LaunchDaemons/easytier.plist ``` -------------------------------- ### Enable SOCKS5 Proxy Server with EasyTier Source: https://context7.com/easytier/easytier.github.io/llms.txt Enable EasyTier to function as a SOCKS5 proxy server, allowing applications to access the virtual network. This involves starting EasyTier with the `--socks5` flag and a specified port. Applications can then be configured to use this proxy address, and examples demonstrate using `curl` and `ssh` through the proxy. ```bash # Start EasyTier with SOCKS5 server on port 12333 sudo easytier-core -d \ --network-name mynetwork \ --network-secret mysecret \ -p tcp://public.easytier.top:11010 \ --socks5 12333 # Configure applications to use SOCKS5 proxy # Proxy address: 127.0.0.1:12333 # Example: curl through SOCKS5 proxy curl --socks5 127.0.0.1:12333 http://10.144.144.2:8080 # Example: SSH through SOCKS5 proxy ssh -o ProxyCommand='nc -x 127.0.0.1:12333 %h %p' user@10.144.144.2 ``` -------------------------------- ### Start EasyTier and Proxy Subnet on Node A (Linux) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/network-to-network.md This snippet shows how to start the EasyTier core on Node A, proxying the 192.168.1.0/24 subnet. It also configures the system to enable IP forwarding and sets up iptables rules to allow traffic from and to the specified subnet, making Node A a gateway. ```bash # Start EasyTier and proxy the 192.168.1.0/24 subnet, using a public server to help network easytier-core -i 10.144.144.1 -n 192.168.1.0/24 --network-name n2n_test # Allow the gateway to forward traffic and configure the firewall to allow traffic forwarding sysctl -w net.ipv4.ip_forward=1 iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT ``` -------------------------------- ### Start Subnet Proxy with EasyTier Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/point-to-networking.md Starts the EasyTier service on a node, enabling it to proxy a specified subnet. The '-n' parameter defines the subnet to be proxied. This configuration allows other nodes in the virtual network to access the proxied subnet. ```sh sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24 ``` -------------------------------- ### View easytier Service Logs (Bash) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-macos-service.md Displays the real-time logs for the easytier service using the tail command. The -f option allows for continuous monitoring of new log entries. Dependencies: easytier service running and logging to /var/log/easytier.log. ```bash sudo tail -f /var/log/easytier.log ``` -------------------------------- ### Initialize Network Namespaces for Performance Testing Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/perf.md Sets up two network namespaces ('red' and 'green') connected via a bridge ('br0'). This configuration is essential for simulating network traffic between isolated environments for performance testing. It installs necessary tools like iperf3 and iptables. ```bash apt update apt install iperf3 iptables -y ip netns add red ip netns add green ip link add br0 type bridge ip link set br0 up ip addr add 192.168.0.1/16 dev br0 ip link add vethcab0 type veth peer name red0 ip link set vethcab0 master br0 ip link set red0 netns red ip netns exec red ip link set lo up ip netns exec red ip link set red0 up ip netns exec red ip addr add 192.168.0.2/16 dev red0 ip netns exec red ip route add default via 192.168.0.1 ip link set vethcab0 up ip link add vethcab1 type veth peer name green0 ip link set vethcab1 master br0 ip link set green0 netns green ip netns exec green ip link set lo up ip netns exec green ip link set green0 up ip netns exec green ip addr add 192.168.0.3/16 dev green0 ip netns exec green ip route add default via 192.168.0.1 ip link set vethcab1 up sysctl net.ipv4.ip_forward=1 sysctl net.bridge.bridge-nf-call-iptables=0 sysctl net.bridge.bridge-nf-call-ip6tables=0 sysctl net.ipv6.conf.lo.disable_ipv6=0 # Note: EasyTier does not rely on public network services, so iptables forwarding can be omitted iptables -t nat -A POSTROUTING -j MASQUERADE iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -i eht0 -j ACCEPT iptables --policy FORWARD ACCEPT nohup ip netns exec red iperf3 -s & ``` -------------------------------- ### Configure IPv6 Listener for EasyTier Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/p2p-optimize.md This command configures EasyTier to listen on a specific IPv6 UDP port for P2P communication. It helps in establishing more direct connections between nodes by explicitly defining the listening address and port. ```sh easytier-core -l 'tcp://[::]:12345' -l 'udp://[::]:12345' ``` -------------------------------- ### Start EasyTier Core Listener on Node A Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/decentralized-networking.md Initializes the EasyTier core service on a node, making it available for other nodes to connect. It listens on default ports for various protocols (TCP, UDP, WebSocket, WireGuard, QUIC, FakeTCP) and allows customization of listening ports via the -l parameter. ```sh sudo easytier-core -i 10.144.144.1 ``` -------------------------------- ### Configure EasyTier Systemd Service File Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-systemd-service.md This shell script defines the systemd service for EasyTier. It specifies dependencies, the command to execute, and the target runlevel. Ensure you replace placeholder values like IP addresses and network credentials with your actual configuration. ```shell [Unit] Description=EasyTier Service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/root/easytier-core --ipv4 x.x.x.x --network-name xxx --network-secret yyy --peers tcp://peer_host:11010 [Install] WantedBy=multi-user.target ``` -------------------------------- ### Enable User-Space Network Stack for TCP Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/point-to-networking.md Starts EasyTier with the '--use-smoltcp' parameter, which directs TCP traffic through a user-space network stack. This can help bypass firewall restrictions on virtual network interfaces, though it may impact performance. ```sh sudo easytier-core --ipv4 10.144.144.2 --use-smoltcp ``` -------------------------------- ### Register easytier Service with serviceman (Bash) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-macos-service.md Registers the easytier service using the serviceman tool. This command can be used with or without a configuration file. It specifies the service name, daemon mode, working directory, group, user, and the command to run. Dependencies: serviceman. ```bash # Register the easytier service using a configuration file sudo serviceman add --name easytier --daemon \ --workdir /var/log/easytier \ --group wheel --user root \ -- easytier-core -c ~/.config/easytier.toml # Register the easytier service without using a configuration file sudo serviceman add --name easytier --daemon \ --workdir /var/log/easytier \ --group wheel --user root \ -- easytier-core --ipv4 x.x.x.x --network-name xxx --network-secret yyy --peers tcp://peer_host:11010 ``` -------------------------------- ### Load TUN Driver and Create TUN Device on Linux Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/faq.md This code provides the necessary commands to load the TUN driver and create the required /dev/net/tun device file on Linux systems. This is crucial for network virtualization functionalities and troubleshooting 'TunError' issues. Ensure you have the necessary permissions to execute these commands. ```bash modprobe tun mkdir -p /dev/net sudo mknod /dev/net/tun c 10 200 ``` -------------------------------- ### Start EasyTier Node with Shared Public Node (Shell) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/networking-without-public-ip.md This command starts an EasyTier core node, connecting it to a shared public node. It requires specifying the network name, network secret, and the public node's address. The `--ipv4` parameter can be replaced with `-d` for DHCP. ```shell sudo easytier-core -i 10.144.144.1 --network-name abc --network-secret abc -p tcp://:11010 sudo easytier-core --ipv4 10.144.144.2 --network-name abc --network-secret abc -p tcp://:11010 ``` -------------------------------- ### Uninstall EasyTier Windows Service Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/install-as-a-windows-service.md This command executes the 'uninstall.cmd' script to stop and remove the EasyTier Windows service. This is a straightforward process that cleans up the service registration. ```batch uninstall.cmd ``` -------------------------------- ### Run Encrypted UDP Server in Network Namespace Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/perf.md This snippet demonstrates how to initiate an encrypted UDP server within a network namespace using the 'xxx' command. It specifies the server IP, port, a window size, and the local IP address for the server. This is typically used to set up the receiving end of an encrypted UDP connection. ```bash ip netns exec red xxx -k iperf -s 8.134.146.7:29872 -w 1234 --ip 10.26.0.2 ip netns exec green xxx -k iperf -s 8.134.146.7:29872 -w 1234 --ip 10.26.0.3 ``` -------------------------------- ### Configure KCP and QUIC Proxy with EasyTier Source: https://context7.com/easytier/easytier.github.io/llms.txt Improve TCP performance in high packet loss environments by enabling KCP or QUIC protocols. EasyTier can be configured to enable KCP proxy, optionally with a user-space network stack (`smoltcp`), or to enable QUIC proxy. Commands are provided to disable input for these protocols and to check the proxy connection status. ```bash # Enable KCP proxy for TCP traffic (reduces latency) sudo easytier-core --enable-kcp-proxy # Enable KCP with user-space network stack (avoids firewall issues) sudo easytier-core --enable-kcp-proxy --use-smoltcp # Enable QUIC proxy (better bandwidth in high packet loss) sudo easytier-core --enable-quic-proxy # Disable KCP/QUIC input on receiving node sudo easytier-core --disable-kcp-input sudo easytier-core --disable-quic-input # Check proxy connection status easytier-cli proxy # Output example: # ┌────────────────────┬───────────────────┬─────────────────────────┬───────────┬────────────────┐ # │ src │ dst │ start_time │ state │ transport_type │ # ├────────────────────┼───────────────────┼─────────────────────────┼───────────┼────────────────┤ # │ 10.126.126.7:51838 │ 10.147.223.128:22 │ 2025-02-07 10:39:08 UTC │ Connected │ Kcp │ # └────────────────────┴───────────────────┴─────────────────────────┴───────────┴────────────────┘ ``` -------------------------------- ### Networking Tool A UDP Performance Test Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/perf.md Tests the UDP performance of 'Networking Tool A' without encryption. This involves starting the tool in both 'red' and 'green' network namespaces and then running an iperf3 test. ```bash ip netns exec red xxx -k iperf -s 8.134.146.7:29872 --ip 10.26.0.2 ip netns exec green xxx -k iperf -s 8.134.146.7:29872 --ip 10.26.0.3 ip netns exec green iperf3 -c 10.26.0.2 ``` -------------------------------- ### Specify Configuration File Path (Shell) Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/config-file.md Demonstrates how to specify a configuration file path using the -c parameter with the easytier-core command. This allows users to load custom configurations for EasyTier. ```sh easytier-core -c ./config.yaml ``` -------------------------------- ### Deploy Self-Hosted EasyTier Web Console Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/web-console.md This command deploys a self-hosted EasyTier Web Console using the `easytier-web-embed` package, which includes both the web frontend and API backend. It configures the ports and host for the API server and the configuration delivery service. ```sh ./easytier-web-embed \ --api-server-port 11211 \ --api-host "http://127.0.0.1:11211" \ --config-server-port 22020 \ --config-server-protocol udp ``` -------------------------------- ### Host Public EasyTier Server Source: https://context7.com/easytier/easytier.github.io/llms.txt Configures and hosts a public EasyTier relay server. Options include basic setup, restricting relays to RPC only, private mode with network restrictions, and limiting relay bandwidth. ```bash # Basic public server (no configuration needed) easytier-core # Public server with relay restrictions (only relay RPC, not data) easytier-core --relay-network-whitelist --relay-all-peer-rpc # Private mode (only allow specific network) sudo easytier-core --private-mode true \ --network-name my-network \ --network-secret my-secret # Limit relay bandwidth easytier-core --foreign-relay-bps-limit 10000000 ``` -------------------------------- ### Configure WireGuard Client Access with EasyTier Source: https://context7.com/easytier/easytier.github.io/llms.txt Set up EasyTier as a WireGuard server to allow WireGuard clients to join the network. This involves enabling the VPN portal on a specific port and subnet, and then retrieving the client configuration. The client configuration can be modified before use, such as setting specific IP addresses and endpoints. ```bash # Node A - Enable WireGuard portal on port 11013 with client subnet 10.14.14.0/24 sudo easytier-core --ipv4 10.144.144.1 --vpn-portal wg://0.0.0.0:11013/10.14.14.0/24 # Get WireGuard client configuration easytier-cli vpn-portal # Output example: # portal_name: wireguard # client_config: # [Interface] # PrivateKey = 9VDvlaIC9XHUvRuE06hD2CEDrtGF+0lDthgr9SZfIho= # Address = 10.14.14.0/24 # # [Peer] # PublicKey = zhrZQg4QdPZs8CajT3r4fmzcNsWpBL9ImQCUsnlXyGM= # AllowedIPs = 192.168.80.0/20,10.147.223.0/24,10.144.144.0/24 # Endpoint = 0.0.0.0:11013 # Modify client config before use: # - Set Address to specific IP: 10.14.14.1/24 # - Set Endpoint to public IP: 22.1.1.1:11013 ``` -------------------------------- ### Connect to Self-hosted Console Source: https://context7.com/easytier/easytier.github.io/llms.txt Connects to a self-hosted EasyTier console using the provided UDP address and username. This command is typically run with sudo for system-level access. ```bash # Connect to self-hosted console sudo easytier-core -w udp://your-server:22020/your-username ``` -------------------------------- ### Configure Manual Route Forwarding Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/point-to-networking.md Starts EasyTier with the '--manual-routes' parameter, preventing automatic route configuration for proxied subnets. Only specified segments will be routed through the virtual network, offering finer control over traffic flow. ```sh sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24 --manual-routes 10.1.1.0/24 ``` -------------------------------- ### View Networked Nodes with EasyTier CLI Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/faq.md These commands show how to use the EasyTier command-line interface (CLI) to inspect the network status. 'easytier-cli node' lists the nodes in the network, while 'easytier-cli peers' shows the connected peers. These are helpful for verifying network connectivity when the WEB console might not display all machines. ```bash easytier-cli node ``` ```bash easytier-cli peers ``` -------------------------------- ### EasyTier UDP Performance Tests Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/perf.md Tests EasyTier's UDP performance with and without encryption. It involves starting EasyTier core instances in both 'red' and 'green' namespaces and then running an iperf3 test from the 'green' namespace to the 'red' namespace. ```bash # UDP No Encryption ip netns exec red easytier-core -i 10.126.126.2 --multi-thread -u ip netns exec green easytier-core -i 10.126.126.3 -p udp://192.168.0.2:11010 --multi-thread -u ip netns exec green iperf3 -c 10.126.126.2 # UDP Encryption ip netns exec red easytier-core -i 10.126.126.2 --multi-thread ip netns exec green easytier-core -i 10.126.126.3 -p udp://192.168.0.2:11010 --multi-thread ip netns exec green iperf3 -c 10.126.126.2 ``` -------------------------------- ### Check KCP Proxy Status with EasyTier CLI Source: https://github.com/easytier/easytier.github.io/blob/main/en/guide/network/kcp-proxy.md Uses the EasyTier CLI tool to display the status of KCP proxy connections. It shows source and destination addresses, start times, connection states, and the transport type (Tcp or Kcp). ```bash $ easytier-cli proxy ```