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

江苏电信似乎劫持了几乎全部公共 dns?

  •  1
     
  •   LongLights · 32 天前 · 6666 次点击
    这是一个创建于 32 天前的主题,其中的信息可能已经有所发展或是发生改变。

    江苏电信很早就劫持了阿里的 223.5.5.5 ,这里按下不表。 因此我的方案目前是:

    • bootstrap dns 设置为 114 和腾讯的 119
    • 国内组也是 114 和 119
    • 国外组是 cloudflare 和 google 的 doh

    今早起床天塌了,发现软路由的 clash 节点全部超时,同一套 yaml 配置手机链接无问题,故翻阅日志,发现通过国外组 dns 的解析全部超时(就是 cf 和 google 的 doh )

    用 doggo 验证了一下,好像现在江苏电信宽带劫持了几乎全部的公共 dns (体现在发起 doh 解析要么证书不匹配要么超时)

    也就是说,在这种情况下,境外组使用 ip 形式的 1.1.1.1 或 8.8.8.8 也已经并不安全了。。。

    第 1 条附言  ·  32 天前

    发现大伙对这个劫持场景有点误解

    解释下,

    1. clash配置里给两组dns并不是一组解析境内一组解析境外的,命中域名规则时直接由节点服务器进行解析(本地并不对目标域名如google.com进行解析)。这里是域名规则外的地址,两组dns同时由本地发起解析,判断解析结果是否全在geoip:cn中以判定是否需要经过节点还是直连。
    2. 劫持的是公共dns服务的ip而非域名,这才导致比如阿里的doh提示证书不匹配。

    由于1的场景,仍旧是需要本地解析时拥有无污染的公共dns服务才会获得一个较好的分流结果

    第 2 条附言  ·  32 天前
    再补充下解决方案:
    ```yaml
    default-nameserver:
    - 114.114.114.114
    - 119.29.29.29
    nameserver:
    - https://doh.pub/dns-query
    - https://doh.360.cn/dns-query
    fallback:
    - tls://1.1.1.1
    - https://v.recipes/dns-query

    ```
    第 3 条附言  ·  31 天前

    感谢#29 提供的最终方案

    dns:
      enable: true
      prefer-h3: true
      default-nameserver:
        - 114.114.114.114
        - 119.29.29.29
      nameserver:
        - https://doh.pub/dns-query
        - https://doh.360.cn/dns-query
      proxy-server-nameserver:
        - https://doh.pub/dns-query
        - https://doh.360.cn/dns-query
      fallback:
        - tls://1.1.1.1#节点选择
        - tls://8.8.8.8#节点选择
    

    fallback组后面添加的 [#节点选择] 要把井号后面改成自己的代理组策略名称。 运行方式:遇到规则外的域名,clash同步发起两组dns查询时,fallback组的会经过代理后执行dns查询。

    在这种情况下一定要单独再设置一组proxy-server-nameserver,这里面的仅用来解析节点本身(如果是ip形式的节点应该就不用了,未测试)

    53 条回复    2025-06-24 08:29:37 +08:00
    FlytoSirius
        1
    FlytoSirius  
       32 天前 via iPhone
    早晚的事情,你肯定也能预料到。
    而且只会越来越紧
    ferock
        2
    ferock  
    PRO
       32 天前
    doh 已经沦陷了,dot 呢? 再不行你就自己写死 hosts 解析 dot
    allplay
        3
    allplay  
       32 天前 via Android
    只能玩远程 DNS
    Danswerme
        4
    Danswerme  
       32 天前
    如果让 1.1.1.1 和 8.8.8.8 也走代理,是否能缓解这种情况?
    Yanlongli
        5
    Yanlongli  
       32 天前
    cf 的你拼错了,其他的国内早就无法访问了吧?
    someonesnone
        6
    someonesnone  
       32 天前
    如果我拉取 root dns 所有信息然后本地解析呢?
    340746
        7
    340746  
       32 天前 via Android
    包劫持的,兄弟,建议改成加密的
    dns:
    enable: true #是否启用,如为 false ,则使用系统 DNS 解析
    cache-algorithm: arc #支持的算法:lru: Least Recently Used, 默认值 arc: Adaptive Replacement Cache
    prefer-h3: false #DOH 优先使用 http/3
    listen: 0.0.0.0:1053 #DNS 服务监听,支持 udp, tcp
    ipv6: true #是否解析 IPV6, 如为 false, 则回应 AAAA 的空解析
    enhanced-mode: fake-ip #mihomo 的 DNS 处理模式
    fake-ip-range: 198.18.0.1/16 #fakeip 下的 IP 段设置,tun 的默认 IPV4 地址 也使用此值作为参考
    fake-ip-filter: #fakeip 过滤,以下地址不会下发 fakeip 映射用于连接
    - "+.lan"
    - "+.local"
    - "+.msftconnecttest.com"
    - "+.msftncsi.com"
    - "localhost.ptlogin2.qq.com"
    - "localhost.sec.qq.com"
    - "localhost.work.weixin.qq.com"
    - 'geosite:private'
    fake-ip-filter-mode: blacklist #可选 blacklist/whitelist ,默认 blacklist ,whitelist 即只有匹配成功才返回 fake-ip
    use-hosts: false #是否回应配置中的 hosts ,默认 true
    use-system-hosts: true #是否查询系统 hosts ,默认 true
    respect-rules: true #dns 连接遵守路由规则,需配置 proxy-server-nameserver
    default-nameserver: #默认 DNS, 用于解析 DNS 服务器 的域名,必须为 IP, 可为加密 DNS
    - tls://119.28.28.28:853
    - tls://119.29.29.29:853
    - tls://223.5.5.5:853
    - tls://223.5.5.6:853
    nameserver-policy:
    "geosite:private,cn,geolocation-cn": system
    "geoip:cn": system
    proxy-server-nameserver: #代理节点域名解析服务器,仅用于解析代理节点的域名,如果不填则遵循 nameserver-policy 、nameserver 和 fallback 的配置
    - tls://119.28.28.28:853
    - tls://119.29.29.29:853
    - tls://223.5.5.5:853
    - tls://223.5.5.6:853
    direct-nameserver: #用于 direct 出口域名解析的 DNS 服务器,如果不填则遵循 nameserver-policy 、nameserver 和 fallback 的配置
    - system
    direct-nameserver-follow-policy: false #是否遵循 nameserver-policy ,默认为不遵守,仅当 direct-nameserver 不为空时生效
    nameserver: #默认的域名解析服务器
    - https://8.8.4.4/dns-query
    - https://8.8.8.8/dns-query
    - https://1.1.1.1/dns-query
    - https://1.0.0.1/dns-query
    383394544
        8
    383394544  
       32 天前
    国内外域名分流解析是早就过时的配置,现在都用域名黑名单,命中的直接丢远程解析。代理软件的 dns 只用来解析节点信息和国内直连域名
    LongLights
        9
    LongLights  
    OP
       32 天前 via iPhone
    @383394544 我主贴表达有误 其实就是 nameserver 组和 fallback 组 就是只影响节点本身和列表外的域名
    zhf883680
        10
    zhf883680  
       32 天前
    坐标江苏电信
    试试我发的 dns 解析
    clash 用 mihomo 最新的内核
    bli22ard
        11
    bli22ard  
       32 天前
    污染早有了。你这用法就比较有问题。 走代理的线路, 连接建立前,就要判断走代理,还是走直连。如果走代理, 就不会在本地发 d 出 dns 解析,hostname 发到代理节点,直接建立连接。直连才会在本地发起 dns 解析
    LongLights
        12
    LongLights  
    OP
       32 天前
    @bli22ard 出问题的环节是本地解析节点地址。。。另外本地其实还是需要一组可信境外 dns 的,用来判断列表外的域名是否需要代理
    LongLights
        13
    LongLights  
    OP
       32 天前
    @Yanlongli 还真是,cf 的似乎没被劫持( ping 1.1.1.1 还是 100 多 ms ),但是 cf 的 doh 还是不能用,dot 可以,是不是 cf 关闭了 doh 服务器。。。
    tifang
        14
    tifang  
       32 天前
    尝试 IP 模式的 DOH ,从来不用域名 DOH 。
    orluna
        15
    orluna  
       32 天前
    我说最近 google 怎么老是打不开或者很慢~
    catazshadow
        16
    catazshadow  
       32 天前   ❤️ 1
    leegradyllljjjj
        17
    leegradyllljjjj  
       32 天前   ❤️ 1
    官方的事儿,能叫劫持吗,那是导人向善
    iijboom
        18
    iijboom  
       32 天前
    你也不看看你 dns.alidns.com 解析出什么了,境外的直接忽略了好吧,各地墙情况不太一样的
    dsx826
        19
    dsx826  
       32 天前 via Android
    江蘇電信早就升級牆啦
    ShaoLongFei
        20
    ShaoLongFei  
       32 天前
    江苏已经开始管控了,相对于网络长城对商业部分管控更强一些,好像是今年年初开始的
    txydhr
        21
    txydhr  
       32 天前 via iPhone
    @leegradyllljjjj 国企不代表官方
    LongLights
        22
    LongLights  
    OP
       32 天前 via iPhone
    @tifang 他劫持的就是 ip 类似 8.8.8.8 在江苏 ping 只有二十几 ms 然后结果都是污染的
    WizardLeo
        23
    WizardLeo  
       32 天前
    软路由为什么要从本地解析代理 dns ,不通过代理服务器解析吗?
    LGA1150
        24
    LGA1150  
       32 天前
    试试开 TFO 之后的 TCP 8.8.8.8:53
    LongLights
        25
    LongLights  
    OP
       32 天前 via iPhone
    @WizardLeo 1. 规则外的域名分流 2. 解析节点本身的 ip
    WizardLeo
        26
    WizardLeo  
       32 天前
    @LongLights
    规则外(也就是国内网站)dns 可以用代理服务器进行 google dns+ecs 设置国内的 dns 解析。
    解析节点本身 ip 可以直接用运营商 dns ,因为节点对于运营商来说只是普通未知国外域名,并不在黑名单列表内。
    顺带一提,可以试试看 9.9.9.9
    bjzhou1990
        27
    bjzhou1990  
       32 天前
    opendns 和 4 个 9 的 dot 应该能通,但是不稳定
    LongLights
        28
    LongLights  
    OP
       32 天前
    @bjzhou1990 我这里现在 1.1.1.1 的 dot 和 https://v.recipes/dns-query 这俩可以用
    williamszz
        29
    williamszz  
       32 天前   ❤️ 3
    fallback:
    - 'https://8.8.8.8/dns-query#Proxy'
    - 'tls://8.8.8.8:853#Proxy'
    - 'tls://1.1.1.1:853#Proxy'
    - 'https://1.1.1.1/dns-query#Proxy'
    设置 dns 走代理,clash-meta 适用
    LongLights
        30
    LongLights  
    OP
       32 天前 via iPhone
    LongLights
        31
    LongLights  
    OP
       32 天前
    @williamszz 这个最好用,感谢层主。

    后面有人要是看到这里:
    1. fallback 中 dns 添加后缀(如:tls:8.8.8.8#节点选择)
    2. dns 配置中增加一个 proxy-server-nameserver (用来解析代理节点本身)
    M5tuA
        32
    M5tuA  
       32 天前
    @LongLights #31 要不楼主再更新下附言?看下最终版本
    LongLights
        33
    LongLights  
    OP
       31 天前
    @M5tuA ok 贴了
    M5tuA
        34
    M5tuA  
       31 天前
    @LongLights #33 谢谢
    daisyfloor
        35
    daisyfloor  
       31 天前
    既要防止 DNS 泄露,又不想分流里里给 ip 规则设置 no-resolve 。那就这么来,非常简单:

    dns:
    enable: true
    ipv6: false
    enhanced-mode: fake-ip
    fake-ip-filter:
    - "+.lan"
    - "+.local"
    nameserver:
    - https://8.8.8.8/dns-query#Proxy
    - https://1.1.1.1/dns-query#Proxy
    nameserver-policy:
    'geosite:cn': [223.5.5.5, 运营商 dns, 119.29.29.29]

    - 直连的域名直接走运营商或者国内公共 DNS
    - 海外的规则内的域名,直接通过分流规则到远端节点解析
    - 没有命中规则的域名(可能是国内,也可能是国外),通过 ip 规则兜底,但为了避免 dns 泄露,通过远端代理解析。

    so easy

    而且'geosite:cn' 这部分 你还可以更灵魂,按需使用 rule-set 都可以。

    对了,建议用 tun 模式,一劳永逸。
    daisyfloor
        36
    daisyfloor  
       31 天前
    fallback 是一种落后的逻辑,后续估计开发者会去掉
    PROJECT
        37
    PROJECT  
       31 天前
    直接用国内的云主机自建 DOH ,比较保险
    Kacxxia
        38
    Kacxxia  
       31 天前 via Android
    @daisyfloor policy 的 geosite cn 的国内 dns 也可以放 direct-nameserver 里,这样如果有 geosite cn 以外的直连规则话也会走这解析
    zhu327
        39
    zhu327  
       31 天前
    fakeip 可解
    Sekai
        40
    Sekai  
       31 天前
    几年前就自建 dns 了
    pauluswanggang
        41
    pauluswanggang  
       31 天前   ❤️ 1
    江苏的宽带运营商是最恶心的运营商,无论移动电信还是联通,统统都有 dns 劫持,在其他省能上的网站到了江苏很多都不能上,真不想再去江苏了
    feikaras
        42
    feikaras  
       31 天前 via iPhone
    应该说移动拦截了 N 多年了。你终于通网了。
    但 这种事情你又有什么可以 care 的,用运营商 dns 是最佳配置,干一些事也不走运营商 dns
    xiamy1314
        43
    xiamy1314  
       31 天前
    不是没 fallback 了吗
    fcoo
        44
    fcoo  
       31 天前   ❤️ 1
    江苏真是墙中墙,一个大省居然恶心到这样,而且江苏的网站备案好像还要视频朗读什么声明保证书之类的才能备案,这样的环境难怪也没有什么互联网大厂
    superht
        45
    superht  
       31 天前
    fallback 查询的目的,只是为了匹配 ip 规则,匹配到走节点的规则时,最终发送的还是域名,所以为啥不一开始匹配域名规则——直接发域名远端解析
    tifang
        46
    tifang  
       31 天前
    这也太狠了啊,连 AliDNS 都要走代理了。
    bclerdx
        47
    bclerdx  
       31 天前 via Android
    @tifang 国内的牛马不就是这样嘛,跪久了,也不投诉反抗。
    bclerdx
        48
    bclerdx  
       31 天前 via Android
    @pauluswanggang 骂骂咧咧没用,投诉反抗是真理。
    Hephaistos
        49
    Hephaistos  
       31 天前
    clash 的话,加上 respect-rules ,需要走代理的全部丢到远端去做 dns
    respect-rules: true
    proxy-server-nameserver:
    - https://dns.alidns.com/dns-query
    nameserver-policy:
    "geosite:cn,private":
    - 223.5.5.5
    nameserver:
    - https://dns.google/dns-query
    - https://dns.cloudflare.com/dns-query
    direct-nameserver:
    - 223.5.5.5
    JensenQian
        50
    JensenQian  
       28 天前
    @fcoo 几年前不用的
    22 年开始要的
    fred649
        51
    fred649  
       28 天前
    河南🙊
    acaiplus
        52
    acaiplus  
       27 天前
    @Danswerme
    正确的配置 1.1.1.1 和 8.8.8.8 就是应该走代理的,不然还是会被污染或无法访问。但是节点的域名需要用境内的先解析出来,或者配置反向 DNS 跳过解析。不然会因为节点域名默认走 1.1.1.1 解析导致无法使用。
    cqhtyi
        53
    cqhtyi  
       25 天前
    把以下内容写进 Clash Verge 的全局扩展覆写配置:

    # Profile Enhancement Merge Template for Clash Verge

    profile:
    store-selected: true

    dns:
    enable: true
    prefer-h3: true
    use-system-hosts: true
    listen: :53
    ipv6: true
    enhanced-mode: normal
    default-nameserver:
    - 119.29.29.29
    - 182.254.116.116
    - 180.76.76.76
    - 114.114.114.114
    nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
    fallback:
    - https://cloudflare-dns.com/dns-query
    - https://dns.google/dns-query
    fallback-filter:
    geoip: true
    geoip-code: CN
    ipcidr:
    - 240.0.0.0/4
    - 2001::1/128
    - ::1/128
    - 221.228.32.13/32
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:15 · PVG 17:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.