我有一台 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 网关。否则它只会导致您面临的问题。