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

移动 4G 情况下在用 anyconnect 连接时 被强制用移动自己的 DNS?

  •  
  •   buddha · 2018-01-20 01:26:18 +08:00 · 4443 次点击
    这是一个创建于 2501 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天碰到一个问题非常奇怪, Android 5.0 手机, chrome 浏览器 上网用 anyconnect+ocserv

    ocserver 配置 转发所有 dns.

    tunnel-all-dns = true dns = 8.8.8.8 dns = 8.8.4.4

    现象是如果手机连 wifi 然后开 anyconnect, 可以用浏览器访问 youtube google 什么的
    但是如果用移动 4G 上网, 开 anyconnect, 浏览器不能访问那些网站, 但是用 youtube 的 app 又是好的 然后在服务器测抓包(192.168.10.154 是 ocserv 分配给手机的地址)看到, dns 查询似乎在用移动 4G 时,是强制往上海移动的 dns 查询,比如说第一第二行,然后得到污染的地址, 但是最后那行的却又是向 8.8.8.8 的 , 不解为什么会这样. Chrome 和 anyconnect 都已经清过数据和 cache 了.

    root@myserver:~# tcpdump -i vpns0 port 53 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on vpns0, link-type RAW (Raw IP), capture size 65535 bytes 12:09:12.246109 IP 192.168.10.154.62532 > dns1.sh.cnmobile.net.domain: 57493+ A? www.google.com. (32) 12:09:12.246835 IP 192.168.10.154.42976 > dns1.sh.cnmobile.net.domain: 56512+ AAAA? www.google.com. (32) 12:09:12.529879 IP dns1.sh.cnmobile.net.domain > 192.168.10.154.42976: 56512 1/0/0 A 69.171.224.85 (48) 12:09:12.530101 IP dns1.sh.cnmobile.net.domain > 192.168.10.154.62532: 57493 1/0/0 A 69.171.225.13 (48) 12:09:12.531453 IP dns1.sh.cnmobile.net.domain > 192.168.10.154.42976: 56512 1/0/0 A 31.13.85.1 (48) 12:09:12.531474 IP dns1.sh.cnmobile.net.domain > 192.168.10.154.62532: 57493 1/0/0 A 69.171.228.20 (48) 12:09:12.824690 IP 192.168.10.154.15778 > google-public-dns-a.google.com.domain: 43727+ AAAA? safebrowsing.googleapis.com. (45)

    4 条回复    2018-01-20 12:29:39 +08:00
    alect
        1
    alect  
       2018-01-20 10:33:48 +08:00
    tunnel-all-dns = true 删除这行不用专门配置,然后不要使用 8.8.8.8 这个 dns,使用服务器本身自带的 dns
    确保 dns 的 ip 在需要代理的 ip 列表里面,不要超过 200 条记录,因为 dns 也会默认占一条记录,你自定义的最多 199 条
    buddha
        2
    buddha  
    OP
       2018-01-20 11:38:35 +08:00
    @alect ocserv 服务器端 我没有配置 route/no-route 所以没有 200 条的问题, 8.8.8.8 是 ocserv 自带的 dns.
    现在感觉就是 android 手机上 用 anyconnect 连接后 ,vpn 中 dns8.8.8.8 的配置没有优先使用, chrome 浏览器还是在用上海移动的 dns 解析,你看对于 www.google.com 的 查询 手机是往上海移动 dns 发的, 由于 anyconnect 的存在,就把这条 dns tunnel 到 ocserv 然后 ocserv 又转到上海移动 dns, 得到了污染的结果.
    按理说应该强制用 ocserv 下发 8.8.8.8 的解析的啊, 奇怪的是 目前只感觉到 chrome 有问题, 其他 App 包括 firefox 都没问题.

    12.246109 IP 192.168.10.154.62532 > dns1.sh.cnmobile.net.domain: 57493+ A? www.google.com.
    12:09:12.530101 IP dns1.sh.cnmobile.net.domain > 192.168.10.154.62532: 57493 1/0/0 A 69.171.225.13
    Cipool
        3
    Cipool  
       2018-01-20 12:15:38 +08:00 via Android   ❤️ 2
    chrome://flags/#enable-async-dns
    关闭即可,我这里是默认开启,chrome 会自动调用本地 dns 解析
    buddha
        4
    buddha  
    OP
       2018-01-20 12:29:39 +08:00
    @Cipool 的确 改成 disable 就好了 非常感谢!
    chrome 这功能本身是好事, 只是对于天朝使用者有副作用.
    我之前换 firefox 就是好的, 心里一直想肯定是 chrome 里有什么设置 但是不清楚应该改哪里 :) .
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3569 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:52 · PVG 18:52 · LAX 02:52 · JFK 05:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.