docker就像一个大仓库, 我们只要从仓库中取出我们需要的应用(vpn服务器)运行起来就能用了。服务器是国外云服务器, 系统是CentOS7
搭建vpn服务器
1. 获取 l2tp 的镜像1
docker pull fcojean/l2tp-ipsec-vpn-server
2. 配置PSK,用户名和密码。先创建配置文件vpn.env1
vim vpn.env
将一下配置复制到vpn.env文件中。该配置psk为“abcdefg”,两个用户名user1和user2,密码都为1234561
2VPN_IPSEC_PSK=abcdefg
VPN_USER_CREDENTIAL_LIST=[{"login":"user1","password":"123456"},{"login":"user2","password":"123456"}]
3. 加载 IPsec NETKEY 内核模块1
sudo modprobe af_key
4. 启动镜像
该命令加载env文件做配置文件,并将对应端口和服务器的端口做绑定。
注意:在执行该命令时当前目录下必须有之前创建的vpn.env文件,否则会报错。1
2
3
4
5
6
7
8docker run \
--name 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
查看当前的vpn服务是否正常启动1
docker logs vpn-server
有如下输出则表示已正常启动vpn服务器。
5. 关闭防火墙,先查看防火墙状态
如果防火墙未开启则跳过此部1
systemctl stop firewalld
除了关闭防火墙,云服务器还需要配置访问规则, 即开放端口, 一定要记得开放500端口和4500端口, 这两个端口是vpn使用的
配置客户端
Windows10系统, 设置VPN:
- 右键单击系统托盘中的无线/网络图标。
- 选择 打开网络与共享中心。
- 单击 设置新的连接或网络。
- 选择 连接到工作区,然后单击 下一步。
- 单击 使用我的Internet连接 (VPN)。
- 在 Internet地址 字段中输入你的 VPN 服务器 IP。
- 在 目标名称 字段中输入任意内容。单击 创建。
- 返回 网络与共享中心。单击左侧的 更改适配器设置。
- 右键单击新创建的 VPN 连接:
- 填写之前创建的vpn服务器ip, PSK, 用户名和密码, 点击保存. 注意VPN类型选择 [使用预共享秘钥的L2TP/IPSec PSK]
- 以管理员身份启用命令提示符:执行以下两条命令
1 | REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f |
1 | REG ADD HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters /v ProhibitIpSec /t REG_DWORD /d 0x0 /f |
设置VPN连接属性.请参考: win10设置VPN连接
至此, 设置完毕, 请关机重启, 再点击连接VPN, 成功! (下图为方便说明, 连接了两个VPN)
安卓手机不用设置可以直接连VPN, 但注意vpn类型选择 L2TP/IPSec PSK, 建议先用安卓手机(连WiFi,流量可能有意外)检测vpn是否搭建成功, 再尝试Windows10连接VPN