ZeroTier 實現遠端訪問局域網

| 前言: |
ZeroTier方便地在家中與公司內部電腦、雲端VPC和行動裝置之間創建安全的網路連線(所有設備集成到一個界面上)。但不是每一部網絡裝置都可以安裝到ZeroTier軟件 及 如果要訪問家中數十部裝置都需要安裝ZeroTier就顯得非常不便。然而
ZeroTier可以透過其中一部裝置實現遠端訪問整個局域網功能,從而避免不能安裝ZeroTier軟件 或 解決多次安裝軟件於不同裝置的問題。
| 實現條件: |
- 本地與遠端端的裝置已安裝
ZeroTier及加到同一網絡內 - 本地裝置啟用
IP Forward(IP 轉發) - 配置
iptables
| 範例01: |
本範例透過單網口的OpenWrt實現遠端訪問局域網的功能。公司電腦想透過
ZeroTier訪問家中所有的上網裝置,如交換機、AP、NAS等等。
OpenWrt系統加入到ZeroTier網絡- 啟用
ZeroTier網絡 及 NAT功能(已包括iptables)
- 在
防火牆-自定義規則啟用eth0網口的NAT轉換
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE- 跳轉到
ZeroTier官網管理平台,允許OpenWrt客戶端接入網路
Advanced>Managed Routes添加路由
家庭網絡分了2組vlan,所以會有2網網段添加路由- 已經安裝
ZeroTier軟件的遠端裝置(網外裝置)直接Ping家庭內網IP地址
- 可以直接訪問家中沒有安裝
ZeroTier軟件的裝置
| 範例02: |
本範例透過Linux Ubuntu實現遠端訪問局域網的功能。- 安裝
ZeroTier
curl -s https://install.zerotier.com | sudo bash- 加入到
ZeroTier網絡
sudo zerotier-cli join 565799d8xxxxxxxx- 跳轉到
ZeroTier官網管理平台,允許Linux客戶端接入網路 和添加路由
啟用 IP 轉發及使更改立即生效
sudo sysctl -w net.ipv4.ip_forward=1sudo sysctl -pnet.ipv4.ip_forward = 1
收集所需要的資訊:
| 網口 | IP地址 | 網段 |
|---|---|---|
| ens3 (本機) | 10.0.0.223 | 10.0.0.0/24 |
| ztr2qu2plk (ZeroTier) | 192.168.191.51 | 192.168.191.0/24 |
- 設定環境變量:
PHY_IFACE=ens3; ZT_IFACE=ztr2qu2plkens3實體網口
tr2qu2plk連接ZeroTier網口
- 添加規則到
iptable中
sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT保存iptable規則
- 利用
iptables-persistent套件存檔iptable規則
sudo apt install iptables-persistent- 安裝時就會跳出是否要儲存目前iptables和ipv6tables的版面。
- 再次存檔修改的
iptable規則,可使用以下指令
bash -c iptables-save > /etc/iptables/rules.v4或者重新報行iptables-persistent互動版面
sudo dpkg-reconfigure iptables-persistent- 檢視
iptable規則
cat /etc/iptables/rules.v4 | grep 'ens3'-A POSTROUTING -o ens3 -j MASQUERADE
-A FORWARD -i ens3 -o ztr2qu2plk -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ztr2qu2plk -o ens3 -j ACCEPT
- 已經安裝
ZeroTier軟件的遠端裝置(網外裝置)直接Ping家庭內網IP地址
- 可以直接透過內網IP地址訪問服務
| 參考資料: |




















