今天试着用docker搭了一下pptpd服务器,感觉清爽不少(当然是踩坑之后的啦),特此记录。

 

使用的镜像

mmontagna/docker-vpn-pptp

 

由于是现成的镜像,所以我们只需要对其进行配置即可。

这里,由于我使用的是pptpd服务器,所以需要编辑/etc/ppp/chap-secrets文件(如果没有,创建之)。

 

添加如下内容:

# Secrets for authentication using PAP
# client server secret acceptable local IP addresses
username * password *

PS: username 和 password依据实际情况添加,这就是你登陆vpn时的账密。

PS++:server那里也可以填写pptpd,反正保证连接时,使用pptpd服务就好。如下:

# Secrets for authentication using PAP
# client server secret acceptable local IP addresses
username pptpd password *

 

然后,运行下列代码:

docker run -ti --name my_vpn \
--net=host --privileged \
-p 1723:1723 \
-e client=用户名 \
-e server=* \
-e password=用户密码 \
-e acceptable_local_ip_addresses=* \
-v /etc/ppp/chap-secrets:/etc/ppp/chap-secrets \
mmontagna/docker-vpn-pptp

这里指定了容器需要的各个参数,可根据实际情况进行修改。

这里有两点需要注意:

  1. 我在查阅docker hub之后,发现作者并未将client和password添加进参数列表。在经过测试后,我发现如果不加client和password两项参数,vpn的连接会非常慢,乃至连不上。所以我建议在将/etc/ppp/chap-secrets文件映射进去的同时,也指定client和password参数(当然,如果多用户使用,那就没必要了)。
  2. 如果不将宿主机的/etc/ppp/chap-secrets文件映射到容器中的话,此vpn只能连内网,无法连外网。

 

后记:大晚上被蚊子吵醒的感觉真糟糕[哭哭哭],赶紧补觉,今天还要上班啊~

05-17 10:11