如果我使用 SSH 作为 SOCKS 代理,DNS 连接会通过它吗?

如果我使用 SSH 作为 SOCKS 代理,DNS 连接会通过它吗?

我用它ssh -D 8080 my server来创建 SOCKS 代理。然后配置 OS X 以用作localhost:8080SOCKS 代理。我使用它来访问互联网而不被监控。

我正在使用 Google 的 DNS 服务器 (8.8.8.8),但如何确保 DNS 查询通过 SSH 隧道?

答案1

我知道答案有点晚了,但为了参考和对于那些仍在寻找答案的人来说,

将 Firefox 配置中的属性(在地址栏中输入 about:config)设置network.proxy.socks_remote_dns为 TRUE(只需双击该属性即可切换值)以通过本地/远程 socks5 代理启用 dns 查找。

PS:我不确定其他浏览器是否如此:(

答案2

如果是袜子 5代理,并且客户端程序支持它,DNS 将通过代理。大多数浏览器都支持通过 Socks 5 代理进行 DNS,但可能需要特殊配置才能做到这一点。

如果你的目标是保护网络隐私,那么你真的应该使用类似私有网络。Privoxy 将清理您的 Web 请求的标头并确保所有流量(包括 DNS)都通过 Socks 5 代理。privoxy在本地运行,您可以用ssh它来隧道传输 Socks 5 流量。

答案3

由于 SSH 隧道仅用于 TCP/IP 连接,因此您无法立即执行此操作 - 如果没有特殊设置,UDP 流量将无法通过该隧道。基本上,您需要创建一个 fifo 来对 netcat 进行一些欺骗,如所述这里. 然后您可以从远端盒子使用 Google 的 DNS。

答案4

这取决于您的应用程序。例如,Firefox 将主机名发送到 SOCKS 代理而不解析它。在这种情况下,您无需为隐私做任何事情。您可以通过 wireshark 确认这一点。

PS. 假设您使用的是 SOCKS5 代理。SOCKS4 不支持主机名。

相关内容