EasyTier是由 Rust 和 Tokio 驅(qū)動一個 簡單 、 安全 、 去中心化 的內(nèi)網(wǎng)穿透 遠(yuǎn)程 組網(wǎng)方案, 開源項(xiàng)目 。
優(yōu)點(diǎn) ? 去中心化:無需依賴中心化服務(wù),節(jié)點(diǎn)平等且獨(dú)立 ? 公網(wǎng) IP 組網(wǎng):支持利用共享的公網(wǎng)節(jié)點(diǎn)組網(wǎng), 可以使用EasyTier公共Peers ? NAT穿透:支持基于 UDP 的 NAT 穿透,即使在復(fù)雜的網(wǎng)絡(luò)環(huán)境下也能建立穩(wěn)定的連接 ? 子網(wǎng)代理(點(diǎn)對網(wǎng)):節(jié)點(diǎn)可以將可訪問的網(wǎng)段作為代理暴露給 遠(yuǎn)程 子網(wǎng),允許其他節(jié)點(diǎn)通過該節(jié)點(diǎn)訪問這些子網(wǎng) ? 智能路由:根據(jù)流量智能選擇鏈路,減少延遲,提高吞吐量 ? TCP 支持:在 UDP 受限的情況下,通過并發(fā) TCP 鏈接提供可靠的數(shù)據(jù)傳輸,優(yōu)化性能 ? 高可用性:支持多路徑和在檢測到高丟包率或網(wǎng)絡(luò)錯誤時切換到健康路徑 ? 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保護(hù)中轉(zhuǎn)流量 ? IPV6 支持:支持利用 IPV6 組網(wǎng) 項(xiàng)目情況 部署 這里以手動安裝和docker部署方式為例
手動安裝部署 EasyTier采用rust開發(fā),交叉編譯成二進(jìn)制文件,部署極其方便簡單 直接下載已經(jīng)編譯好的文件,安裝即可,下面分幾步執(zhí)行
EasyTier默認(rèn)是不區(qū)分客戶端還是服務(wù)端,故本次部署即是服務(wù)端又是客戶端。一般情況下 開放監(jiān)聽端口為服務(wù)端,不開放監(jiān)聽端口為客戶端
Linux-x86_64
適用于Debian系列,其它架構(gòu)系統(tǒng)類似。默認(rèn)root終端執(zhí)行。
下載EasyTier mkdir -p /etc/et && cd /etc/et wget wget https://github.com/EasyTier/EasyTier/releases/download/v2.1.1/easytier-linux-x86_64-v2.1.1.zip # 上面沒法下載,可以使用下面的鏈接下載 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 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/
編寫配置文件 默認(rèn)路徑為 /etc/et/config.toml
,內(nèi)容如下:
instance_name = "default" # easytier組網(wǎng)的ip地址 ipv4 = "192.168.66.80" dhcp = false exit_nodes = [] # api地址,記得改成本地監(jiān)聽 rpc_portal = "127.0.0.1:15888" # 自定義 使用 32379 32380 端口作為監(jiān)聽發(fā)現(xiàn)服務(wù) 默認(rèn)監(jiān)聽IPv4/IPv6, 服務(wù)端可以根據(jù)自己實(shí)際情況配置,可以全開,也可以為空不開listeners = [],客戶端可以不開 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/" , ] # 組網(wǎng)憑證 [network_identity] network_name = "xxxx" network_secret = "xxxx" # tcp://public.easytier.transform: translateY(11010 是自定義要連的其他節(jié)點(diǎn), 如果是第一個節(jié)點(diǎn),可以不用配置, 這里以官方的節(jié)點(diǎn)為例 [[peer]] uri = "tcp://public.easytier.top:11010" # 其他參數(shù) [flags] dev_name = "easytier0" enable_ipv6 = true
另外當(dāng)服務(wù)跑起來后,也可以使用 easytier-cli node config
命令查看節(jié)點(diǎn)配置文件
編寫啟動守護(hù)文件并啟動 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.transform: translateY(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
可以使用配置文件,也可以使用命令行參數(shù)方式,如果節(jié)點(diǎn)配置都一樣,推薦使用配置文件方式。
啟動服務(wù) # 開機(jī)自啟并立即啟動 systemctl enable easytier --now
如果使用命令行參數(shù),每次啟動后需要reload一下
systemctl daemon-reload systemctl restart easytier
查詢服務(wù)是否正常 執(zhí)行 easytier-cli peer
, 由于使用的是公共節(jié)點(diǎn),所以會有節(jié)點(diǎn)信息
?
如下是我自己的組網(wǎng)節(jié)點(diǎn)
使用docker部署 編寫docker-compose.yml 首先創(chuàng)建一個目錄(如easytier),然后在該目錄下創(chuàng)建docker-compose.yml文件,內(nèi)容如下:
services: easytier: privileged: true container_name: easytier network_mode: host volumes: - easytier:/root environment: - TZ=Asia/Shanghai # 方便國內(nèi)部署,我會定期同步到騰訊云容器倉庫 image: ccr.ccs.tencentyun.com/k7scn/easytier:latest # 憑證需要保持一致 command: -i 192.168 .66 .8 --network-name ysicing --network-secret ysicing -l tcp://0.0.0.0:32379 -e tcp://public.easytier.transform: translateY(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
啟動服務(wù)
docker compose pull docker compose up -d
同理,如果需要查看節(jié)點(diǎn)信息,可以使用 docker exec -it easytier easytier-cli peer
命令
需要自行放行相關(guān)端口,如32379, 32380等
其他系統(tǒng)部署 Windows部署可以參考 官方文檔 [3]
Windows Scoop安裝 在PowerShell 執(zhí)行下列代碼以安裝Scoop
irm get.scoop.sh | iex scoop install git scoop install nssm # 添加軟件源 scoop bucket add moec https://github.com/laoxong/ScoopBucket scoop install easytier # 以服務(wù)的方式啟動,也可以直接啟動測試 nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier -core .exe 你的參數(shù) # 編輯服務(wù) nssm edit easytier_service
示例: nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe -i 192.168.66.81 -e tcp://public.easytier.transform: translateY(11010 --dev-name easytier0 --network-name xxxx --network-secret xxxx
注意:Windows下需要管理員權(quán)限執(zhí)行, 相關(guān)路徑也需要確定,不一定是 C:\Scoop\
,可能是當(dāng)前用戶目錄下的 scoop
目錄
打開services.msc 找到easytier_service,修改為延遲啟動
其他 僅供參考,不對其安全性負(fù)責(zé)
引用鏈接 [1]
EasyTier/EasyTier: https://github.com/EasyTier/EasyTier/releases [2]
官方文檔: https://easytier.cn/guide/introduction.html [3]
官方文檔: https://easytier.cn/guide/network/install-as-a-windows-service.html [4]
EasyTier 配置管理腳本 : https://github.com/CGG888/EasyTier/blob/main/script%2FREADME.md [5]
EasyTier 管理器: https://github.com/xlc520/easytier-manager [6]
EasyTier 公共服務(wù)器: https://easytier.gd.nkbpal.cn/status/easytier
閱讀原文:原文鏈接
該文章在 2025/1/10 9:18:04 編輯過