This articles is published 1142 days ago and last updated 1142 days ago, some information may be out of date.
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=1
sudo sysctl -p
net.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=ztr2qu2plk
ens3
實體網口
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地址訪問服務
參考資料: |