如何在Ubuntu上创建与Mac端配置一致的IKEv2 VPN连接?
如何在Ubuntu上创建与Mac端配置一致的IKEv2 VPN连接?
我来帮你梳理下在Ubuntu上配置和Mac一致的IKEv2 VPN的步骤,针对你遇到的NO_PROPOSAL_CHOSEN错误,咱们一步步排查解决:
一、先把基础配置项对应准确
Mac上的那几个必填项,在Ubuntu的NetworkManager+StrongSwan里得精准对应:
- 服务器地址:直接填到VPN配置的「网关」字段
- 账号名:对应「用户名」字段
- 密码:对应「密码」字段(注意别和共享密钥搞混,这俩是不同的认证项)
- 共享密钥:这个是很多人容易漏的关键项!在Ubuntu的StrongSwan配置里,进到「IPsec设置」的「服务器认证」部分,选择「预共享密钥」,然后填入你的共享密钥值
- 组名:一般对应IKEv2的「标识符」,部分版本可能需要在高级设置里专门指定「组名称」
二、解决NO_PROPOSAL_CHOSEN算法不匹配问题
你提到服务器端Phase1和Phase2都是aes-sha-modp1024,得确保Ubuntu端的算法配置完全对齐,别用模糊简写:
- 打开VPN配置的「IPsec设置」,进入「高级」选项
- Phase1(IKE)算法:设置为完整标识
aes128-sha1-modp1024,最好加上!强制使用该算法(即aes128-sha1-modp1024!),避免协商时自动匹配不兼容的算法 - Phase2(ESP)算法:同样设置为
aes128-sha1-modp1024! - 你已经确认过生存期设置,那重点就放在算法的完整标识上,StrongSwan对简写的识别可能有偏差
三、检查UDP封装和IKEv2开关
- 强制UDP封装:如果服务器要求NAT穿越,就在高级设置里勾选「启用UDP封装」;若服务器没提这个要求,也可以尝试关闭后再连接
- IKEv2密钥交换:必须勾选启用!毕竟你Mac端用的是IKEv2协议,Ubuntu这边要是误开成IKEv1,协议直接不匹配,肯定连不上
四、更深度的日志排查
你已经用journalctl --no-hostname --unit=NetworkManager | tail -100查看过日志,除了NO_PROPOSAL_CHOSEN,还可以查看StrongSwan专属日志,获取更详细的算法协商过程:
journalctl --no-hostname -u strongswan | tail -100
这里会显示服务器端提出的算法列表和你本地配置的是否匹配,能精准定位不兼容的具体项
五、试试命令行手动配置(避开GUI的小坑)
要是GUI配置一直卡壳,可以尝试手动编辑StrongSwan的配置文件:
- 编辑
/etc/ipsec.conf,添加以下内容(替换成你的实际信息):
conn my-ikev2-vpn keyexchange=ikev2 ike=aes128-sha1-modp1024! esp=aes128-sha1-modp1024! left=%defaultroute leftauth=eap-mschapv2 leftsourceip=%config right=你的服务器地址 rightauth=pubkey rightsubnet=0.0.0.0/0 rightid=你的服务器标识符(如果有) eap_identity=你的账号名 auto=add
- 编辑
/etc/ipsec.secrets,添加账号密码和共享密钥:
你的账号名 : EAP "你的密码" : PSK "你的共享密钥"
- 重启StrongSwan服务:
sudo systemctl restart strongswan
- 启动连接:
sudo ipsec up my-ikev2-vpn
备注:内容来源于stack exchange,提问作者user5870571
相关产品推荐
相关产品推荐

