hwdsl2 / docker-ipsec-vpn-server

Docker image to run an IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
https://hub.docker.com/r/hwdsl2/ipsec-vpn-server
Other
6.5k stars 1.4k forks source link

关于android使用strong swan连接校验失败的问题 #420

Closed plus1998 closed 8 months ago

plus1998 commented 8 months ago

问题

因为IKEv2不支持设置VPN_PUBLIC_IP,默认出来的ip是我的公网ip,但是这个公网ip是不开放端口的。我尝试导入之后修改服务器地址为内网ip: 192.168.2.33。客户端连接显示“核验服务器鉴权失败”

[CFG] constraint check failed: certificate does not confirm identity'192.168.2.33'(ID_IPV4_ADDR)
[CFG] selected peer config 'android' unacceptable: constraint checkingfailed
[CFG] no alternative config found

我的部署步骤

vim /home/vpn.env
VPN_IPSEC_PSK=vpn
VPN_USER=vcenter
VPN_PASSWORD=123456
VPN_ENABLE_MODP1024=yes
VPN_PUBLIC_IP=192.168.2.33

docker run \
    --name l2tp-vpn-server \
    --env-file /home/vpn.env \
    -p 500:500/udp \
    -p 4500:4500/udp \
    -v /lib/modules:/lib/modules:ro \
    -v ikev2-vpn-data:/etc/ipsec.d \
    -d --privileged \
    --restart=always \
    hwdsl2/ipsec-vpn-server

连接报错

28B0B49AA3B6E586FB4655062D0805DF

hwdsl2 commented 8 months ago

@plus1998 你好!你在 VPN 客户端指定的服务器地址必须与 Docker 容器的日志中的 IKEv2 服务器地址完全一致,否则客户端可能无法连接。对于你的用例,你可以这样更改 IKEv2 地址:

  1. 在容器中运行 Bash shell
    docker exec -it l2tp-vpn-server env TERM=xterm bash -l
  2. 更改 IKEv2 服务器地址为 192.168.2.33:
    wget https://get.vpnsetup.net/ikev2addr -O ikev2addr.sh
    bash ikev2addr.sh
  3. 退出并重启容器:
    exit
    docker restart l2tp-vpn-server
plus1998 commented 8 months ago

@plus1998 你好!你在 VPN 客户端指定的服务器地址必须与 Docker 容器的日志中的 IKEv2 服务器地址完全一致,否则客户端可能无法连接。对于你的用例,你可以这样更改 IKEv2 地址:

  1. 在容器中运行 Bash shell
    docker exec -it l2tp-vpn-server env TERM=xterm bash -l
  2. 更改 IKEv2 服务器地址为 192.168.2.33:
    wget https://get.vpnsetup.net/ikev2addr -O ikev2addr.sh
    bash ikev2addr.sh
  3. 退出并重启容器:
    exit
    docker restart l2tp-vpn-server

Good job