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

经过路由器 shellclash 的 UDP 透明代理后, PC 的 zerotier 显示 offline 了

  •  
  •   SuperMaxine · 289 天前 · 1854 次点击
    这是一个创建于 289 天前的主题,其中的信息可能已经有所发展或是发生改变。
    起因是工位有线网限速 10Mbps ,但是计算服务器不限速,所以在服务器个人空间里起了个 SS ,在工位的路由器上通过 shellclash 透明代理将流量转发过去,算是破解了限速。


    但是发现 PC 和家里异地组网的 zerotier 貌似没有被成功代理,和家里主机测速依然是被限速的状态,clash 管理面板里也看不到连接和流量。突然想起来 zerotier 是 UDP 传输的,而 shellclash 提供的运行模式默认是第一种只代理 TCP ,如下:

    1 Redir 模式: Redir 转发 TCP ,不转发 UDP
    2 混合模式: Redir 转发 TCP ,Tun 转发 UDP
    4 Tun 模式: 使用 Tun 转发 TCP&UDP(占用高)
    8 纯净模式: 不设置流量转发


    所以兴冲冲地尝试切换成了 2 和 4 ,结果发现无论哪种都会导致 zerotier-cli info 显示 offline ,listpeers 也都是"--"获取不到地址。后来还尝试了将 zerotier 的虚拟网段添加进"自定义透明路由 ipv4 网段",但是也没什么效果。想求助一下各位大手子有没有办法解决🙏
    19 条回复    2024-04-05 16:12:28 +08:00
    mohumohu
        1
    mohumohu  
       289 天前 via Android
    你要先确认你的用的服务端支持 udp 代理。其次,既然是内网,就没必要用 ss 这种协议,直接用 L3 隧道比如 openvpn 就行。
    SuperMaxine
        2
    SuperMaxine  
    OP
       289 天前
    @mohumohu 感谢提供新的排查思路,我确实还没有想到可能是服务端不支持或者没有开启 udp 转发🙏没有用 openvpn 主要是因为服务器账户没有 sudo 权限,安装各种东西都比较困难,而 v2ray 用得比较熟了,手头现成的二进制文件拷过去就能用😂
    superchijinpeng
        3
    superchijinpeng  
       289 天前
    @SuperMaxine 直接 docker 启
    cq65617875
        4
    cq65617875  
       289 天前
    @SuperMaxine 编译一个静态的 openvpn 只要他有 tun 就能用
    neroxps
        5
    neroxps  
       289 天前
    话说单位能让你随随便便在服务器个人空间里搭一个 openvpn 回家?

    SS 还能有隐匿性,混淆下一般防火墙识别不出来(或者识别错成其他流量)

    openvpn 立马就发现了吧?
    mohumohu
        6
    mohumohu  
       289 天前 via Android
    @neroxps 你理解错了,搭 vpn 是内网,连回家的是 zerotier 。zerotier 是端到端加密
    yuchenr
        7
    yuchenr  
       289 天前
    我觉的可能和 shellclash 的白名单端口有关。
    如果有可能建议直接跑 clash 的内核。
    neroxps
        8
    neroxps  
       289 天前 via iPhone
    @mohumohu 加密是加密,但是特征明显啊,公司出口防火墙就看到 openvpn 协议 这个 ip 地址,审计日志亮蹭蹭的,每月打印报表。一查就是你。🤣
    mohumohu
        9
    mohumohu  
       289 天前 via Android
    @neroxps 都说是内网链接了,怎么出口防火墙
    neroxps
        10
    neroxps  
       289 天前 via iPhone
    @mohumohu 但是发现 PC 和家里异地组网的 zerotier 貌似没有被成功代理


    我收楼主回家用 vpn
    mohumohu
        11
    mohumohu  
       289 天前 via Android
    @neroxps openvpn 说的就是内网连内网比如 10.0.0.2 连 10.0.0.3 ,解除他局域网上网限速用的,连回家的是 zerotier 不是 openvpn
    neroxps
        12
    neroxps  
       289 天前 via iPhone
    @mohumohu zerotier 底层 是 wg 一样的。
    mohumohu
        13
    mohumohu  
       289 天前 via Android
    @neroxps zerotier 底层不是 wg ,跟 wg 也没有关系。
    neroxps
        14
    neroxps  
       289 天前 via iPhone
    @mohumohu 哦 我记错了 以为是 tailscale zerotier 有特征混淆的功能?
    ConDuseW
        15
    ConDuseW  
       283 天前 via Android
    说几种猜测吧
    1 、SS 服务端未开启 udp 代理
    2 、路由器
    ConDuseW
        16
    ConDuseW  
       283 天前 via Android
    说几种猜测吧
    1 、SS 服务端未开启 udp 代理
    2 、路由器没有 kmod-tun 模块
    3 、工位到服务器 udp 不通

    其中 2 的可能性最大,因为我用过小米的就是这样,需要手动安装 tun 模块才行。
    SuperMaxine
        17
    SuperMaxine  
    OP
       176 天前
    抱歉挖个坟,今天又与工位网络搏斗了一天,偶然间发现 shellclash 更新了小米路由器 TUN 模式补丁,现在 zerotier 能够正常组网了,在 web-ui 面板里也能看到一些 udp 记录了。

    但是非常奇怪的是,除了 zerotier 的 udp 流量看起来都能被正常代理(比如 finalshell 疯狂对 5.5.5.5:5555 发起的连接,还有一些不知道是什么的小服务)他们的 Chains 都能正常显示 [GLOBAL (因为我 Mode 设为了全局)/代理服务器配置名] 。

    但是所有 zerotier 流量的的 Chains 依然显示 DIRECT ,之所以能看出来是 zerotier 的流量,是因为这些地址都是在 listpeers 中能看到的 peers 的真实地址。

    实在是百思不得其解😂
    SuperMaxine
        18
    SuperMaxine  
    OP
       176 天前
    最搞笑的是,在连接中把 udp 连接全都终止掉,再重新建立的连接的 Chains 都显示被代理了,但是与家里主机测速还是稳定卡在限速上限上😂确实是没招了,看到有地方的博客说 shellclash 无法代理直接 IP 请求的 udp 连接,不知道是真的假的
    Wait845
        19
    Wait845  
       22 天前
    楼主解决了吗,也遇到这个问题了。每个模式都试了,有的模式 zerotier 可用,但是又会导致 docker 容器 tcp 流量无法出站。总之无论哪个模式都不能让 zerotier 和 docker 同时使用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2695 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 11:29 · PVG 19:29 · LAX 04:29 · JFK 07:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.