微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 macOS IKEv2 客户端无法通过隧道获得回复?

如何解决为什么 macOS IKEv2 客户端无法通过隧道获得回复?

服务器:Debian buster (4.19);强天鹅 5.7.2

ipsec.conf

conn %default
 keyexchange=ikev2
 ike=aes256-aes128-sha256-sha1-modp3072-modp2048-modp1024
 esp=aes256-sha1-ecp256
 fragmentation=yes
 rekey=no
 compress=yes
 dpdaction=clear
 left=100.200.100.200
 leftauth=pubkey
 leftid=@mydnsname.com
 leftcert=server.pem
 leftsendcert=always
 leftsubnet=10.0.0.0/16
 leftfirewall=yes
 lefthostaccess=yes
 right=%any
 rightauth=pubkey
 rightsourceip=10.10.0.0/16
 rightdns=10.0.89.1

conn ikev2-pubkey
 auto=add

Linux 和 Windows 客户端运行良好。 例如,我可以像这样看到从客户端到服务器的 ping:

19:50:18.075816 IP me.59547 > server.4500: UDP-encap: ESP(spi=0xcbb1e4ea,seq=0x32b),length 132
19:50:18.076105 IP server.4500 > me.59547: UDP-encap: ESP(spi=0xc14e4d72,seq=0x329),length 132

具有隧道状态:

ikev2-pubkey[439]: ESTABLISHED 26 minutes ago,100.200.100.200[mydnsnmae.com]...150.160.150.160[me]
ikev2-pubkey{331}:  INSTALLED,TUNNEL,reqid 177,ESP in UDP SPIs: cbb1e4ea_i c14e4d72_o
ikev2-pubkey{331}:   10.0.0.0/16 === 10.10.0.1/32

但是对于 macOS (Catalina),事情就不同了。我已成功建立连接:

ikev2-pubkey[442]: ESTABLISHED 7 minutes ago,100.200.100.200[mydnsnmae.com]...130.120.130.120[me-mac]
ikev2-pubkey{334}:  INSTALLED,reqid 176,ESP SPIs: c6ba543e_i 03ba0a5a_o
ikev2-pubkey{334}:   10.0.0.0/16 === 10.10.0.4/32

并且只看到一种方式的数据包:

20:01:27.933739 IP 150.160.150.160 > 100.200.100.200: ESP(spi=0xc632be22,seq=0x5f),length 392
20:01:29.073710 IP 150.160.150.160 > 100.200.100.200: ESP(spi=0xc632be22,seq=0x60),length 392
20:01:29.231101 IP 150.160.150.160 > 100.200.100.200: ESP(spi=0xc632be22,seq=0x61),length 392
20:01:34.683591 IP 100.200.100.200.4500 > 150.160.150.160.4500: NOnesP-encap: isakmp: child_sa  inf2
20:01:34.696358 IP 150.160.150.160.4500 > 100.200.100.200.4500: NOnesP-encap: isakmp: child_sa  inf2[IR]
20:01:41.563563 IP 150.160.150.160 > 150.160.150.160: ESP(spi=0xc632be22,seq=0x62),length 136

我看到了 ESP in UDP SPIs:ESP SPIs:间的区别,但不明白是什么意思。

我应该检查什么来修复 macOS VPN 客户端?

解决方法

这是解决方案。 看起来 macOS 的 NAT 检测存在一些问题(我尝试了几个不同的主机)。所以客户端的 forceencaps=yes ipsec.conf 解决了这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?