分享一下最近我对我的 ZeroTier 做了什么!用 ZeroTier 节点作为网络出口! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Doiiars
V2EX    宽带症候群

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

  •  1
     
  •   Doiiars 2024-12-22 18:46:14 +08:00 4000 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    持久化 DNS 配置,确保规则和配置在重启后依然生效。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1202 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 17:00 PVG 01:00 LAX 09:00 JFK 12:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86