CentOS7.9 Docker 快速部署IPsec-L2TP VPN

2026-08-20 15:02 公开

一、准备工作

服务器选择:海外轻量云/ECS

系统要求:CentOS 7.9 64位

二、Docker安装# 更新系统

sudo yum update -y
# 安装Docker依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动并设置开机自启
sudo systemctl start docker && sudo systemctl enable docker
# 验证安装
docker --version
sudo docker run hello-world

三、配置VPN参数

# 创建配置目录mkdir -p /vpn
# 编辑.env文件
nano /vpn/.env
填入以下内容(公网IP必填!):# IPsec预共享密钥(自己填)
VPN_IPSEC_PSK=**********
# 主账号(自己填)
VPN_USER=*****
VPN_PASSWORD=********
# 服务器公网IP
VPN_PUBLIC_IP=你的服务器公网IP
# DNS配置
VPN_DNS_SRV1=8.8.8.8
VPN_DNS_SRV2=114.114.114.114

四、启动VPN容器(这里务必要特权模式privileged )

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

附图:

五、验证容器状态

docker ps  # 显示容器运行中即成功

六、开放端口

方法一:iptables命令# 开放UDP 500(IPsec)
sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
# 开放UDP 4500(NAT-T)
sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
# 开放UDP 1701(L2TP)
sudo iptables -A INPUT -p udp --dport 1701 -j ACCEPT
方法二:阿里云控制台进入「安全组配置」添加规则:协议:UDP端口:500/4500/1701授权对象:0.0.0.0/0七、查看日志docker logs ipsec-vpn-server
成功标志:IPsec VPN server is now ready for use!
Server IP: 你的IP
IPsec PSK:*********
Username:*********
Password:*********

八、客户端配置

Windows:内置「网络和共享中心」配置L2TP/IPsecmacOS:使用「网络」设置或第三方工具(如Tunnelblick)Android/iOS:推荐「StrongSwan」或「IPsec VPN」客户端详细教程:点击查看官方客户端配置指南

九、常见问题

问题:容器启动报错 Error: This Docker image should be run in privileged mode.
解决:docker stop ipsec-vpn-server && docker rm ipsec-vpn-server
docker run --privileged ...  # 重新运行带 --privileged 的命令

十、总结

全程10分钟搞定支持多设备连接自动分配DNS开机自启提示:使用VPN需遵守当地法律法规,合理科学上网!仅供交流学习🚀