我有一台 OpenVPN 服务器,网络为 172.24.24.0/29(IP:172.24.24.1)。Raspberry(172.24.24.2)已连接到此 OpenVPN 服务器。
Raspberry 可以访问我的本地网络 192.168.2.0/24,并且应该允许 OpenVPN 服务器通过 NAT 访问该网络。
两者均启用了内核转发。
- 从 OpenVPN 服务器 Ping 到 Raspberry 反之亦然
- 从 Raspberry 到本地 LAN 执行 ping 操作,反之亦然
- 从 OpenVPN 服务器到本地 LAN 的 Ping 不通
OpenVPN 服务器:
[root@openvpn ~]# ip route
172.24.24.0/29 dev tun1 proto kernel scope link src 172.24.24.1
192.168.2.0/24 via 172.24.24.2 dev tun1
[root@openvpn ~]# ip route get 192.168.2.101
192.168.2.101 via 172.24.24.2 dev tun1 src 172.24.24.1
从 OpenVPN 服务器 ping 192.168.2.101。然而,在 Raspberry 上,界面上没有显示任何数据包tcpdump
。但tcpdump
显示传出的数据包:
[root@openvpn ~]# tcpdump -ni tun1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun1, link-type RAW (Raw IP), capture size 65535 bytes
20:10:00.610156 IP 172.24.24.1 > 192.168.2.101: ICMP echo request, id 3413, seq 1, length 64
20:10:01.616216 IP 172.24.24.1 > 192.168.2.101: ICMP echo request, id 3413, seq 2, length 64
覆盆子
- VPN IP:172.24.24.2(tun0)
- 本地局域网:192.168.2.101(eth0)
iptables:(所有链的策略均接受)
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 172.24.24.0/29 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
路由表
default via 192.168.2.1 dev eth0
172.24.24.0/29 dev tun0 proto kernel scope link src 172.24.24.2
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.101
我最初以为这是由于 iptables 规则或 NAT 造成的。我发现没有数据包到达 Raspberry 的 tun0 接口非常不寻常,因此猜测是那里出了错误。
这个设置中哪里可能出错了?如果您能提供任何帮助,我将不胜感激。
答案1
我发现解决方案在德国 Synology 论坛中。
需要在 OpenVPN 服务器上进行进一步设置。配置可在此处找到:“使用路由 VPN (dev tun) 时在客户端包含多台机器”。