之前一直以来,我都在使用 zerotier 搭建内部局域网,但是我也想,为什么我不能用 zeortier 的某个节点作为出站节点?经过几周的休息(?),这周突然有空把这玩意做了。我分享一下具体细节。其实跟着官方文档走就不错了。
核心步骤就是配置转发和配置持久化问题。
# 加入网络
sudo zerotier-cli join <你的网络 ID>
# 编辑配置文件
sudo nano /etc/sysctl.conf
# 添加以下内容
net.ipv4.ip_forward = 1
# 重载配置
sudo sysctl -p
# 验证设置
sudo sysctl net.ipv4.ip_forward
ip link show
export ZT_IF=zthnhhqofq # 你的 ZeroTier 接口名
export WAN_IF=eth0 # 你的外网接口名
# 启用 NAT
sudo iptables -t nat -A POSTROUTING -o $WAN_IF -j MASQUERADE
# 允许转发
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IF -o $WAN_IF -j ACCEPT
# 安装 iptables-persistent 使规则持久化
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
0.0.0.0/0 via <你的路由节点 ZeroTier IP>
~/.bashrc
:tunnel()
{
sudo zerotier-cli set $nwid allowDefault=1
}
notunnel()
{
sudo zerotier-cli set $nwid allowDefault=0
}
配置完成后,你可以通过以下命令检查 IP:
curl -4 ifconfig.co # 检查 IPv4
curl -6 ifconfig.co # 检查 IPv6
官方文档参考: https://docs.zerotier.com/exitnode/
我测试了一下,ip 的确变成了是出口节点的 ip 。
但是有一个问题:
google 和 youtube 我莫名其妙的无法访问。而 newbing 等其他网站却不受影响。 原因我还没有排查出来。
还有就是,这样的出站方式,中间流量由 zerotier 保证和控制。因此,实际上这样的流量路由转发,并没有主流的集中魔法协议的那种伪装防护功能。其实用性存疑。但是这给了一个如何利用 zerotier 的新思路。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.