我有两个 Debian 盒子,位于两个不同的网络上。我试图在两者之间建立一条互联网上的 OpenVPN 链接,但遇到了一个小障碍。我希望设置它,以便我的所有家庭 IP 都可以从工作地点访问,反之亦然。互联网流量不需要通过此 VPN 链接,只有本地网络流量需要通过。
我已经成功连接了两个盒子
172.16.130.2 internal addy (10.9.8.1 vpn addy) - server vpn address (work)
172.16.120.2 internal addy (10.9.8.2 vpn addy) - client vpn address (home)
我能够从两个盒子上的终端 ping 客户端和服务器的 VPN,没有问题 - VPN 运行良好。所以我可以从我的家庭服务器 ping 10.9.8.1。
我在家庭服务器上为 172.16.130.0/24 设置了静态路由,网关为 10.9.8.1,在工作服务器上也设置了反之亦然,现在我可以 ping 通工作服务器的内部 IP 10.16.130.2。这样也可以。
因此,现在我尝试 ping 我工作服务器的路由器 @ 172.16.130.1,或我工作网络 172.16.130.x 上的任何客户端 IP,但无济于事。下一步该怎么做才能让我的工作网络对我的家庭服务器可见?我想我暂时不需要在路由器上做任何事情,但我可能错了。
答案1
为了使不同网络上的机器能够成功地相互通信,两端都需要知道如何将流量路由到另一端。通常,这在简单的最终用户 LAN 上很容易完成,因为通常只有两个目的地:“本地网络”和“其他地方”。到本地网络的流量直接发送到目的地,而到其他地方的流量则发送到默认网关(“路由器”)并由其处理(通过将其传递给您的上游 ISP,它对将流量发送到构成互联网的众多目的地的位置有更深入的了解)。
通过将 VPN 放入其中,事情会变得有些复杂。通过使 VPN 端点成为机器之内LAN,而不是将默认网关作为端点,这会让事情变得非常复杂。
您需要做的是添加路由以允许流量到达正确的地方。您可以在两个 LAN 中的每台机器上执行此操作,也可以将其添加到默认网关。后者要容易得多,但效率稍低(流量将有一个额外的“跳跃”,通过网关,这在大多数情况下不会造成很大的不便)。
如果不知道您的网关实际上是什么,我无法告诉您如何配置它们,但路线基本上需要:
- 在 172.16.130.0/24 网关上:
- 通过 172.16.130.2 路由所有发往 172.16.120.0/24 的流量
- 在 172.16.120.0/24 网关上:
- 通过 172.16.120.2 路由所有发往 172.16.130.0/24 的流量
您可能还需要在网关和 VPN 端点上执行各种防火墙操作,并且可能必须在端点上打开 IP 转发,但这都是相当简单的网络配置操作。
下次:只需将 VPN 端点放在默认网关上。这样就简单多了。
答案2
我们遇到的一个问题是,你需要在两台机器上都开启 IP 转发。此链接有助于解释如何启用它。
当转发开启时,/proc/sys/net/ipv4/ip_forward 应该是“1”。