目标是设置一个本地服务器,通过不受控制的远程 vpn 服务路由本地流量,同时仍然能够直接访问互联网(不通过 vpn 隧道传输)并通过该直接连接提供服务。
它看起来应该是这样的:
注意:本地服务器和互联网之间还有另一个带调制解调器的路由器。
使此网络设置正常运行的最简单(最佳?)方法是什么?
我计划通过简单的 IP 转发来建立本地路由器和本地服务器之间的连接。
现在的问题是,只要我将服务器的 openvpn 客户端连接到远程服务,所有服务器的流量都会通过 vpn 隧道路由,因此没有可用的直接互联网连接。我的第一个想法是设置一个虚拟机(lxc 容器或其他东西)并在虚拟机中运行 vpn 客户端和本地网络。这样虚拟机就会从本地路由器接收所有传入流量并通过 vpn 隧道传输。据我所知,这不会影响物理服务器的网络连接,并且应该允许它向互联网提供服务。在我开始尝试设置它之前(我在网络方面没有太多经验),有没有更简单或更好的方法来做到这一点?我将感谢每一条建议。
编辑:假设连接到互联网的接口是 eth0,连接到本地路由器的接口是 eth1。另一个想法是创建一个虚拟接口 eth0:0 并将其指定为 openvpn 的本地端点,然后强制任何来自 eth1 的流量通过 eth0:0。不过,我不确定如何强制流量通过 eth0:0(可能通过添加路由)。
答案1
您需要修改服务器上的路由表。
您没有说它是 Linux 还是 Windows 服务器,但您提到的 lxc 暗示是 Linux。
使用 netstat 命令列出您的路由表(命令:“netstat -r”适用于几乎所有操作系统)
您可能会看到有一个默认路由(到 0.0.0.0/0),用于将所有流量推送到 VPN 提供商,该路由由 VPN 软件在启动时添加。您可以删除此路由并添加自己的路由,以便仅使用路由命令(route add 和 route delete)推送选定的流量通过 VPN。