IOS 14 上的 Always On VPN(IKEv2)

IOS 14 上的 Always On VPN(IKEv2)

我想在我的 iPhone 7(ios 14)上使用 VPN(IKEv2),但遇到了一些意外的问题:

Mar 24 13:59:36 ingrid-common charon: 08[NET] received packet: from _CLIENT_IP_[55169] to _SERVER_IP_[500] (1196 bytes)
Mar 24 13:59:36 ingrid-common charon: 08[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Mar 24 13:59:36 ingrid-common charon: 08[IKE] _CLIENT_IP_ is initiating an IKE_SA
Mar 24 13:59:36 ingrid-common charon: 08[IKE] remote host is behind NAT
Mar 24 13:59:36 ingrid-common charon: 08[IKE] received proposals unacceptable
Mar 24 13:59:36 ingrid-common charon: 08[ENC] generating IKE_SA_INIT response 0 [ N(NO_PROP) ]
Mar 24 13:59:36 ingrid-common charon: 08[NET] sending packet: from _SERVER_IP_[500] to _CLIENT_IP_[55169] (36 bytes)

然后消息一直重复,例如:"sending packet: from _SERVER_IP_[500] to _CLIENT_IP_[55169] (36 bytes)"

我按照本教程设置我的连接:(https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-20-04

似乎其他设备(例如 macbook/win 笔记本电脑)运行良好,但 iphone 不行(

我不知道出了什么问题。如果有人已经修好了手机,请帮忙。

不想为了一直使用 vpn 而切换回安卓

答案1

在您链接到的指南中,“服务器”端仅限于以下密码套件:

ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!

这不是坏的,但如果某些客户端想要使用不同的算法,它可以阻止其连接。

这就是您的日志中发生的情况:

Mar 24 13:59:36 ingrid-common charon: 08[IKE] received proposals unacceptable

当我的 iPhone(iOS 14.4.1)连接到我的 VPN 服务器时,它会建议以下密码套件(加密、prf、完整性、DH/ECP 参数):

  1. AES256-CBC + HMAC-SHA2-256 + HMAC-SHA2-256-128 + modp2048
  2. AES256-CBC + HMAC-SHA2-256 + HMAC-SHA2-256-128 + ecp256
  3. AES256-CBC + HMAC-SHA2-256 + HMAC-SHA2-256-128 + modp1536
  4. AES128-CBC + HMAC-SHA1 + HMAC-SHA1-96 + modp1024
  5. 3DES + HMAC-SHA1 + HMAC-SHA1-96 + modp1024

选定的提案(我没有定义任何限制)是 #1。它提供了非常强大的安全性和完整性。


至于证书,指南建议使用自签名证书。使用 Let's Encrypt,您可以自动获取受信任的证书。我建议使用。我在中acme.sh有一个符号链接,并手动将根证书和中间证书放在 中。我的续订挂钩是。/etc/ipsec.d/certs/root/.acme.sh/.../etc/ipsec.d/cacertssystemctl restart ipsec

Let's Encrypt 证书可在 iOS 和 Windows 设备上开箱即用。

相关内容