用docker快速搭建l2tp服务器
之前一直使用pptp的vpn,挺好用,搭建也挺简单,网上也有好多相关的博文,大家可以任找一篇参考。后来手贱,升级了ios10和mac os,结果新版系统不再支持pptp协议,只好重新搭建l2tp vpn,用了好几天,参考了好多篇博客,一直搭不出来。本来l2tp的配置要比pptp多的多,还有一些系统级的配置需要修改,有一定的技术门槛。后来快要放弃的时候,幻想如果有人已经弄好了一个系统,然后可以把他的系统拿过来用就好了,于是就想到了docker,后来在dockerhub中发现了l2tp的镜像,然后分分钟成功搭建vpn。
在开始搭建l2tp前,你的服务器需要安装git和docker,安装难度并不高,即便你不知道git和docker是什么,网上随便找个博客,照着执行一遍所有命令基本上就能安装成功。接下来就开始vpn的搭建了。备注:本文主要翻译自https://hub.docker.com/r/fcojean/l2tp-ipsec-vpn-server/。
获取l2tp的镜像
这里有两种方式,一种是直接从docker hub上拉去已有的镜像,或者是从git上下载dockerfile然后通过命令行在本地生成镜像,两种方式都可用。
下载镜像
docker pull fcojean/l2tp-ipsec-vpn-server
本机build镜像
git clone https://github.com/fcojean/l2tp-ipsec-vpn-server.git
cd l2tp-ipsec-vpn-server
docker build -t fcojean/l2tp-ipsec-vpn-server
开始使用镜像
我们会在git下载的目录l2tp-ipsec-vpn-server下看到一个 vpn.env.example文件,这文件就是用来保存你vpn账号、密码、和共享秘钥的。cat vpn.env.example > vpn.env
生成vpn.env文件,修改共享秘钥、账号密码,for example.
VPN_IPSEC_PSK=vmaofun
VPN_USER_CREDENTIAL_LIST=[{"login":"Test1","password":"test1"},{"login":"Test2","password":"test2"}]
这个配置文件就是使用共享秘钥 vmaofun
, 并创建 Test1和Test2两个账号,另外如果要加更多账号,可以按json的格式往后加。
启动l2tp镜像
启动前有一点非常重要,需要运行如下命令以加载 IPsec NETKEY 内核模块,如果你忽略这一步,你的镜像启动后可能没法正常工作。
sudo modprobe af_key
然后就是启动镜像,加载env文件,并将对应端口和服务器的端口做绑定,直接执行如下命令。
docker run \
--name l2tp-ipsec-vpn-server \
--env-file ./vpn.env \
-p 500:500/udp \
-p 4500:4500/udp \
-v /lib/modules:/lib/modules:ro \
-d --privileged \
fcojean/l2tp-ipsec-vpn-server
验证
你可以在服务器上执行下面这条命令验证下。
docker logs l2tp-ipsec-vpn-server
如果有如下输出,表示你的vpn正常工作了。
Connect to your new VPN with these details:
Server IP: xx.xx.xx.xx
IPsec PSK: xindoo.me
Users credentials :
Login : Test1 Password : test1
...
Login : Test2 Password : test2
经过这些步骤后,理论上你的l2tp服务器就搭建成功了,试试vpn是否可以正常使用。
不愿透露姓名的柳同学
2022年3月23日 下午6:14
您好,请问怎么修改会话时长?一段时间不用,就自动断开了,我想修改一下,如果您知道,请告知一下,谢谢!