请求适配IKEv2 EAP密码认证的StrongSwan客户端ipsec.conf配置示例
请求适配IKEv2 EAP密码认证的StrongSwan客户端ipsec.conf配置示例
看起来你当前的配置踩了两个关键坑:一是认证方式选错了(用了预共享密钥PSK而非EAP),二是ipsec.secrets的格式不对。我帮你调整出适配IKEv2 EAP密码认证的完整配置,顺便解释下问题原因:
错误原因分析
你之前的配置里authby=psk会让StrongSwan尝试用预共享密钥完成认证,但你的ISP明确要求IKEv2 EAP协议;同时ipsec.secrets里多余的IP对EAP条目完全没必要,反而会干扰认证流程,这就是报错“no shared key found for '192.168.1.42' - ''”的根源。
正确的/etc/ipsec.conf配置
config setup charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2" uniqueids=no # 解决NAT环境下的设备ID冲突问题 conn proxym keyexchange=ikev2 authby=eap-mschapv2 # 指定使用EAP-MSCHAPv2认证(ISP文档要求的EAP密码认证常用类型) left=%defaultroute # 自动匹配本地默认路由的IP,比硬编码192.168.1.42更灵活 leftsourceip=%config # 从VPN服务器自动获取分配的IP地址 leftauth=eap eap_identity="<你的VPN用户名>" # 替换为你在VPN服务器创建的用户名 right=<远程VPN服务器IP> # 替换为ISP提供的VPN服务器IP rightauth=pubkey # 服务器端使用公钥认证(无需你提供客户端证书) rightsubnet=0.0.0.0/0 # 所有流量走VPN,若仅需特定子网可修改此处 auto=add
正确的/etc/ipsec.secrets配置
只需要保留EAP用户名+密码的条目即可:
<你的VPN用户名> : EAP "<你的VPN密码>"
测试命令
配置完成后执行以下命令启动连接:
sudo ipsec up proxym
如果仍然遇到问题,可以把charondebug里的ike 2改成ike 4,获取更详细的协商日志来排查细节。
备注:内容来源于stack exchange,提问作者sashok_bg




