我已经在我的java应用程序中连接到了socks5服务器,现在我想启动一个外部应用程序并让它的所有连接都通过socks5服务器运行。外部应用程序本身不支持socks5。
任何输入都会很棒,我在这里挠头..
最佳答案
我知道如何做到这一点的第二个技巧是替换标准运行时库或类似的技巧来拦截操作系统网络调用或在内核中设置一组精细调整的防火墙规则。
这两种技术都是特定于操作系统的,无法使用 java 实现这一点。
你最好的选择是运行现有的socks5包装器并让该程序启动外部应用程序,例如socksify。
我对这种方法有不同的经验,有些应用程序可以工作,有些则不能,并且从未发现其中有任何逻辑。
YMMV
另一种方法是在 Java 应用程序中运行 tcpproxy(例如使用 Apache MINA 的东西)并让应用程序连接到本地主机上的代理端口。同样,这仅适用于某些服务。
关于Java Socks5 外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3678876/