安颜丶 2025-05-18 18:41 采纳率: 0%
浏览 35

ipesc远程连接报错

# 遇到的问题

initial Main Mode message received but no connection has been authorized with authby=PSK and xauth=no

ipsec 相关配置

ipsec.config 配置如下



# conn L2TP-PSK
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left= 服务器上配置的是公网IP
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    ikev2=no                   # 启用 IKEv2  no 禁用
    ike=3des-sha1-modp1024,aes128-sha1-modp1024,aes256-sha1-modp2048
    esp=3des-sha1,aes128-sha1,aes256-sha1
    dpddelay=10
    dpdtimeout=20
    dpdaction=clear
    rightid=%any


# ```
ipsec.secrets  配置如下


# ```bash


# %any %any : PSK "csdn.comCSDN"


# ```
系统环境:Alibaba Cloud Linux 3.2104 LTS 64位
L2TP + ipsec 搭建命令为:sudo yum install xl2tpd libreswan ppp -y
如果是纯测试L2Tp 是可以链接 但是加上Ipsec 就不能连接了
  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-05-18 20:36
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    根据你的描述,ipsec 远程连接失败的问题可能与 libreswan 的配置或系统环境有关。以下是问题的分析和解决方案:


    问题分析

    从错误信息来看:

    • initial Main Mode message received but no connection has been authorized with authby=PSK and xauth=no 表明 IKE 协商阶段出现问题,可能是由于以下原因导致:
      1. IKE 协商失败:可能是 ikeesp 参数不匹配。
      2. PSK 验证失败authby=secret 使用预共享密钥(PSK)验证,但可能存在格式或内容问题。
      3. 防火墙或网络配置问题:未开放必要的端口(如 UDP 500 和 4500)。
      4. 系统时间不同步:IKE 协商对系统时间敏感,时间偏差可能导致验证失败。

    解决方案

    1. 检查并修正 ipsec.conf 配置

    确保 ipsec.conf 配置文件中的参数正确无误。以下是推荐的配置示例:

    conn L2TP-PSK
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=<服务器公网IP>
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any
        ike=aes256-sha256-modp2048!
        esp=aes256-sha256!
        dpddelay=10
        dpdtimeout=20
        dpdaction=clear
        rightid=%any
    

    重点调整:

    • 使用更强的加密算法(如 aes256-sha256-modp2048),避免使用旧的加密算法(如 3des)。
    • 确保 ikeesp 参数中包含强制算法(末尾加 !)。

    2. 检查并修正 ipsec.secrets 文件

    确保 ipsec.secrets 文件中的 PSK 密钥格式正确。以下是推荐的配置示例:

    <服务器公网IP> %any : PSK "your_pre_shared_key"
    

    重点调整:

    • 替换 your_pre_shared_key 为实际的预共享密钥。
    • 确保密钥长度足够强(至少 16 个字符)。

    3. 开启必要的端口

    确保服务器的防火墙允许以下端口通信:

    • UDP 500 (IKE)
    • UDP 4500 (NAT-T)

    运行以下命令打开端口:

    firewall-cmd --add-port=500/udp --permanent
    firewall-cmd --add-port=4500/udp --permanent
    firewall-cmd --reload
    

    4. 检查系统时间同步

    IKE 协商对系统时间敏感,建议检查并同步系统时间:

    timedatectl set-ntp true
    timedatectl status
    

    如果时间偏差较大,手动同步时间:

    ntpdate pool.ntp.org
    

    5. 启动并检查 ipsec 服务

    确保 ipsec 服务正常运行,并加载配置:

    systemctl start ipsec
    systemctl enable ipsec
    ipsec restart
    

    检查日志以排查问题:

    journalctl -u ipsec
    

    6. 测试连接

    使用 ping 命令测试服务器是否可达,并尝试通过 L2TP/IPSec 客户端连接。


    完整配置示例

    ipsec.conf

    conn L2TP-PSK
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=<服务器公网IP>
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any
        ike=aes256-sha256-modp2048!
        esp=aes256-sha256!
        dpddelay=10
        dpdtimeout=20
        dpdaction=clear
        rightid=%any
    

    ipsec.secrets

    <服务器公网IP> %any : PSK "your_strong_pre_shared_key"
    

    总结

    按照上述步骤逐一排查和调整配置,问题通常可以解决。如果仍有问题,请提供完整的 ipsec.confipsec.secrets 文件内容以及 journalctl 日志,以便进一步分析。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月18日