大佬帮看下为什么网站加上 www 后 dns 就无响应了

查看 154|回复 12
作者:FaiChou   
网站是 okx (www.okx.com), 而且目前只发现 okx 有问题,浏览器打开会秒响应 DNS_PROBE_FINISHED_NXDOMAIN。
下面是我本地的一些测试:
➜  ~ nslookup www.baidu.com
Server:                2408:8215:f29:16f0::1
Address:        2408:8215:f29:16f0::1#53
www.baidu.com        canonical name = www.a.shifen.com.
Name:        www.a.shifen.com
Address: 110.242.68.4
Name:        www.a.shifen.com
Address: 110.242.68.3
➜  ~ nslookup www.okx.com
Server:                2408:8215:f29:16f0::1
Address:        2408:8215:f29:16f0::1#53
*** Can't find www.okx.com: No answer
➜  ~ nslookup okx.com
Server:                2408:8215:f29:16f0::1
Address:        2408:8215:f29:16f0::1#53
Name:        okx.com
Address: 43.198.216.245
Name:        okx.com
Address: 16.163.134.231
Name:        okx.com
Address: 43.199.123.175
➜  ~ curl okx.com
301 Moved Permanently

301 Moved Permanently

➜  ~ curl https://okx.com
301 Moved Permanently

301 Moved Permanently

➜  ~ curl https://www.okx.com
curl: (6) Could not resolve host: www.okx.com
家里所有设备打开这个 okx 都是秒拒。
OpenWrt 作为软路由,它负责拨号上网,并且里面跑着 openclash ,dns 是 Dnsmasq 。
连接 OpenWrt 的是路由器,作为中继充当无线交换机。
我尝试过关闭 openclash ,网站还是一样打不开。
在 OpenWrt 中调试:
$ nslookup www.okx.com
Server:                127.0.0.1
Address:        127.0.0.1:53
# root @ OpenWrt in ~ [9:41:51]
$ nslookup www.baidu.com
Server:                127.0.0.1
Address:        127.0.0.1:53
www.baidu.com        canonical name = www.a.shifen.com
Name:        www.a.shifen.com
Address: 110.242.68.3
Name:        www.a.shifen.com
Address: 110.242.68.4
# root @ OpenWrt in ~ [9:42:03]
$ nslookup okx.com
Server:                127.0.0.1
Address:        127.0.0.1:53
Name:        okx.com
Address: 16.163.134.231
Name:        okx.com
Address: 43.199.123.175
Name:        okx.com
Address: 43.198.216.245
okx 只要是加上 www 后就无法获取到 ip 地址了。
另外也重启过很多次 Dnsmasq (/etc/init.d/dnsmasq restart), 都没效果。
hosts 文件也没问题:
$ cat /etc/hosts
127.0.0.1 localhost
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
目前来看,和 OpenClash 关系不大,因为请求就没有走到 OC 里面。
下面是配置项:
$ cat /etc/config/dhcp
config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'
        option localuse '1'
        option port '53'
        list server '127.0.0.1#7874'
        option noresolv '1'
        option cachesize '0'
我解决了,问题应该是这样的,openclash 没有 fakeip ,它还有一个绕过大陆 ip 的功能,所以域名的请求都会先经过 DNS ,获取到 ip 后再决定是否处理,但是被污染后获取到的是一个本地地址(169.254.0.0/16),所以被 bypasss 了。
OC 中有第二 DNS 服务器功能,可以强制某个域名走这个 DNS ,于是可以这样写:

Kinnice   
我解决了,问题应该是这样的,openclash 没有 fakeip ,它还有一个绕过大陆 ip 的功能,所以域名的请求都会先经过 DNS ,获取到 ip 后再决定是否处理,但是被污染后获取到的是一个本地地址(169.254.0.0/16),所以被 bypasss 了。
OC 中有第二 DNS 服务器功能,可以强制某个域名走这个 DNS ,于是可以这样写:

xixiv5   
https://www.itdog.cn/dns/www.okx.com
因为 okx 在国内解析就是内网 ip ,且 dnsmasq 默认会有重绑定保护,会禁掉这个 ip ,因此就是没记录啦.
aincvy   
我是 Apple music 的 is1-ssl.mzstatic.com 这个域名解析不出来 时而可以时而不可以,找不到问题在哪
xuecan   
添加 1.1.1.1 作为 dns 上游服务器 应该可以解决问题。。
```
C:\Users\admin>nslookup www.okx.com 1.1.1.1
Server: one.one.one.one
Address: 1.1.1.1
Non-authoritative answer:
Name: www.okx.com.cdn.cloudflare.net
Addresses: 2606:4700:4400::6812:2bae
2606:4700:4400::ac40:9052
104.18.43.174
172.64.144.82
Aliases: www.okx.com
```
FaiChou
OP
  
因为被墙了
afn988   
@Kinnice 哦,我可能懂了。昨晚我在 OpenClash 内加了一个规则,`-DOMAIN-SUFFIX, okx.com, PROXY`,不起作用。请求没走 OpenClash ,还是先进行了 dns 解析。应该是加的位置不对,我尝试把它放到最前面试试。
FaiChou
OP
  
OpenWrt 里面的 DHCP ,重绑定保护(丢弃 RFC1918 上行响应数据),取消勾勾,再尝试下
FaiChou
OP
  
我把 `-DOMAIN-SUFFIX, okx.com, PROXY` 放到最上面。按理说请求应该先到达 openclash ,然后再决定是否解析 dns ,但好像即使这样的规则,也不会走 oc 。并且我把 oc 的“实验性:绕过大陆 ip”给关了,并且重启了一下 dns ,仍然不行。
afn988   
@afn988 我 dhcp 没配置这个,dnsmasq 有这个,我试过还是一样:
$ cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option nonwildcard '1'
option localservice '1'
option ednspacket_max '1232'
option filter_aaaa '0'
option filter_a '0'
option localuse '1'
option port '53'
list server '127.0.0.1#7874'
option noresolv '1'
option cachesize '0'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option ra_slaac '1'
list ra_flags 'managed-config'
list ra_flags 'other-config'
option force '1'
option ra 'server'
option dhcpv6 'server'
option ra_management '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
您需要登录后才可以回帖 登录 | 立即注册

返回顶部