[ Content contribution] 如何在Deepin25配置L2TP/IPSec
Tofloor
poster avatar
lvyufengh
deepin
2026-01-03 16:05
Author

先简单说一下L2TP/IPSec要配置的内容(借其他贴图一用):

常规信息:网关、用户名、密码

IPSec配置:预共享密钥、密钥交换协议(Phase1 Key),安全封装协议(Phase2 Key)

此外有可能需要根据自己的VPN配置认证方式

在论坛搜索了一波发现没有完备的解决方案,而使用公司的L2TP/IPSec VPN又是刚需,通过各类报错和AI辅助的解决方案尝试后,下面进行解决方案总结(也是依次遇到的问题):

1. VPN连接失败,错误未知

遇到这个问题不看log是完全没有头绪的,需要在terminal使用以下命令:

sudo journalctl -b -f -u NetworkManager

1.1 协议未配置问题

会看到类似以下的log:

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

核心是这行:received NO_PROPOSAL_CHOSEN error notify,直接把log喂给Gemini,得到的解析也很清楚:

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!

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 这个参数。这个帖子六楼已经给出了详细解决方案,这里直接贴上:

nmcli connection modify "your vpn name" -vpn.data ipsec-group-name

"your vpn name"改成自己的vpn名称(注意不要用中文)。

就此配置问题已经解决了。

nmcli connection modify VPN\ L2TP\ 1 -vpn.data ipsec-group-name

这里解决了,就可以继续进行连接

2 不安全的Legacy协议不支持

由于3des这种安全协议已经不被linux社区默认支持(所有的linux发行版本,包括安卓都不支持),需要安装额外的包,否则依旧连接不上。

sudo apt update
sudo apt install libcharon-extra-plugins libstrongswan-extra-plugins

安装完成后,重启network服务

sudo systemctl restart NetworkManager

3 Deepin不会自动选择认证方式

按道理该填的信息,安装的协议支持包都搞定了,就可以直接连上,但是我还是遇到了问题,用 sudo journalctl -b -f -u NetworkManager 查看日志发现:

Dec 31 16:02:28 lvyufeng-PC pppd[41746]: EAP: peer reports authentication failure

也就是说使用EAP认证失败了,而在windows配置的时候需要手动选择MSCHAP认证。仔细看Deepin给的选项,全部都是拒绝XXX认证。

也就是说,Deepin是不会自动帮你选择,而是把不是自己需要的认证方式手动关闭,因此我把拒绝EAP、PAP、CHAP选项全部打开,直接MSCHAP认证,至此连接成功。

以上是整个修复问题的全过程,Linux的连接很原始,不能自动配置协议、认证方式,并且还需要给一些被废弃的协议额外安装支持库,且deepin的GUI返回的错误信息都是unknow,没有折腾经验的人很难搞定连接,希望这个帖子可以帮到有需要的同学。如果遇到其他问题或者解决方案,希望大家在回复区补充。

Reply Favorite View the author
All Replies

No replies yet