玩客云armbian系统基于zerotier实现异地组网

系统

使用的固件为Armbian-unofficial 24.5.1 Jammy with Linux 6.6.32-current-meson

该固件基于 Ubuntu 22.04 版本,当然你也可以选择别的,下载输入固件时只需要下载后缀带有 burn 的即可直接通过晶晨烧录工具刷入,刷机教程可参考这篇文章:玩客云刷入openwrt系统

Github地址: hzyitc/armbian-onecloud: Armbian for onecloud. 玩客云用armbian (github.com)

本文使用的固件:这里

正文

更换镜像源

因为本文使用的系统基于 ubuntu 构建,加上玩客云为arm架构,所以我们只需要将软件源更换为 ubuntu-ports 即可

同理,基于 debian 则只需要更改为 debian 的镜像源即可

中科大镜像源为例

一行命令修改镜像源

1
2
3
sudo sed -i -e 's@//ports.ubuntu.com/\? @//ports.ubuntu.com/ubuntu-ports @g' \
-e 's@//ports.ubuntu.com@//mirrors.ustc.edu.cn@g' \
/etc/apt/sources.list

或手动修改

1
nano /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
deb http://mirrors.ustc.edu.cn/ubuntu-ports jammy main restricted universe multiverse
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports jammy main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu-ports jammy-security main restricted universe multiverse
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports jammy-security main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu-ports jammy-updates main restricted universe multiverse
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports jammy-updates main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu-ports jammy-backports main restricted universe multiverse
#deb-src http://mirrors.ustc.edu.cn/ubuntu-ports jammy-backports main restricted universe multiverse

如果是其他的 ubuntu 系统,更换到这里也就完事了,但是 armbian 还有一步操作

手动添加公钥

1
curl -fsSL https://mirrors.ustc.edu.cn/armbian/armbian.key | gpg --dearmor -o /usr/share/keyrings/armbian-archive-keyring.gpg

编辑 /etc/apt/sources.list.d/armbian.list

deb 和后面的链接中插入

1
[signed-by=/usr/share/keyrings/armbian-archive-keyring.gpg]

并将 apt.armbian.com 修改为 https://mirrors.ustc.edu.cn/armbian

整个配置类似

1
deb [signed-by=/usr/share/keyrings/armbian-archive-keyring.gpg] https://mirrors.ustc.edu.cn/armbian jammy main jammy-utils jammy-desktop

除非你使用了和本文相同的镜像,否则不建议你直接复制上面的配置,而是请手动修改文件

更新软件源

1
sudo apt-get update && apt-get upgrade -y

安装并配置zerotier

这里直接使用官方脚本一键安装

1
curl -s https://install.zerotier.com | sudo bash

为了后续更新方便,这里也可以将 zerotier 软件源更换为中科大镜像

编辑 /etc/apt/sources.list.d/zerotier.list

1
2
sudo sed -i 's|http://download.zerotier.com|https://mirrors.ustc.edu.cn/zerotier|g' /etc/apt/sources.list.d/zerotier.list
sudo apt update

修改为的文件如下

1
deb [signed-by=/usr/share/keyrings/zerotier-debian-package-key.gpg] https://mirrors.ustc.edu.cn/zerotier/debian/jammy jammy main

首先前往 zerotier创建一个 NetWork并记录网络id

然后输入(自行替换下面的id为你自己的)

1
sudo zerotier-cli join <id>

会提示 200 join OK

然后回到网页,找到网络下的 Members ,给玩客云授权

稍等一下回到终端,输入 ifconfig 会显示虚拟网卡和虚拟ip地址,记录下这两个值

比如我的就是 ztk4jctlrp10.243.185.19

同时可以找到我的物理网卡为 eth0

如果输入 ifconfig 报错,只需要输入 sudo apt install net-tools 后即可

开启ip转发功能

1
sysctl -w net.ipv4.ip_forward=1

配置防火墙

1
2
3
4
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o ztk4jctlrp -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i ztk4jctlrp -o eth0 -j ACCEPT
bash -c iptables-save > /etc/iptables/rules.v4

注意,请自行修改其中的 ztk4jctlrp 为你的虚拟网卡,eth0 为你的物理网卡

回到 zerotier 后台,新增一条路由规则

需要先知道你本地的ip地址,一般家里ip为 192.168.x 开头,前面的目的地址即填写 192.168.x.0/24 ,后面的路由填写玩客云的虚拟ip地址,如下

然后在手机或者其他设备上下载 zerotier 客户端,用流量尝试 ping 一下内网的ip,或者访问下内网的设备,能访问或者ping通即成功

img