• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Curtion
V2EX  ›  程序员

阿里云使用 CGNAT 地址当作内部 DNS 服务地址, 导致和 Tailscale 冲突

  •  
  •   Curtion ·
    Curtion · Jul 14, 2025 · 3780 views
    This topic created in 313 days ago, the information mentioned may be changed or developed.

    使用阿里云服务器运行tailscale后导致服务器无法连接外网, 经过检查是 DNS 的问题,最初怀疑是magic dns问题,在 AI 的帮助下,经过一系列的排查, 又是打印 iptables 日志,又是怀疑 ip rule, 最终终于找到问题了所在。

    tailscale默认会新增一条iptables规则-A ts-input -s 100.64.0.0/10 ! -i tailscale0 -j DROP, 但这种做法却符合RFC 6598,阿里云使用 CGNAT 中的地址当作内部 DNS 地址的做法不符合规范(AI 结论)

    阿里云和 tailscale可以看到非常多人中招...

    网上看到几个解决办法

    1. 手动删除 DROP 规则, 会再次生成
    2. 顶部增加规则, 允许阿里 DNS 通过, 也可能会被覆盖
    3. 脚本轮询(删除/增加), 增加系统维护复杂度, 随着版本更新可能失效
    4. 修改服务器 DNS, 无法使用阿里云内网产品服务, 需要更换系统源
    5. 使用netfilter-mode=off, 会导致无法访问其它节点的子网服务
    15 replies    2025-07-16 15:58:48 +08:00
    mohumohu
        1
    mohumohu  
       Jul 14, 2025
    可是 zerotier 完全不新增任何 iptables 规则
    jayeli
        2
    jayeli  
       Jul 14, 2025
    之前也遇到过,没深入找问题所在,换到腾讯云了
    Shiroka
        3
    Shiroka  
       Jul 14, 2025
    世界是一个巨大的草台班子
    lnbiuc
        4
    lnbiuc  
       Jul 14, 2025
    有一个办法是在 VPC 网络设置里通过 DHCP Option 修改下发的 DNS
    阿里云内网服务和 Tailscale 冲突这个无解,两个都用了 10.64 网段,而且都不愿意修改
    caomingjun
        6
    caomingjun  
       Jul 14, 2025 via Android
    我把 tailscale 装 docker 里了
    zsh2517
        7
    zsh2517  
       Jul 14, 2025
    我目前设置了 --accept-dns=false 和 --netfilter-mode=off 。

    不过不是因为 DNS 冲突问题,而是因为不知道什么原因,会导致 ping 一个地址会有很大的等待时间(但是 DNS 过程,以及 ping 的延迟都很快。会卡在中间某些阶段)。curl 有没有忘了

    手动排查后是 ts 添加的 iptables 规则的问题。而我目前还没有网段的节点( op 提到的 5 ),就先关掉了。

    ---

    话说 5 ,如果禁用 netfilter mode 了,能不能靠手动写路由表实现访问子网
    zenghx
        8
    zenghx  
       Jul 14, 2025
    我把 dns 改成了 223.5.5.5
    RobinHuuu
        9
    RobinHuuu  
       Jul 14, 2025 via Android
    手工加规则就行
    realpg
        10
    realpg  
    PRO
       Jul 14, 2025
    以前帮人调试遇到过一次
    内网解析不了域名

    不过阿里云这么用应该是不符合预设的用途 但是符合规范

    类似合法但不合理那种
    ligolas
        11
    ligolas  
       Jul 14, 2025
    netfilter-mode=off 不会导致无法访问其他节点的子网,因为 iptables 增加的规则只是为了增加安全性,与这个 CVE-2019-14899 有关
    ntdll
        12
    ntdll  
       Jul 15, 2025
    @mohumohu #1 但是我遇到过一个奇怪的问题,阿里云用 zerotier 一段时间后,一般是几天,会突发性的连不上任何其他节点,维持几分钟到半小时不等,会自行恢复。

    原因不明,猜测也许是大量的 UDP ,导致其认为被攻击了,短暂的进了黑洞
    songtianlun
        13
    songtianlun  
    PRO
       Jul 15, 2025
    原来是这个原因吗。。

    我的阿里云服务器从某一天开始就一直无法正常 DNS 解析了,发工单排查了半天也没办法,后面干脆放弃了,反正也不怎么需要连外网。原来是跟 tailscalle 冲突了啊。。
    mawerss1
        14
    mawerss1  
       Jul 16, 2025
    遇到了这个问题,官方文档上有给出说明可以看一下:
    https://tailscale.com/kb/1023/troubleshooting#selectively-disable-ipv4

    官方给的解决方案是选择性的在特定节点上关闭 ipv4, 试了一下确实可以解决这个问题,但是如果你的机器没有 ipv6 的话大概率不能直连了,只能靠中转服务器中转,也不算是治本了
    mawerss1
        15
    mawerss1  
       Jul 16, 2025
    https://tailscale.com/kb/1304/ip-pool
    设置 ip-pool 可以解决 虽然还在 beta 中 没问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2851 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 09:58 · PVG 17:58 · LAX 02:58 · JFK 05:58
    ♥ Do have faith in what you're doing.