浏览器可以通过SOCKS代理DNS请求5.我不明白这个过程是如何工作的。
如果我错了,请纠正我。在正常的DNS操作中,程序通过其操作系统进行DNS解析,而操作系统又配置为访问特定的DNS服务器并在那里进行查询。因此,在正常操作中,浏览器不应该自己通过网络进行DNS查询。
现在,使用SOCKS代理,浏览器需要来执行自己的查询。浏览器如何知道代理隧道另一端将存在哪个DNS服务器?
答案 0 :(得分:8)
然后浏览器不会进行自己的DNS查找。我不知道是否存在浏览器将DNS发送到DNS服务器的实际情况。但是,配置了SOCKS5代理后,浏览器只需要使用主机的主机名而不是其IP地址来SOCKS5连接到主机。然后由SOCKS5代理进行查找。
我知道这是因为我维护了SOCKS5实现。
答案 1 :(得分:0)
如果没有使用firefox about:config来更改DNS设置,请重新配置Windows Adapter Interface并设置
DNS2SOCKS.exe /la:socks.log 127.0.0.1:1080 8.8.8.8:53 127.0.0.1:53
这些是Google dns的默认设置
请参阅DNS through socks proxy. How do I change windows settings for domain resolution.
答案 2 :(得分:0)
有3种可能的选择:
软件仍然使用系统DNS进行主机名解析,并命令Socks服务器连接到IP。对于懒惰实施Socks的情况,这可能是默认模式或唯一支持的模式。
软件命令Socks服务器连接到主机名。此模式可能需要另外配置; Firefox和旧Opera有特殊标志来启用此模式。
软件使用UDP-over-Socks手动执行DNS查找,并命令Socks服务器连接到IP。最疯狂的模式,它需要一个软件来知道DNS地址,但理论上它是可能的。
答案 3 :(得分:0)
这取决于您的浏览器。例如,Firefox将主机名发送到SOCKS代理,而没有对其进行解析。您可以通过Wireshark确认。
PS。假设您使用的是SOCKS5 / 4a代理。 SOCKS4不支持主机名。参考:https://en.wikipedia.org/wiki/SOCKS#SOCKS4a
答案 4 :(得分:0)
代理目标地址可以是ipAddress或DOMAINNAME。浏览器使用DOMAINNAME。