有没有简单的方法可以通过带有 -D 的 ssh 代理路由所有流量?
我可以配置单个特定应用程序来执行此操作,但我希望配置能够路由机器上的所有流量。感谢您的帮助!
答案1
在 Linux 中:
- iptables -t nat -A OUTPUT !-d 127.0.0.0/8 -j REDIRECT --to 1081
- 运行监听 1081 的程序,检索实际的、非重定向的目标地址,与 SOCKS 服务器协商并进行中继。
我已经用 Perl(原型质量)编写了此类供私人使用的程序,并且用 C 编写了一个更好的版本。它尚未发布。
更新:现已发布:http://github.com/vi/socksredirect/ 使用prototype.pl。如果您有兴趣开发更好的版本,请通知我。
更新 2创建了一个更好的版本:http://github.com/vi/tcpsocks以及 Socat 2 的补丁:http://github.com/vi/socksredirect/blob/master/socat-2.0.0-b3-REDIRECT.patch
PS 我的大部分(有时是一些邻居的)流量现在都通过 tcpsocks->ssh 进行。
答案2
答案3
也许您应该考虑设置 VPN。
答案4
取决于您使用的操作系统。如果您使用的是 MacOS,则有全局代理设置,每个应用程序都应该使用这些设置,即使有些应用程序不遵守这些设置(例如 Firefox)。