Bpazy / blog

我的博客,欢迎关注和讨论
https://github.com/Bpazy/blog/issues
MIT License
41 stars 2 forks source link

ZeroTier 内网穿透 #148

Open Bpazy opened 4 years ago

Bpazy commented 4 years ago

frp 和 nps 内网穿透失败了,尝试 ZeroTier 组建局域网成功了,这里记录和分享一下经验:

  1. NAS 和其他设备安装 ZeroTier;
  2. 在 ZeroTier 注册帐号,并新建一个 Network;
  3. NAS 通过 zerotier-cli join ****** 加入 Network,其他平台通过对应的方法加入 Network;
  4. 喜欢的话可以在 Network 管理页面将设备的 IP 固定;
  5. Enjoy your network.

ZeroTier 下载地址:https://www.zerotier.com/download/

Bpazy commented 3 years ago

后续遇到的问题

  1. Zerotier 总是提示 REQUESTING_CONFIGURATION,解决方案: #198
Bpazy commented 3 years ago

利用 Zerotier 访问局域网内的其他设备

局域网中设备很多,只要有一个机器安装了 Zerotier,则可以访问局域网内其他设备。

正文

  1. 在 Zerotier 管理页面添加路由,如图

    这一步 zerotier 本质只是将路由设置分发到各个机器上

image

  1. 局域网内的机器开启转发,并设置 iptables

    注意:192.168.194.0/24 是 zerotier 网段,192.168.31.0/24 是局域网下网段

    sudo echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
    sudo sysctl -p
    sudo iptables -t nat -A POSTROUTING -s 192.168.194.0/24 -j MASQUERADE
    # sudo apt install iptables-persistent
    sudo netfilter-persistent save
  2. 外网机器测试效果

    
    PS C:\Users\hanzi> ipconfig
    以太网适配器 以太网 3:
    
    连接特定的 DNS 后缀 . . . . . . . :
    本地链接 IPv6 地址. . . . . . . . : fe80::e497:94a3:d56c:82ca%23
    IPv4 地址 . . . . . . . . . . . . : 172.27.70.31
    子网掩码  . . . . . . . . . . . . : 255.255.255.0
    默认网关. . . . . . . . . . . . . : 172.27.70.1

PS C:\Users\hanzi> ping 192.168.31.1

正在 Ping 192.168.31.1 具有 32 字节的数据: 来自 192.168.31.1 的回复: 字节=32 时间=5ms TTL=63 来自 192.168.31.1 的回复: 字节=32 时间=4ms TTL=63

192.168.31.1 的 Ping 统计信息: 数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 4ms,最长 = 5ms,平均 = 4ms

Bpazy commented 3 years ago

搭建 Zerotier Controller

先介绍下会用到的几个组件:

cd ~
mkdir ztncui && cd ztncui

cat << EOF > docker-compose.yaml
version: '3'
services:
  ztncui:
    image: keynetworks/ztncui:latest
    restart: always
    ports:
      - 8000:8000
    volumes:
      - ./zt1-data:/var/lib/zerotier-one
      - ./ztncui-data:/opt/key-networks/ztncui/etc
    env_file:
      - ztncui.env
EOF

cat << EOF > ztncui.env
# 设置参数,详情参考 https://github.com/key-networks/ztncui-aio#supported-configuration-via-persistent-storage
MYADDR=150.158.159.134
HTTP_PORT=8000
HTTP_ALL_INTERFACES=yes
EOF

sudo docker-compose up -d
# 输出日志,内部有随机生成的密码
sudo docker-compose exec ztncui cat /var/log/docker-ztncui.log

现在我们已经创建好 zerotier controller 了,访问 http://ip:8000 开始设置吧