zreotier 虚拟局域网

发布时间:2021-12-05 00:28:00
更新时间:2021-12-06 00:44:33
文章作者:ZHUANGZHUANG

内网穿透其实 frp 做端口映射也挺好用,但是要一个一个端口映射,有点麻烦

Zerotier 实际上是一个 VPN,解决了我家里就算做 DDNS 获取到公网 IP 也开不了端口的痛点

但是在 iOS 上会占用 VPN, 与 Surge、Quantumult X、Shadowrocket 等软件冲突(木得办法)

其实可以不用自建服务端(Zerotier 有 50 台设备的限制,且有可能无法访问到官网)

Server

https://github.com/Jonnyan404/zerotier-planet.git

# 安装 Docker
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce
systemctl enable docker --now

# 安装 docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 安装 zerotier-planet
git clone https://github.com/Jonnyan404/zerotier-planet.git
cd zerotier-planet
ZERO_PORT=44000 && sed -i .bak "s/4000:4000/$ZERO_PORT:4000/" docker-compose.yml   # 修改默认端口
docker-compose up -d

# 防火墙放行端口
firewall-cmd --add-port=$ZERO_PORT/tcp --permanent
firewall-cmd --reload

浏览器访问 http://<ip>:<port>, 账号admin, 密码 mrdoc.fun

  1. 修改密码

截屏2021-12-04 下午11.15.47

  1. 创建虚拟网络
​​​​​​​‌​‌​‌‌‌​‍​​​​‌​‌​​‌​​‌‌​‍​‌​‌​‌‌‌‌‌‌​​‌​‍​​​​‌‌​​​​​‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​‌​‌‍‌​‌‌​‌‌‌‍‌​‌​‌​‌​‍‌​‌‌‌‌‌​‍‌​‌‌​​​‌‍‌​‌‌‌​​​‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​​​‌​‌‍‌​​​‌‌​‌‍‌​​‌‌​‌​‍‌​​‌​​​​‍‌​​​‌​‌‌‍‌​​‌​‌‌​‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌‌​‌‌‌‌‌‍​‌‌‌‌​​‌‌​‌​​‌​‌‍​​‌‌‌​‌​​‌​​​​​‍​‌​​​‌‌‌​‌‌‌‌‌‌‍​‌​‌​​​​​‌​​​​​‍​​​​​​​‌​‌​‌‌‌​‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌‌​​​​‌​‌​​​‌‌‍​‌‌‌‌‌‌‌‌‌‌‌‌​‌​‍​​​​​​​​‌‌‌​​‌​‌‍‌​‌​​‌‌​‍‌​‌‌‌​‌‌‍‌​‌​​‌​‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌‌​​‌‌​​‍‌‌​​‌​‌‌‍‌‌​​‌​‌​‍‌‌​​‌​​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌​​​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌​‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌​​‌‌​​​‍‌‌​‌​​​‌‍‌​​‌​‌‌​‍‌​​‌​​​​‍‌​‌​​​‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌​‍‌​‌​​​‌‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌​‌​​​‌‌‍‌‌​​‌‌‌‌‍‌‌​​‌​‌​‍‌​‌​​​‌‌‍‌​​​​‌​‌‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌​​‌​​​​‍‌​​​‌​‌‌‍‌​​‌​‌‌​‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

截屏2021-12-04 下午11.19.07

Client

  • Linux(ubuntu/CentOS)
curl -s https://install.zerotier.com | sudo bash       # 安装 zerotier
systemctl status zerotier-one                          # 查看运行状态
systemctl enable zerotier-one                          # 设置开机自启动

zerotier-cli join 1d788XXXXXX                          # 加入虚拟网络
zerotier-cli leave 1d788XXXXXX                         # 离开虚拟网络
zerotier-cli status                                    # 查看状态
zerotier-cli listnetworks                              # 查看所有虚拟网络
zerotier-cli -j listnetworks                           # 以 json 格式展示
zerotier-cli get 1d788XXXXXX ip                        # 查看虚拟 IP (10.10.10.1)
ifconfig | grep inet | grep 10.10.10                   # 查看虚拟 IP
route -n                                               # 查看路由表
  • openwrt
opkg install zerotier*.ipk                             # 安装 zerotier
/etc/init.d/zerotier status                            # 查看运行状态
/etc/init.d/zerotier enable                            # 设置开机自启
zerotier-cli join 1d788XXXXXX                          # 加入虚拟网络
ifconfig | grep inet | grep 10.10.10                   # 查看虚拟 IP (10.10.10.2)
ifconfig | grep -w inet | grep -v 127.0.0.1            # 查看局域网 IP (以192.168.1.2 为例)
# planet 添加路由如下图
route -n                                               # 查看路由表
ping 10.10.10.1                                        # 测试连通性
ssh [email protected] "route -n | grep 192.168.1"        # 查看路由表
ssh [email protected] "ping -c 4 192.168.1.2"            # 测试联通性
ssh [email protected] "ping -c 4 192.168.1.100"          # 测试联通性

截屏2021-12-04 下午11.51.11

  • NAS
sudo su root                                               # 切换至 root 用户
echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh
chmod a+x /usr/local/etc/rc.d/tun.sh                       # 赋予执行权限
sh /usr/local/etc/rc.d/tun.sh                              # 运行脚本
ls /dev/net/tun                                            # 检查 TUN
    
mkdir /var/lib/zerotier-one                                # 用于存储配置

# 启动 Docker 容器
docker run -d             \
    --name zt             \
    --restart=always      \
    --device=/dev/net/tun \
    --net=host            \
    --cap-add=NET_ADMIN   \
    --cap-add=SYS_ADMIN   \
    -v /var/lib/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest
    
docker exec -it zt zerotier-cli status                 # 检查运行状态
docker exec -it zt zerotier-cli join 1d788XXXXXX       # 加入虚拟网络
docker exec -it zt zerotier-cli listnetworks           # 查看所有虚拟网络
docker exec -it zt zerotier-cli get 1d788XXXXXX ip     # 查看虚拟 IP
  • MAC
brew install zerotier-one --cask                       # 安装 zerotier
open -a /Applications/ZeroTier.app                     # 启动 zerotier-one
sudo zerotier-cli status                               # 查看状态

截屏2021-12-05 上午12.09.55

  • iOS

IMG_3376

  • Windows Android 等客户端可以参考官网设置
撰写评论