![如何在 Ubuntu 10.04 下通过 SOCKS 代理保护 Firefox 流量(+DNS)?](https://linux22.com/image/1242799/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%2010.04%20%E4%B8%8B%E9%80%9A%E8%BF%87%20SOCKS%20%E4%BB%A3%E7%90%86%E4%BF%9D%E6%8A%A4%20Firefox%20%E6%B5%81%E9%87%8F%EF%BC%88%2BDNS%EF%BC%89%EF%BC%9F.png)
我正在使用 Ubuntu 10.04,并使用“ssh -D”启动 SOCKS 代理,并将 Ubuntu 设置为通过“系统 -> 首选项 -> 网络代理”使用它。Firefox 使用代理,当我访问类似这样的网站时,代理的 IP 就会出现http://www.whatismyip.com/。
我的问题是,Firefox 是否通过此代理解析 DNS 请求?我的网页浏览真的安全吗?(也就是说,直到我退出代理的另一端。我知道此后它就不安全了。)(而且我已经验证了密钥,我没有被中间人攻击)(而且——去他的。你知道我的意思。它是否通过代理解析 DNS 请求?)
我不知道如何亲自验证这一点。使用其他硬件(例如另一个调试代理)并不是一个选择。
如果 Firefox 无法通过 SOCKS 代理解析我的 DNS 请求,我该如何修复它?
答案1
Firefox 有一个about:config
设置,用于控制 DNS 是否通过代理进行路由。默认情况下,该设置处于关闭状态。我忘记了设置名称,但如果您使用过滤器,应该不难找到它。
答案2
您可以通过查看来自计算机的数据包来验证所有流量是否都通过 SSH 代理。这可以通过将您的 NIC 或无线网卡置于混杂模式并使用 TCPDump 或 Wireshark(我推荐 wireshark)等程序来完成。
使用这些程序,您可以查看网络流量并过滤特定协议的数据包(例如 DNS)。如果您在代理开启时过滤 DNS 并收到任何数据包(标记为 DNS),则至少某些 DNS 请求不会通过代理。原因是如果它们通过 SSH,您将看到的唯一流量将是 SSH。
您需要注意一些事项,某些插件可能不使用代理设置访问互联网,从而泄露信息。Firefox 有许多出色的插件,可帮助确保所有内容都通过代理,请查看这些插件。
祝你好运!
答案3
[编辑:tsocks 对此不起作用,抱歉。它有一个编译时选项,可以强制 DNS 请求使用 TCP,但这并不优雅。]
proxychains 拦截 getaddrinfo,这样应该可以更好地工作。
在 ./proxychains.conf、~/.proxychains/proxychains.conf 或 /etc/proxychains.conf 中:
strict_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 <your ssh -D port>
答案4
Firefox 现在可以通过可视化方式启用远程 DNS,而不必依赖系统 DNS。它是 SOCKS v5 代理选项旁边的一个复选框,称为远程 DNS。