簡介
一個簡單易用且功能豐富的異地組網解決方案,適用于辦公協作、游戲聯機等多種場景。
特點
與 ZeroTier、TailScale 等方案相比,EasyTier 采用去中心化設計,消除了傳統組網中的客戶端、服務端、中繼服務器等概念,簡化了部署流程。
支持命令行,也基于 Tauri 實現了跨平臺的 GUI 支持。
功能介紹
自研路由協議:節點間通過自研的鏈路狀態路由協議高效交換信息,快速高效。
靈活的連接選項:支持 UDP、TCP、WireGuard (WG)、QUIC 等多種協議,結合 AES-GCM 加密技術,確保數據安全。
內網穿透:基于 STUN 的 UDP 內網穿透,支持 IPv6,同時支持中繼以應對復雜網絡環境。
虛擬局域網接入:可作為WireGuard服務端,允許用戶通過WireGuard客戶端輕松接入虛擬局域網,無需額外軟件。
子網路由功能:通過子網路由,用戶可以在任何地點通過部署在家中的 EasyTier 節點,無縫訪問家中所有設備。
公共服務器輔助:為沒有公網IP的用戶提供免費的公共服務器輔助組網,簡化了組網過程。
支持平臺
項目地址
歡迎大家試用,也歡迎感興趣的朋友一起參與開發
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
一個簡單、安全、去中心化的內網穿透 VPN 組網方案,使用 Rust 語言和 Tokio 框架實現。
去中心化:無需依賴中心化服務,節點平等且獨立。
安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保護中轉流量。
高性能:全鏈路零拷貝,性能與主流組網軟件相當。
跨平臺:支持 MacOS/Linux/Windows/Android,未來將支持 IOS。可執行文件靜態鏈接,部署簡單。
無公網 IP 組網:支持利用共享的公網節點組網,可參考 配置指南
NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在復雜的網絡環境下也能建立穩定的連接。
子網代理(點對網):節點可以將可訪問的網段作為代理暴露給 VPN 子網,允許其他節點通過該節點訪問這些子網。
智能路由:根據流量智能選擇鏈路,減少延遲,提高吞吐量。
TCP 支持:在 UDP 受限的情況下,通過并發 TCP 鏈接提供可靠的數據傳輸,優化性能。
高可用性:支持多路徑和在檢測到高丟包率或網絡錯誤時切換到健康路徑。
IPV6 支持:支持利用 IPV6 組網。
多協議類型: 支持使用 WebSocket、QUIC 等協議進行節點間通信。
下載預編譯的二進制文件
訪問 GitHub Release 頁面 下載適用于您操作系統的二進制文件。Release 壓縮包中同時包含命令行程序和圖形界面程序。
通過 crates.io 安裝
通過源碼安裝
cargo install --git https://github.com/EasyTier/EasyTier.git easytier
通過Docker Compose安裝
請訪問 EasyTier 官網 以查看完整的文檔。
使用一鍵腳本安裝 (僅適用于 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 兩個命令都已經可用。
假設雙節點的網絡拓撲如下
在節點 A 上執行:
sudo easytier-core --ipv4 10.144.144.1
命令執行成功會有如下打印。
在節點 B 執行
sudo easytier-core --ipv4 10.144.144.2 --peers udp://22.1.1.1:11010
測試聯通性
兩個節點應成功連接并能夠在虛擬子網內通信
使用 easytier-cli 查看子網中的節點信息
基于剛才的雙節點組網例子,如果有更多的節點需要加入虛擬網絡,可以使用如下命令。
sudo easytier-core --ipv4 10.144.144.2 --peers udp://22.1.1.1:11010
其中 --peers
參數可以填寫任意一個已經在虛擬網絡中的節點的監聽地址。
假設網絡拓撲如下,節點 B 想將其可訪問的子網 10.1.1.0/24 共享給其他節點。
則節點 B 的 easytier 啟動參數為(新增 -n 參數)
sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24
子網代理信息會自動同步到虛擬網絡的每個節點,各個節點會自動配置相應的路由,節點 A 可以通過如下命令檢查子網代理是否生效。
檢查路由信息是否已經同步,proxy_cidrs 列展示了被代理的子網。
easytier-cli route
測試節點 A 是否可訪問被代理子網下的節點
EasyTier 支持共享公網節點進行組網。目前已部署共享的公網節點 tcp://public.easytier.top:11010
。
使用共享節點時,需要每個入網節點提供相同的 --network-name
和 --network-secret
參數,作為網絡的唯一標識。
以雙節點為例,節點 A 執行:
sudo easytier-core -i 10.144.144.1 --network-name abc --network-secret abc -e tcp://public.easytier.top:11010
節點 B 執行
sudo easytier-core --ipv4 10.144.144.2 --network-name abc --network-secret abc -e tcp://public.easytier.top:11010
命令執行成功后,節點 A 即可通過虛擬 IP 10.144.144.2 訪問節點 B。
EasyTier 可以用作 WireGuard 服務端,讓任意安裝了 WireGuard 客戶端的設備訪問 EasyTier 網絡。對于目前 EasyTier 不支持的平臺 (如 iOS、Android 等),可以使用這種方式接入 EasyTier 網絡。
假設網絡拓撲如下:
我們需要 iPhone 通過節點 A 訪問 EasyTier 網絡,則可進行如下配置:
在節點 A 的 easytier-core 命令中,加入 --vpn-portal 參數,指定 WireGuard 服務監聽的端口,以及 WireGuard 網絡使用的網段。
# 以下參數的含義為: 監聽 0.0.0.0:11013 端口,WireGuard 使用 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
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 節點的 IP。將配置文件導入 WireGuard 客戶端,即可訪問 EasyTier 網絡。
每個虛擬網絡(通過相同的網絡名稱和密鑰建鏈)都可以充當公共服務器集群。其他網絡的節點可以連接到公共服務器集群中的任意節點,無需公共 IP 即可發現彼此。
運行自建的公共服務器集群與運行虛擬網絡完全相同,不過可以跳過配置 ipv4 地址。
也可以使用以下命令加入官方公共服務器集群,后續將實現公共服務器集群的節點間負載均衡:
sudo easytier-core --network-name easytier --network-secret easytier -p tcp://public.easytier.top:11010
可使用 easytier-core --help
查看全部配置項
我們歡迎并鼓勵社區貢獻!如果你想參與進來,請提交 GitHub PR。詳細的貢獻指南可以在 CONTRIBUTING.md 中找到。
EasyTier 根據 Apache License 2.0 許可證發布。
該文章在 2024/12/24 18:19:09 編輯過