L2TP部署

Wednesday, Sep 28, 2022 | 1 minute read | Updated at Wednesday, Sep 28, 2022

@
L2TP部署

L2TP服务端

  1. 内核加载modprobe af_key
  2. 配置文件
cat > vpn.env << EOF
VPN_IPSEC_PSK=random
VPN_USER=caisong
VPN_PASSWORD=123456
EOF
  1. l2tp容器
# 容器内通信,不需要对外连接
docker run --name l2tp-vpn-server --env-file ./vpn.env -p 500:500/udp -p 4500:4500/udp -v /lib/modules:/lib/modules:ro -d --privileged hwdsl2/ipsec-vpn-server

L2TP客户端

  1. centos基础镜像
# 必须挂载module,容器里没有
docker run -itd -v /lib/modules:/lib/modules:ro --privileged centos:8 /sbin/init
  1. 客户端配置
# 容器镜像不带这些module,安装软件会有依赖。直接先把依赖的module安装完成后,再这个镜像基础上再安装l2tp客户端
dnf install xl2tpd

VPN_SERVER_IP=random 
VPN_IPSEC_PSK=172.17.0.2 
VPN_USERNAME=caisong
VPN_PASSWORD=123456
  • /etc/xl2tpd/xl2tpd.conf
cat > /etc/xl2tpd/xl2tpd.conf <<EOF
[lac myvpn]
lns = $VPN_SERVER_IP
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
EOF
  • /etc/ppp/options.l2tpd.client
cat > /etc/ppp/options.l2tpd.client <<EOF
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000
name $VPN_USER
password $VPN_PASSWORD
EOF
  • Create xl2tpd control file:
mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control
systemctl start xl2tpd  

© 2016 - 2025 Caisong's Blog

🌱 Powered by Hugo with theme Dream.

About Me

大龄程序员,喜欢折腾各种环境部署、软件应用。

博客记录日常。