为什么我无法通过隧道连接到 OpenVPN 服务器的 LAN 接口?

为什么我无法通过隧道连接到 OpenVPN 服务器的 LAN 接口?

我在工作地点和家之间设置了 OpenVPN。它使用证书(不是预共享密钥),处于 tun 模式,并且运行良好。网络看起来像这样:

图表

我已经设置了正确的路由来来回发送流量,并且客户端与 192.168.80.1(服务器的隧道 IP)或 192.168.5.0/24(工作)网络上的任何内容进行通信都没有问题,这很棒。

我遇到的一个问题是客户端无法与 192.168.5.10(工作网络上服务器的 IP)通信或 ping 通。

iptables 没有阻止任何东西。我是否缺少一些 OpenVPN 安全设置或 Linux 设置?

答案1

答案可能是因为 ping 使用了错误的ICMP 数据包的源 IP。默认情况下,它将选择数据包出站接口上的 IP。在您的情况下,工作时的地址为 192.168.80.1,家里的地址为 192.168.80.10。

请尝试以下方法:

ping -I eth0 <address>

答案2

终于弄清楚我的问题了。与OpenVPN本身无关,根据上述信息无法解决。万一其他人遇到这种情况,结果就是这样:

我的 OpenVPN 服务器连接到 2 个不同的网络,并运行 2 个不同的 OpenVPN 实例 - 一个在一个接口上侦听,另一个在另一个接口上侦听。其中一个接口位于我的图表上 (192.168.5.10),而另一个则不在我的图表上 - 我们将其称为 192.168.4.10。

为了实现这项工作,我有基于策略的路由规则,其中规定“如果数据包的源 IP 为 192.168.5.10,则将其发送到路由器 192.168.5.1”和“如果数据包的源 IP 为 192.168.4.10,则将其发送到路由器” 192.168.4.1”。这意味着当建立 OpenVPN 连接时,它们可以正常工作。

问题是,当我从隧道内 ping 192.168.5.10 时,返回数据包会命中相同的 PBR 规则并被发送到 192.168.5.1,而不是返回隧道。更改我的 PBR 规则已修复此问题。

相关内容