docker安装IPsec VPN

半兽人 发表于: 2017-11-20   最后更新时间: 2017-11-26 15:41:33  
{{totalSubscript}} 订阅, 7,908 游览

服务器端

首先先下载一个ipsec vpn的镜像

docker pull fcojean/l2tp-ipsec-vpn-server

然后本地创建一个.env的文件,比如这里创建的就是vpn.env,文件内容为

VPN_IPSEC_PSK=psk_password
VPN_USER_CREDENTIAL_LIST=[{"login":"Test1","password":"test1"},{"login":"Test2","password":"test2"}]

其中psk_password是预共享秘钥,然后下面是两个账户,Test1Test2

然后可以启动L2TP镜像,首先挂载个内核模块

sudo modprobe af_key

然后运行镜像:

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

看到显示Connect to your new VPN with these details:即可。

测试是第一次运行的时候需要加--name l2tp-ipsec-vpn-server \,后面运行如下即可,由于本环境不需要开机自启动,所以就没加自启了

docker run \
    --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容器是默认退出的,这里由于没有做--restart=always的,所以重启之后要重新启用container。

docker start l2tp-ipsec-vpn-server

这里的服务名是根据docker ps查看出来的,即最后一列,这里查看的结果就是l2tp-ipsec-vpn-server

客户端

windowns

测试是在属性里面,安全一栏选择可选加密,然后未加密的密码勾选上
如果拨号无法成功,那么需要添加一个注册表文件,内容如下

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent]
"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002

首先用文本把上面的文字进行复制,然后将文件修改为*.reg格式,双击添加即可,其他移动客户端按照通常的配法即可,没太多需要注意的地方。

参考

https://github.com/hwdsl2/docker-ipsec-vpn-server
https://blog.csdn.net/xindoo/article/details/52830609
https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md

错误

Cannot find valid public IP. Please manually enter the public IP,of this server in your 'env' file, using variable 'VPN_PUBLIC_IP'.

则增加 --env VPN_PUBLIC_IP=你的IP

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 \
-env VPN_PUBLIC_IP=172.16.0.11 \
fcojean/l2tp-ipsec-vpn-server
更新于 2017-11-26

徐泽奇 5年前

--env VPN_PUBLIC_IP=172.16.0.11 \

查看shares更多相关的文章或提一个关于shares的问题,也可以与我们一起分享文章