通过VPN路由所有stream量

所以我有一个VPS(基于openvz)和VPN(openvpn)启动并运行。 我使用笔记本电脑(archlinux)连接到这个设置,一切似乎都在工作。 假设vps的ip是192.0.2.4。 我可以连接到它,并看到192.0.2.4作为我的IP,当我问一些其他的服务器。 所以stream量正在通过vpn

但是,我仍然通过直接连接访问邮件和SSH,而不是通过VPN。 我想我知道这是为什么(默认路由到192.0.2.4,以防止路由循环等),在大多数情况下,这将是足够好的。 但不适合我 vpn的原因之一是为了避免在我的工作场所阻塞端口(不能通过587发送邮件)。 我不能这样做。

那么,如何通过vpn将stream量redirect到192.0.2.4呢? 我正在考虑将所有路由到不在端口X(我的VPN端口)上的192.0.2.4,但不知道如何去做,或者甚至是可能的。

您的VPS必须有多个IP地址。 最简单的解决scheme是连接到不同的IP地址。 例如,如果VPS的公共IP为192.0.2.4 ,VPN连接使用172.17.2.0/24 ,服务器位于172.17.2.1 ,客户端位于172.17.2.2 ,则可以让客户端连接到SMTP服务器172.17.2.1而不是192.0.2.4

这种方法的一个缺点是,只有在VPN连接处于活动状态时才使用内部IP。 而把内部IP放在DNS中是不理想的。 在VPS上有多个公共IP地址应该可以解决这个问题。

或者,您可以使用与协议或端口号相匹配的路由策略,并使用不同的路由表。 确切的configuration取决于客户端上的操作系统。