为了通过 SSH 连接传输网络流量,我们进行了以下操作:
我在 IE7 的 LAN 设置对话框中手动配置了一个 PAC 文件。我已验证流量是通过为 SOCKS5 动态端口转发设置的 SSH 隧道路由的。我发现 IE7 总是先尝试在本地解析名称。
我正在寻找的功能是能够在代理处解析 DNS 名称,而不是由浏览器本地解析。
Firefox 中有一个设置可以指定 DNS 远程解析,Safari 会自动执行此操作。我已验证了这两个其他浏览器的操作正确。如果我能让 IE 也能正常工作就好了。
这是供参考 这样你就能明白这个问题从何而来。
注意:这个问题实际上是在谷歌的帮助下找到的,但没有答案。考虑到这正是我的问题,我想我应该直接复制/粘贴到这里,因为我觉得我无法描述得更好了(虽然有一个小介绍)。
答案1
您知道这是否会在 IE6 中发生?
您必须向 Microsoft 询问此行为是否是故意为之。我尝试浏览他们的网站。
最好的猜测是,他们曾经支持 SOCKS4,然后添加了 SOCKS5,但没有考虑如何重新考虑其他网络行为以利用协议功能。
当 SOCKS5 在 Mozilla 中实现时,我们对此进行了大量讨论。有些人希望它采用一种方式(本地 DNS),其他人则希望采用另一种方式(服务器端 DNS)。我有自己的偏好,但由于我之前支持过 Netscape Proxy Server,所以我意识到两种配置都会有人支持。添加该选项可能是正确的选择...
答案2
一种解决方法虽然不方便,但就是将您的 DNS 设置为ncpa.cpl
127.0.0.1,并告诉您的 SSH 客户端将 127.0.0.1:53 转发到远程端。
答案3
禁用客户端 DNS 缓存可能是一种选择,尽管这会导致全部DNS 解析将远程进行。这基本上涉及禁用 DNS 客户端服务并刷新本地 DNS 解析器缓存。
无需首先检查本地 DNS 解析器缓存,所有 DNS 解析都会立即在活动网络连接的 TCP/IP 设置中指定的代理 DNS 服务器上远程执行。