![我如何通过 OS X 上的 SSH SOCKS 代理路由*一些*流量?](https://linux22.com/image/1273546/%E6%88%91%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20OS%20X%20%E4%B8%8A%E7%9A%84%20SSH%20SOCKS%20%E4%BB%A3%E7%90%86%E8%B7%AF%E7%94%B1*%E4%B8%80%E4%BA%9B*%E6%B5%81%E9%87%8F%EF%BC%9F.png)
我有一个为 VPN 目的运行的 SSH SOCKS 连接,它工作得很好。通过使用 Firefox 的 FoxyProxy 或.pac
OS X 的自动代理配置选项的文件,网络流量很容易重定向到隧道上运行。
但是,我遇到了一个专有应用程序的问题,它需要连接到 VPN 网络上的 TCP 服务器,但它本身不支持 SOCKS 代理配置。它将遵循 OS X 网络代理配置,但前提是我将 SOCKS 代理选项设置为路由全部通过 SOCKS 隧道的流量。
我正在寻找的是仅通过 SSH 隧道路由特定 IP 地址,因此给定一个网络掩码,我希望这些 IP 地址的所有流量都通过 SOCKS SSH 连接进行隧道传输,其他所有内容都直接连接。
请注意,SSH 隧道是我可以建立的唯一类似 VPN 的连接,并且我没有权限在 SSH 服务器端点上安装或运行其他软件,因此我无法建立 OpenSSH VPN 或其他替代(真实)VPN 设置。
SSH 隧道本身是在我家庭网络中的 Linux Debian 服务器上启动的,但需要路由的是来自 Mac OS X (10.6) 的流量。将所有流量从 Mac 路由到 Linux 服务器,然后有选择地路由到我的网关或 SSH SOCKS 隧道的解决方案并不理想,但如果这是唯一的解决方案,那我也可以接受。
答案1
引用作者的网站:
透明代理服务器,可用作穷人的 VPN。通过 ssh 转发。无需管理员。适用于 Linux 和 MacOS。
https://github.com/sshuttle/sshuttle
我还不确定如何让某些应用程序只穿越 VPN,但除此之外,它正好符合您的需求。您可以在启动参数中指定路由,以便只通过隧道传输某些目的地。
您不需要以任何方式触摸您的应用程序,因此请禁用您可能拥有的任何袜子设置。