基本上,我想将所有互联网流量(http,https)路由到另一个网络(托管网络),并将其加密到终端节点(托管网络)。我现在可以通过 Firefox/其他应用程序上的 SSH> 端口转发和 Socks 来执行此操作。
但是假设我想在 LAN 范围内执行此操作。我是否需要将所有 TCP/UDP 流量路由到 SSH 服务器,该服务器将通过 socks 代理转发流量,对吗?
或者我可以使用 VPN,对吧?但是,这就是我不想使用 VPN 的原因。有些流量我不需要加密。例如,我不需要加密 rdp 或 sftp 流量。这暗示了为什么我只尝试加密“互联网”流量(http/https 协议)。我可以限制通过 VPN 路由的流量类型吗?我想只要我的路由器位于我的 VPN 客户端之前,我就可以知道客户端要监听哪些流量?
答案1
原则上,你可以做任何你想做的事。例如,如果你的路由器是 Linux 电脑,或者有 DD-WRT、OpenWRT 或 Tomato 操作系统,你可以建立一个连接到远程网络的 OpenVPN,但仅有的转发 HTTP/HTTPS 流量(或您正在使用的任何端口)。优点是集中控制:一个单一的安装覆盖您的所有机器,甚至包括那些您无法控制的机器,例如 Xbox。
但是,另一方面,使用类似的技巧(见下文),您可以用 SSH+Socks 做同样的事情。所以,这完全取决于您。
诀窍是使用所谓的 来拥有两个路由表policy/source routing
。您可以拥有一个用于 OpenVPN 连接的路由表,以及另一个路由表(这是您不使用 VPN 时的常用表)。您可以找到一个简洁但足够的主题介绍 这里。
整个技巧是根据目标端口选择应用哪个路由表的规则:如果目标端口是 80 或 443,则选择通过 VPN 的路由表;否则选择传统的路由表。
它既有趣又简单,只是需要做一点工作。