作为客户端,我在 Ubuntu 上使用 VPN 连接时遇到问题。在 Windows 上运行良好。Ubuntu 没有收到路由表...
设想:
服务器:Centos 7 with Strongswan (Ipsec, IKEv2)
静态 IP 设置为 10.0.77.1
/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=10.0.77.1
NETMASK=255.255.255.0
VPN 配置 - ipsec.conf(仅主要部分):
auto=add
compress=yes
type=tunnel
keyexchange=ikev2
ike=...
esp=...
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
[email protected]
leftcert=fullchain.pem
leftsendcert=always
leftsubnet=10.0.77.0/24
leftsourceip=10.0.77.1/32
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.0.77.2-10.0.77.9
rightdns=10.0.77.1
rightsendcert=never
eap_identity=%identity
因此,服务器是 10.0.77.1,客户端将收到 10.0.77.2 和 10.0.77.9(同一子网)之间的 IP。
客户端:Windows 10
本机客户端,连接并 ping 10.0.77.1 正常。
路由表:
10.0.0.0 255.0.0.0 10.0.77.17 26
10.0.77.17 255.255.255.255 10.0.77.17 281
10.255.255.255 255.255.255.255 10.0.77.17 281
客户端:安装了 Strongswan 的 Ubuntu 20.04
可以正常连接,但是不能ping 10.0.77.1,并且没有到10的路由条目*
有任何想法吗?非常感谢。
更新
与路由表无关。感谢@ecdsa:ip route list table 220
解决方案
我意识到问题与服务器防火墙有关。一条 iptables 规则解决了这个问题:
iptables -I INPUT -m policy --pol ipsec --dir in -j ACCEPT
我意识到,当我停止 iptables 时,它会起作用。
经过几个小时的尝试,我找到了一个解决问题的 iptables 规则:
现在我可以从 Ubuntu ping 主机并在服务器上打开 TCP 连接。