之前一直以来,我都在使用 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 的新思路。
1
xzpjerry731 3 天前
我这样配用了很久了,你最后那个问题有可能是 DNS 的问题吧,试试在“出口节点”劫持全部 DNS 请求试试
|
2
Redhut 3 天前
不能过墙,需要搭配其他协议伪装,国内还可以用用
|
3
anonymity 2 天前
zt 会被 qos 吧
|
4
Levox 2 天前
如果是 windows 如何作为网关?
|
5
wtks1 2 天前
现在 udp 别说跨境了,就算是跨省都被 qos 的惨不忍睹
|
6
yunisky 2 天前
我的玩法是,一定范围的区域内用 zt 组网 ,基本上形成 mesh 的效果,区域间另搞一个 zt 网络或者用 wg 充当骨干,区域间的连接选互联延迟最低+带宽最大+性价比最高的节点互联
区域内所有节点 ospf ,区域间节点 bgp ,在边界上的节点 ospf+bgp 双向引入 这样基本上形成了一个有点大的私网,在这个私网里的某些节点上装 ipsec 并做 NAT ,基本上从任何一个节点接入之后,就可以从其他任意一个部署了 ipsec 的节点出局了 试了一下,虽然网络本身对系统资源消耗有点大,但是确实可用 |
7
xdeng 2 天前
frp 是不是也能解决
|
8
sbboy 2 天前
我有个 zerotier 的问题想请教一下,我有同一网段下的两台机器,它们都安装了 zerotier ,它们之间用路由器分配的 IP 测速有千兆的网速,zerotier 显示直连,zerotier IP ping 延迟比路由器 IP ping 略高 0.5ms 左右,但是 zerotier IP 之间测速就不到百兆,还不稳定,请问这该怎么办呢?
|
9
starryloki 2 天前
@sbboy 排查一下 MTU 是否正确
|
10
fortitudeZDY 2 天前
这么看其实 tailscale 作了出口节点还是简化了很多,最多要求配置一下出口的 ip_forward ,不过折腾有折腾的快乐:)
|
11
fortitudeZDY 2 天前
而且 tailscale 如果启用出口,会把本机的 dns 上游设置为出口上 tailscale 暴露在仅 tailscale 成员可访问的 doH ,这样在某些场景上还是非常方便的
|