Linux
VPN:無法使用 ipsec/strongswan 訪問我自己的網關
我已按照本教程使用 StrongSwan 和 IPSec 設置我的私有 VPN。它工作得很好。
但是當我嘗試直接連接到我的網關/伺服器(使用 SSH)時,連接不會通過 VPN。
如果我在客戶中查找表格,我會看到:
$ netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default link#19 UCS 85 0 ipsec0 default 172.21.15.254 UGScI 18 0 en0 8.8.8.8 link#19 UHWIi 7 33 ipsec0 10.10.10.1 10.10.10.1 UH 0 0 ipsec0 13.32.153.9 link#19 UHW3I 0 3 ipsec0 10 17.248.144.80 link#19 UHWIi 2 22 ipsec0 17.252.76.33 link#19 UHWIi 1 40 ipsec0 18.184.56.218 link#19 UHWIi 1 1 ipsec0 54.37.155.XX 172.21.15.254 UGHS 397 197 en0 ...
當我連接到 VPN 時,最後一行被添加到我的客戶端。54.37.155.XX 是我伺服器的公共地址。我不明白是什麼程序將此行添加到我的路由表中。
如果我刪除最後一行,效果很好:
sudo route -n delete 54.37.155.XX 172.21.15.254
我懷疑
/etc/ipsec.conf
配置文件中缺少一條規則正在添加此路由條目,但我不知道是哪一個:config setup charondebug="ike 1, knl 1, cfg 0" uniqueids=no conn ikev2-vpn auto=add compress=no type=tunnel keyexchange=ikev2 fragmentation=yes forceencaps=yes ike=aes256-sha1-modp1024,3des-sha1-modp1024! esp=aes256-sha1,3des-sha1! dpdaction=clear dpddelay=300s rekey=no left=%any leftid=@server_name_or_ip leftcert=/etc/ipsec.d/certs/vpn-server-cert.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightdns=8.8.8.8,8.8.4.4 rightsourceip=10.10.10.0/24 rightsendcert=never eap_identity=%identity
任何的想法 ?
這是 macOS/iOS 客戶端的一個已知問題。那裡的客戶端安裝到 VPN 伺服器的直接路由,以防止 IKE 流量通過 VPN 傳輸。但是,這意味著您也無法通過 VPN 伺服器的公共 IP 通過 VPN 訪問其他服務。
作為一種解決方法,您可以從用於分配給客戶端的虛擬 IP 的子網中為伺服器分配一個虛擬 IP。例如,如果您進行了配置,
rightsourceip=10.10.10.2/24
那麼您可以將保留分配給10.10.10.1
伺服器的一個介面,您應該能夠從您的 VPN 客戶端訪問該 IP。