簡介
一個簡單易用且功能豐富的異地組網(wǎng)解決方案,適用于辦公協(xié)作、游戲聯(lián)機(jī)等多種場景。
特點
與 ZeroTier、TailScale 等方案相比,EasyTier 采用去中心化設(shè)計,消除了傳統(tǒng)組網(wǎng)中的客戶端、服務(wù)端、中繼服務(wù)器等概念,簡化了部署流程。
支持命令行,也基于 Tauri 實現(xiàn)了跨平臺的 GUI 支持。
功能介紹
自研路由協(xié)議:節(jié)點間通過自研的鏈路狀態(tài)路由協(xié)議高效交換信息,快速高效。
靈活的連接選項:支持 UDP、TCP、WireGuard (WG)、QUIC 等多種協(xié)議,結(jié)合 AES-GCM 加密技術(shù),確保數(shù)據(jù)安全。
內(nèi)網(wǎng)穿透:基于 STUN 的 UDP 內(nèi)網(wǎng)穿透,支持 IPv6,同時支持中繼以應(yīng)對復(fù)雜網(wǎng)絡(luò)環(huán)境。
虛擬局域網(wǎng)接入:可作為WireGuard服務(wù)端,允許用戶通過WireGuard客戶端輕松接入虛擬局域網(wǎng),無需額外軟件。
子網(wǎng)路由功能:通過子網(wǎng)路由,用戶可以在任何地點通過部署在家中的 EasyTier 節(jié)點,無縫訪問家中所有設(shè)備。
公共服務(wù)器輔助:為沒有公網(wǎng)IP的用戶提供免費的公共服務(wù)器輔助組網(wǎng),簡化了組網(wǎng)過程。
支持平臺
項目地址
歡迎大家試用,也歡迎感興趣的朋友一起參與開發(fā)
Ext Link: https://easytier.top
下載附件:easytier-gui_2.1.0_x64-setup.rar
-
80.7 MB4 days ago
-
12.7 MB4 days ago
-
7.32 MB4 days ago
-
86.2 MB4 days ago
-
8.58 MB4 days ago
-
5.77 MB4 days ago
-
8.25 MB4 days ago
-
6.31 MB4 days ago
-
7.87 MB4 days ago
-
10.5 MB4 days ago
-
5 days ago
-
5 days ago
一個簡單、安全、去中心化的內(nèi)網(wǎng)穿透 VPN 組網(wǎng)方案,使用 Rust 語言和 Tokio 框架實現(xiàn)。
去中心化:無需依賴中心化服務(wù),節(jié)點平等且獨立。
安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保護(hù)中轉(zhuǎn)流量。
高性能:全鏈路零拷貝,性能與主流組網(wǎng)軟件相當(dāng)。
跨平臺:支持 MacOS/Linux/Windows/Android,未來將支持 IOS。可執(zhí)行文件靜態(tài)鏈接,部署簡單。
無公網(wǎng) IP 組網(wǎng):支持利用共享的公網(wǎng)節(jié)點組網(wǎng),可參考 配置指南
NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在復(fù)雜的網(wǎng)絡(luò)環(huán)境下也能建立穩(wěn)定的連接。
子網(wǎng)代理(點對網(wǎng)):節(jié)點可以將可訪問的網(wǎng)段作為代理暴露給 VPN 子網(wǎng),允許其他節(jié)點通過該節(jié)點訪問這些子網(wǎng)。
智能路由:根據(jù)流量智能選擇鏈路,減少延遲,提高吞吐量。
TCP 支持:在 UDP 受限的情況下,通過并發(fā) TCP 鏈接提供可靠的數(shù)據(jù)傳輸,優(yōu)化性能。
高可用性:支持多路徑和在檢測到高丟包率或網(wǎng)絡(luò)錯誤時切換到健康路徑。
IPV6 支持:支持利用 IPV6 組網(wǎng)。
多協(xié)議類型: 支持使用 WebSocket、QUIC 等協(xié)議進(jìn)行節(jié)點間通信。
下載預(yù)編譯的二進(jìn)制文件
訪問 GitHub Release 頁面 下載適用于您操作系統(tǒng)的二進(jìn)制文件。Release 壓縮包中同時包含命令行程序和圖形界面程序。
通過 crates.io 安裝
通過源碼安裝
cargo install --git https://github.com/EasyTier/EasyTier.git easytier
通過Docker Compose安裝
請訪問 EasyTier 官網(wǎng) 以查看完整的文檔。
使用一鍵腳本安裝 (僅適用于 Linux)
wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && bash /tmp/easytier.sh install
使用本腳本安裝的 Easytier 可以使用腳本的 uninstall/update 對其卸載/升級
使用 Homebrew 安裝 (僅適用于 MacOS)
brew tap brewforge/chinese
brew install --cask easytier
下文僅描述命令行工具的使用,圖形界面程序可參考下述概念自行配置。
確保已按照 安裝指南 安裝 EasyTier,并且 easytier-core 和 easytier-cli 兩個命令都已經(jīng)可用。
假設(shè)雙節(jié)點的網(wǎng)絡(luò)拓?fù)淙缦?/p>
在節(jié)點 A 上執(zhí)行:
sudo easytier-core --ipv4 10.144.144.1
命令執(zhí)行成功會有如下打印。
在節(jié)點 B 執(zhí)行
sudo easytier-core --ipv4 10.144.144.2 --peers udp://22.1.1.1:11010
測試聯(lián)通性
兩個節(jié)點應(yīng)成功連接并能夠在虛擬子網(wǎng)內(nèi)通信
使用 easytier-cli 查看子網(wǎng)中的節(jié)點信息
基于剛才的雙節(jié)點組網(wǎng)例子,如果有更多的節(jié)點需要加入虛擬網(wǎng)絡(luò),可以使用如下命令。
sudo easytier-core --ipv4 10.144.144.2 --peers udp://22.1.1.1:11010
其中 --peers
參數(shù)可以填寫任意一個已經(jīng)在虛擬網(wǎng)絡(luò)中的節(jié)點的監(jiān)聽地址。
假設(shè)網(wǎng)絡(luò)拓?fù)淙缦拢?jié)點 B 想將其可訪問的子網(wǎng) 10.1.1.0/24 共享給其他節(jié)點。
則節(jié)點 B 的 easytier 啟動參數(shù)為(新增 -n 參數(shù))
sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24
子網(wǎng)代理信息會自動同步到虛擬網(wǎng)絡(luò)的每個節(jié)點,各個節(jié)點會自動配置相應(yīng)的路由,節(jié)點 A 可以通過如下命令檢查子網(wǎng)代理是否生效。
檢查路由信息是否已經(jīng)同步,proxy_cidrs 列展示了被代理的子網(wǎng)。
easytier-cli route
測試節(jié)點 A 是否可訪問被代理子網(wǎng)下的節(jié)點
EasyTier 支持共享公網(wǎng)節(jié)點進(jìn)行組網(wǎng)。目前已部署共享的公網(wǎng)節(jié)點 tcp://public.easytier.top:11010
。
使用共享節(jié)點時,需要每個入網(wǎng)節(jié)點提供相同的 --network-name
和 --network-secret
參數(shù),作為網(wǎng)絡(luò)的唯一標(biāo)識。
以雙節(jié)點為例,節(jié)點 A 執(zhí)行:
sudo easytier-core -i 10.144.144.1 --network-name abc --network-secret abc -e tcp://public.easytier.top:11010
節(jié)點 B 執(zhí)行
sudo easytier-core --ipv4 10.144.144.2 --network-name abc --network-secret abc -e tcp://public.easytier.top:11010
命令執(zhí)行成功后,節(jié)點 A 即可通過虛擬 IP 10.144.144.2 訪問節(jié)點 B。
EasyTier 可以用作 WireGuard 服務(wù)端,讓任意安裝了 WireGuard 客戶端的設(shè)備訪問 EasyTier 網(wǎng)絡(luò)。對于目前 EasyTier 不支持的平臺 (如 iOS、Android 等),可以使用這種方式接入 EasyTier 網(wǎng)絡(luò)。
假設(shè)網(wǎng)絡(luò)拓?fù)淙缦拢?/p>
我們需要 iPhone 通過節(jié)點 A 訪問 EasyTier 網(wǎng)絡(luò),則可進(jìn)行如下配置:
在節(jié)點 A 的 easytier-core 命令中,加入 --vpn-portal 參數(shù),指定 WireGuard 服務(wù)監(jiān)聽的端口,以及 WireGuard 網(wǎng)絡(luò)使用的網(wǎng)段。
# 以下參數(shù)的含義為: 監(jiān)聽 0.0.0.0:11013 端口,WireGuard 使用 10.14.14.0/24 網(wǎng)段
sudo easytier-core --ipv4 10.144.144.1 --vpn-portal wg://0.0.0.0:11013/10.14.14.0/24
easytier-core 啟動成功后,使用 easytier-cli 獲取 WireGuard Client 的配置。
$> easytier-cli vpn-portal
portal_name: wireguard
############### client_config_start ###############
[Interface]
PrivateKey = 9VDvlaIC9XHUvRuE06hD2CEDrtGF+0lDthgr9SZfIho=
Address = 10.14.14.0/32 # should assign an ip from this cidr manually
[Peer]
PublicKey = zhrZQg4QdPZs8CajT3r4fmzcNsWpBL9ImQCUsnlXyGM=
AllowedIPs = 10.144.144.0/24,10.14.14.0/24
Endpoint = 0.0.0.0:11013 # should be the public ip(or domain) of the vpn server
PersistentKeepalive = 25
############### client_config_end ###############
connected_clients:
[]
使用 Client Config 前,需要將 Interface Address 和 Peer Endpoint 分別修改為客戶端的 IP 和 EasyTier 節(jié)點的 IP。將配置文件導(dǎo)入 WireGuard 客戶端,即可訪問 EasyTier 網(wǎng)絡(luò)。
每個虛擬網(wǎng)絡(luò)(通過相同的網(wǎng)絡(luò)名稱和密鑰建鏈)都可以充當(dāng)公共服務(wù)器集群。其他網(wǎng)絡(luò)的節(jié)點可以連接到公共服務(wù)器集群中的任意節(jié)點,無需公共 IP 即可發(fā)現(xiàn)彼此。
運行自建的公共服務(wù)器集群與運行虛擬網(wǎng)絡(luò)完全相同,不過可以跳過配置 ipv4 地址。
也可以使用以下命令加入官方公共服務(wù)器集群,后續(xù)將實現(xiàn)公共服務(wù)器集群的節(jié)點間負(fù)載均衡:
sudo easytier-core --network-name easytier --network-secret easytier -p tcp://public.easytier.top:11010
可使用 easytier-core --help
查看全部配置項
我們歡迎并鼓勵社區(qū)貢獻(xiàn)!如果你想?yún)⑴c進(jìn)來,請?zhí)峤?nbsp;GitHub PR。詳細(xì)的貢獻(xiàn)指南可以在 CONTRIBUTING.md 中找到。
EasyTier 根據(jù) Apache License 2.0 許可證發(fā)布。
該文章在 2024/12/24 18:19:09 編輯過