Dec 31 15:59:50 lvyufeng-PC charon[39807]: 16[IKE] received NO_PROPOSAL_CHOSEN error notify
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: initiating Main Mode IKE_SA aaf1d717-591f-40d0-801d-1b10629ff58b[1] to xxxx
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: generating ID_PROT request 0 [ SA V V V V V ]
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: sending packet: from xxxx[500] to xxxx[500] (180 bytes)
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: received packet: from xxxx[500] to xxxx[500] (56 bytes)
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: parsed INFORMATIONAL_V1 request 149726070 [ N(NO_PROP) ]
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: received NO_PROPOSAL_CHOSEN error notify
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39851]: establishing connection 'aaf1d717-591f-40d0-801d-1b10629ff58b' failed
Dec 31 15:59:50 lvyufeng-PC NetworkManager[39862]: Stopping strongSwan IPsec...
Dec 31 15:59:50 lvyufeng-PC charon[39807]: 00[DMN] SIGINT received, shutting down
Dec 31 15:59:50 lvyufeng-PC ipsec_starter[39806]: child 39807 (charon) has quit (exit code 0)
Dec 31 15:59:50 lvyufeng-PC ipsec_starter[39806]:
Dec 31 15:59:50 lvyufeng-PC ipsec_starter[39806]: charon stopped after 200 ms
Dec 31 15:59:50 lvyufeng-PC ipsec_starter[39806]: ipsec starter stopped
Dec 31 15:59:50 lvyufeng-PC nm-l2tp-service[39787]: Could not establish IPsec connection.
Dec 31 15:59:50 lvyufeng-PC nm-l2tp-service[39787]: g_dbus_method_invocation_take_error: assertion 'error != NULL' failed
This error occurs when your computer (the client) and the VPN server cannot agree on the encryption algorithms (Phase 1 IKE proposals). Your client sent a list of supported encryption/hashing methods, and the server rejected all of them because none matched its own security policy.
也就是我们Phase1和Phase2的交换协议没有配置,这里需要分别进行填写:
IKE Proposals(Phase1):aes256-sha256-modp2048,aes128-sha1-modp1024,3des-sha1-modp1024!
先简单说一下L2TP/IPSec要配置的内容(借其他贴图一用):
常规信息:网关、用户名、密码
IPSec配置:预共享密钥、密钥交换协议(Phase1 Key),安全封装协议(Phase2 Key)
此外有可能需要根据自己的VPN配置认证方式
在论坛搜索了一波发现没有完备的解决方案,而使用公司的L2TP/IPSec VPN又是刚需,通过各类报错和AI辅助的解决方案尝试后,下面进行解决方案总结(也是依次遇到的问题):
1. VPN连接失败,错误未知
遇到这个问题不看log是完全没有头绪的,需要在terminal使用以下命令:
1.1 协议未配置问题
会看到类似以下的log:
核心是这行:
received NO_PROPOSAL_CHOSEN error notify,直接把log喂给Gemini,得到的解析也很清楚:也就是我们Phase1和Phase2的交换协议没有配置,这里需要分别进行填写:
IKE Proposals(Phase1):
aes256-sha256-modp2048,aes128-sha1-modp1024,3des-sha1-modp1024!ESP Proposals(Phase2) :
aes256-sha256,aes128-sha1,3des-sha1!叹号表示strongSwan只使用我们配置的协议。如果协议还是不对,可以参考:https://bbs.deepin.org/post/243347进行协议查询。
1.2 属性“ipsec-group-name”无效或不支持
这个问题是deepin自己的bug,GUI的界面的VPN IPSec中有组名这个选项,即使不填写,进行连接时也会加上
ipsec-group-name这个参数,而network-manager-l2tp没有ipsec-group-name这个参数。这个帖子六楼已经给出了详细解决方案,这里直接贴上:把
"your vpn name"改成自己的vpn名称(注意不要用中文)。就此配置问题已经解决了。
这里解决了,就可以继续进行连接
2 不安全的Legacy协议不支持
由于3des这种安全协议已经不被linux社区默认支持(所有的linux发行版本,包括安卓都不支持),需要安装额外的包,否则依旧连接不上。
安装完成后,重启network服务
3 Deepin不会自动选择认证方式
按道理该填的信息,安装的协议支持包都搞定了,就可以直接连上,但是我还是遇到了问题,用
sudo journalctl -b -f -u NetworkManager查看日志发现:也就是说使用EAP认证失败了,而在windows配置的时候需要手动选择MSCHAP认证。仔细看Deepin给的选项,全部都是拒绝XXX认证。
也就是说,Deepin是不会自动帮你选择,而是把不是自己需要的认证方式手动关闭,因此我把拒绝EAP、PAP、CHAP选项全部打开,直接MSCHAP认证,至此连接成功。
以上是整个修复问题的全过程,Linux的连接很原始,不能自动配置协议、认证方式,并且还需要给一些被废弃的协议额外安装支持库,且deepin的GUI返回的错误信息都是unknow,没有折腾经验的人很难搞定连接,希望这个帖子可以帮到有需要的同学。如果遇到其他问题或者解决方案,希望大家在回复区补充。