V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Doiiars
V2EX  ›  宽带症候群

分享一下最近我对我的 ZeroTier 做了什么!用 ZeroTier 节点作为网络出口!

  •  1
     
  •   Doiiars · 16 天前 · 2272 次点击

    之前一直以来,我都在使用 zerotier 搭建内部局域网,但是我也想,为什么我不能用 zeortier 的某个节点作为出站节点?经过几周的休息(?),这周突然有空把这玩意做了。我分享一下具体细节。其实跟着官方文档走就不错了。

    核心步骤就是配置转发和配置持久化问题。

    为什么选择 ZeroTier ?

    • 完全免费且开源
    • 配置简单,维护成本低
    • 支持跨平台
    • 性能优秀,延迟低

    前期准备

    1. 一台可用作出口节点的服务器(可以是 VPS 或者树莓派)
    2. 基本的 Linux 命令行操作知识
    3. root 或 sudo 权限

    具体步骤

    第一步:配置出口节点

    1. 创建 ZeroTier 网络(如果没有,先去官网创建)
    2. 安装 ZeroTier:
    # 加入网络
    sudo zerotier-cli join <你的网络 ID>
    
    1. 开启 IPv4 转发:
    # 编辑配置文件
    sudo nano /etc/sysctl.conf
    
    # 添加以下内容
    net.ipv4.ip_forward = 1
    
    # 重载配置
    sudo sysctl -p
    
    # 验证设置
    sudo sysctl net.ipv4.ip_forward
    

    第二步:配置网络接口

    1. 获取网络接口名称:
    ip link show
    
    1. 设置环境变量:
    export ZT_IF=zthnhhqofq  # 你的 ZeroTier 接口名
    export WAN_IF=eth0       # 你的外网接口名
    
    1. 配置 iptables 规则:
    # 启用 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
    

    第三步:网络配置(在 ZeroTier 管理面板)

    1. 进入 Central > Network > Settings > Managed Routes
    2. 添加路由规则:0.0.0.0/0 via <你的路由节点 ZeroTier IP>

    第四步:客户端配置

    1. 在托盘应用中,找到对应网络的 "Allow Default" 选项并启用
    2. 为方便使用,可以添加以下命令到 ~/.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 的新思路。

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

    打开 53 端口的防火墙,允许 DNS 流量。

    重定向来自 ZeroTier 网络的 DNS 流量到本地 DNS 服务器。

    持久化 DNS 配置,确保规则和配置在重启后依然生效。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5846 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 06:36 · PVG 14:36 · LAX 22:36 · JFK 01:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.