一个蛋疼的 DNS 和 HTTP 代理的问题, 高手进!

2016-06-24 09:58:41 +08:00
 wuyanteng2016

网络环境: 路由器: Ros V6.3.1 Server: 1 台 DNS 服务器 -- IP : 10.0.100.10 1 台 HTTP 代理服务器 -- IP : 10.0.100.11 ,代理端口: 3128 有线网络: 10.0.10.0/23 WIFI 网络: 10.0.20.0/23 server 网络: 10.0.100.0/24 有线 /无线网络 /服务器 分别接到 Ros 不同接口,并且访问国内网站一切正常。

奇葩的现象: 有线网络:台式电脑使用内网 DNS 解析, chrome 配置 HTTP 代理(配置正确), chrome 代理访问网站正常。

  无线网络:
  
  1. 笔记本电脑使用内网 DNS 解析(这一步解析不太正常, DNS 服务器的劫持操作在无线网络环境下失效。直接去查询了上游 DNS 服务器解析,并且没有保留缓存)
  
  2.  chrome 配置 HTTP 代理(配置正确), chrome 代理访问错误。错误代码: ERROR:Gateway  Timeout,并且 Ros 路由器里面 Files 文件管理器中会自动多出来一个 Web-proxy 的文件夹( Ros Web-Proxy 功能未开启)以及 Web Proxy connections 选项内多出 N 条动态数据,源地址都是 wifi 网段 IP ,目的地址基本都是 0.0.0.0 , Last Protocal 协议: UnKnown 或 HTTP/1.1 (图片稍后上传)。

我的问题: 1. 为什么 wifi 网络 DNS 解析不太正常?有线网络为什么可以?

    2. wifi 网络配置了 chrome 浏览器的 HTTP 代理之后,我怎么感觉没有去查找代理服务器,而直奔 Ros 路由器里面的 Web-proxy 去了,路由器的 web 代理我没开啊。
    
    
    
    
    请问怎么解决?感激!
6834 次点击
所在节点    DNS
7 条回复
wuyanteng2016
2016-06-24 10:10:13 +08:00
Siril
2016-06-24 10:37:58 +08:00
看起来颇为神奇。

貌似
问题 1 出在 dns 服务器,
问题 2 出在 ROS 。

换版本啥的试试吧。

对了, 关于 dns ,
如果你的有线和无线是使用同一台笔记本 windows 测试的,
网络环境切换的时候,(比如连接 /断开 vpn 之类)
有时会出现 诡异的 nslookup 与应用程序的域名解析不一致,
net stop dnscache && net start dnscache && ipconfig /flushdns
并重新打开浏览器。
Siril
2016-06-24 10:38:51 +08:00
另外,可以改一下 http 代理服务器的端口试试。
wuyanteng2016
2016-06-24 10:43:55 +08:00
wuyanteng2016
2016-06-24 11:45:11 +08:00
@Siril

关于 HTTP 代理测试的时候,一个是台式机,一个是笔记本。 我用 iPhone 6 在 wifi 下设置 HTTP 代理可以正常使用,都是一个 wifi 。怀疑笔记本系统有问题,正在重置。。。

关于 DNS , wifi 解析存在问题,能说具体点,最有可能的是哪儿的设置问题吗? DNS 软件: dnsmasq
Siril
2016-06-24 17:20:17 +08:00
@wuyanteng2016

肯定能查到原因的。
iphone 上也有 nslookup 、 ping 等工具,你自己找一下,记得有免费的。


先检查 dnsmasq 监听的端口,应有 0.0.0.0:53 。 netstat -anpl | grep :53
linux 系统有无 firewalld 之类的。 iptables-save
路由对不对(从 wifi 网络 ping 通 dns 服务器)。

1. 在 dns 服务器上 tcpdump -i 对应端口 -nn udp and port 53 and src 笔记本的 IP
在笔记本上 nslookup google.com 10.0.100.10
观察 dns 服务器是否收到查询请求,是否回应。
在笔记本上装 wireshark 或 microsoft network monitor 之类抓包观察。

2. 打开 dnsmasq 的日志。 dnsmasq.conf 中(临时)添加
log-queries
log-facility=/var/log/dnsmasq.log
(调试完毕记得来此注释掉并重启 dnsmasq 并删除此文件,
否则文件尺寸飞速增长至几十 G )
然后 systemctl restart dnsmasq ,(一般新的 linux 发行版都这样吧)
在笔记本上 nslookup 测试, tail 此日志文件观察。

思路就是检查
dns 服务器有没有收到查询请求,
有没有转发给上游 dns 服务器并得到结果(看日志),
以及结果是否返回给 windows ,

然后可知问题出在 dns 服务器还是 ROS 。
Siril
2016-06-24 17:23:49 +08:00
如果是 windows ,有时诡异的情况出现就是 nslookup 测试正常, 用浏览器打开新网站,却没有发出 dns 请求。
此时重启 dnscache 服务、清 dns 缓存、再关闭并重新打开浏览器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX