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.35k stars 1.38k forks source link

添加VPN_ANDROID_MTU_FIX=yes,安卓11设备连接L2TP/IPSec PSK仍只能ping通外网,不能访问网站 #426

Closed ENEN-YIN closed 4 months ago

ENEN-YIN commented 4 months ago

任务列表

问题描述 安卓11设备,IPsec Xauth PSK、L2TP/IPSec PSK可以连接,未添加VPN_ANDROID_MTU_FIX=yes前,只能ping通外网都不能访问网站; 添加VPN_ANDROID_MTU_FIX=yes后,IPsec Xauth PSK正常访问网站,L2TP/IPSec PSK仍只能ping通外网不能访问网站。

重现步骤 重现该 bug 的步骤:

1.docker配置文件vpn.env

VPN_IPSEC_PSK=password
VPN_USER=testuser
VPN_PASSWORD=testpassword
VPN_ADDL_USERS=usera
VPN_ADDL_PASSWORDS=apassword
VPN_ENABLE_MODP1024=yes
VPN_ANDROID_MTU_FIX=yes

2.bash

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

期待的正确结果 L2TP/IPSec PSK 连接后能正常访问网站

日志 启用日志,检查 VPN 状态,并且添加错误日志以帮助解释该问题(如果适用)。

服务器信息(请填写以下信息)

客户端信息(请填写以下信息)

其它信息 添加关于该 bug 的其它信息。

hwdsl2 commented 4 months ago

@ENEN-YIN 你好!感谢你提供详细的错误报告。VPN_ANDROID_MTU_FIX=yes的解决方案有其局限性,主要适用于 IPsec/XAuth ("Cisco IPsec") 和 IKEv2 模式。对于 IPsec/L2TP 模式,目前该问题并没有较好的解决方案。你可以编辑容器内的 /opt/src/run.sh 并尝试调整 mtu 和 mru 的值(当前为 1280),然后重启容器以生效。该方法不一定有效,你可以试一下。

请参见: https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/b8c056a823d360c6316fd36198d0e26ec2cc3e18/run.sh#L594-L606 https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/b8c056a823d360c6316fd36198d0e26ec2cc3e18/run.sh#L479-L480

ENEN-YIN commented 4 months ago

好的,感谢解答