我在一台装有防火墙和 nftables 的 CentOS 8 机器上有一个 OpenVPN 服务器。我使用以下脚本设置了 OpenVPN:
https://github.com/angristan/openvpn-install
OpenVPN 客户端是一台 Windows 10 机器。
我遇到了以下问题:连接后无法连接到互联网。Traceroute 显示我已连接到我的 VPN 服务器:
> tracert 1.1
Routenverfolgung zu 1.0.0.1 über maximal 30 Hops
1 185 ms 185 ms 185 ms 10.8.0.1
2 * * * Zeitüberschreitung der Anforderung.
3 * * * Zeitüberschreitung der Anforderung.
4 * * * Zeitüberschreitung der Anforderung.
5 * * * Zeitüberschreitung der Anforderung.
6 * * * Zeitüberschreitung der Anforderung.
然而,第一跳之后,什么也没有发生。
CentOS 8 机器当然有连接,可以轻松达到 1.1(1.0.0.1):
~# ping 1.1
PING 1.1 (1.0.0.1) 56(84) bytes of data.
64 bytes from 1.0.0.1: icmp_seq=1 ttl=52 time=27.10 ms
64 bytes from 1.0.0.1: icmp_seq=2 ttl=52 time=28.5 ms
当我在 CentOS 8 机器上执行“tcpdump -i tun0”时,我可以看到 10.8.0.2(Windows 10 客户端)正在尝试使用 ICMP 访问 1.0.0.1。但是,只有请求,没有 ICMP 回复。
我还可以看到,一段时间后,当我在 Windows 10 客户端上运行 Wireshark 时,发生了大量 TCP 重传,这显然是来自 DNS 请求?见截图:https://i.stack.imgur.com/DenXT.png
firewall-cmd --list-all的输出如下:
target: default
icmp-block-inversion: no
interfaces: venet0
sources:
services:
ports: 80/tcp 443/tcp 21/tcp 25/tcp 53/tcp 53/udp 110/tcp 143/tcp 465/tcp 587/tcp 993/tcp 995/tcp 7080/tcp 7081/tcp 8443/tcp 8447/tcp 8880/tcp 49152-65535/tcp 10022/tcp 10022/udp
protocols:
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="10.8.0.0/24" masquerade
敏感输出已被删除。
如果有人能指出我如何调试这个问题的正确方向,我将非常感激。