L2TP/IPsec VPN Server 搭建过程
一、在Hyper-V中最小安装CentOS7
- 更新软件包
yum update -y
- 安装依赖的软件
yum install -y wget curl
二、安装Docker
1. 使用清华大学Docker-Ce的yum软件库
[Docker Community Edition 镜像使用帮助]
以下从链接摘抄的内容:
如果你之前安装过 docker,请先删掉
sudo yum remove docker docker-common docker-selinux docker-engine
安装一些依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
下载centos的repo文件
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
把软件仓库地址替换为 TUNA:
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
最后安装:
sudo yum makecache fast
sudo yum install -y docker-ce
2. 使用DaoCloud对Docker镜像进行加速
- 注册DaoCloud.io账号
- 登录DaoCloud.io
- 登陆后,点击右上角小火箭;或者直接访问DaoCloud加速器页面
- 使用下面的命令配置/etc/docker/daemon.json
(注意,如果daemon.json为新建,那么下面的命令将在Json数组中产生一个多余的逗号,需要
vi /etc/docker/daemon.json
进行修改)
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
也可以手动将http://f1361db2.m.daocloud.io
注入到 /etc/docker/daemon.json 中
3. 启动Docker
启动Docker
systemctl start docker
设置开机启动
systemctl enable docker
三、安装并启动 L2TP/IPSec VPN Server
1. 获取Docker镜像
直接下载 fcojean/l2tp-ipsec-vpn-server 镜像【推荐】:
docker pull fcojean/l2tp-ipsec-vpn-server
或者
通过Git源代码构建Docker镜像:
git clone https://github.com/fcojean/l2tp-ipsec-vpn-server.git
cd l2tp-ipsec-vpn-server
docker build -t fcojean/l2tp-ipsec-vpn-server .
2. 编辑env环境变量文件
参照 https://github.com/fcojean/l2tp-ipsec-vpn-server.git 仓库中的 vpn.env.example 进行配置
3. 启动 IPsec VPN 服务器
非常重要 ! 首先,在Docker主机上运行以下命令以加载 IPsec NETKEY 内核模块:
sudo modprobe af_key
使用以下命令启动新的Docker容器(将./vpn.env替换为您自己的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
4. 检查 VPN登录详细信息
如果未通过env文件设置环境变量,则VPN用户登录名将默认为vpnuser,并且将随机生成VPN_IPSEC_PSK和VPN用户密码。 要检索它们,请显示正在运行的容器的日志:
docker logs l2tp-ipsec-vpn-server
在输出中搜索以下行:
Connect to your new VPN with these details:
Server IP: <VPN Server IP>
IPsec PSK: <IPsec pre-shared key>
Users credentials :
Login : <vpn user_login_1> Password : <vpn user_password_1>
...
Login : <vpn user_login_N> Password : <vpn user_password_N>
: VPN 服务器IP地址(可在env文件中设置) : IPSec预共享密钥(可在env文件中设置) : 用户的登陆名 : 用户的登陆密码
VPN客户端的使用
参考:
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2021/01/15 02:16