我在两台机器(A 和 B)上设置了 libreswan。我通过 ssh 连接到另一台机器 (B) 并开始使用 netcat 监听端口。然后,我用 netcat 在第一台机器 (A) 上连接。隧道设置正确,我可以添加适当的 SA 来解密 Wireshark 中的 ESP 数据包。我看到了所有传出的 ESP 数据包和传入的 ESP 数据包,但我也看到了来自机器 B 的未加密传入数据包。当 wireshark 解密传入的 ESP 数据包时,有效负载完全匹配,未加密传入数据包的时间戳相同。我想知道我是否搞砸了,或者这是它的工作原理?内核处理解密 VPN 数据包,然后“重放”数据包,以便机器 A 上的 netcat 可以看到它们。(毕竟,netcat 不知道 VPN,对吧?)