Ubuntu

VPN - Ubuntu 無法 ping 伺服器,但 Windows 可以

  • September 10, 2020

作為客戶端,我在 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
leftid=@myserver.com
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 規則:

iptables -I INPUT -m policy --pol ipsec --dir in -j ACCEPT

現在我可以從 Ubuntu ping 主機並在伺服器上打開 TCP 連接。

引用自:https://serverfault.com/questions/1033285