在传出 OpenVPN 连接期间无法从外部访问本地 Linux 服务器

在传出 OpenVPN 连接期间无法从外部访问本地 Linux 服务器

我有一台 Debian Linux 服务器,用于存储文件。它位于本地网络中,并在路由器 (openwrt) 中配置了端口转发。我有时会出于各种原因将服务器连接到 OpenVPN 服务器,下载仅在某些地区可访问的文件就是其中之一。

我可以使用 SSH 从网络外部顺利访问它,但一旦我将服务器连接到 OpenVPN,来自 WAN 端的所有请求都会超时。本地网络内的机器仍然可以毫无问题地访问服务器。

因此,我想要实现的是,尽管有一个临时的 OpenVPN 连接,但仍然可以通过外部连接访问服务器。

我一直尝试通过在服务器和路由器(所有接口)上运行 tcpdump 来了解发生了什么,使用下面的命令,但我仍然无法在生成的文件中找到超时的请求......

tcpdump -i any -v -w capture.cap

我的第一个猜测是 OpenVPN 客户端会采取某种措施来阻止来自非本地来源的传入请求,但后来我认为我至少会在路由器上的数据包捕获中看到该请求...当服务器具有活动 OpenVPN 连接时,传入到其他机器的请求确实有效,这至少表明问题出在服务器上而不是路由器端。

所以我有点不知所措,我不明白这里发生了什么。有什么想法吗?

编辑:根据 Esa 的建议,netstat -r 的输出:

root@server1:~# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         10.10.31.1      128.0.0.0       UG        0 0          0 tun0
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
10.10.31.0      *               255.255.255.192 U         0 0          0 tun0
amalthea.anonin 192.168.1.1     255.255.255.255 UGH       0 0          0 eth0
128.0.0.0       10.10.31.1      128.0.0.0       UG        0 0          0 tun0
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0

答案1

默认情况下,当 OpenVPN 客户端处于活动状态时,只有往返于 OpenVPN 服务器站点的网络流量才会通过 VPN,也就是说,您只有到远程子网的新路由,而默认网关保持本地化。

如果所有流量都通过 VPN,您的服务器配置文件中可能有以下内容:

push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"

除去它们。

tcpdump并不是调查这个问题的最佳方式。相反,检查你的路由表使用netstat -r。在那里,查看目的地default/ 0.0.0.0。这不应该是您的 VPN 网关。否则它只会导致您面临的问题。

相关内容