如果我将 SSH 用于 SOCKS 代理,DNS 连接会通过它吗?

Jas*_*zst 19 ssh ssh-tunnel socks

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

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

小智 24

我知道答案有点晚,但供参考和仍在寻找答案的人,

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

PS:我不确定其他浏览器:(

  • 对于那些更喜欢 UI 的人,这是在首选项 → 高级 → 网络选项卡 → 设置按钮(用于“连接”)→“使用 SOCKS v5 时的代理 DNS”。 (4认同)

Dav*_*rtz 9

如果是SOCKS 5代理,并且客户端程序支持它,则 DNS 将通过代理。大多数浏览器通过 Socks 5 代理支持 DNS,但可能需要特殊配置才能实现。

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


pfo*_*pfo 3

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