解决局域网内,VLAN隔离,隔离网段无法上网,可通过局域网内启动VPN访问访问
1. 拉取OpenVPN镜像
docker pull kylemanna/openvpn
2. 创建目录
sudo mkdir -p /home/docker/openvpn
3. 生成配置文件
docker run -v /home/docker/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://{公网IP/局域网IP}
示例:
docker run -v /home/docker/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://192.168.1.11
192.168.1.11为服务器IP,如果是局域网内就是局域网内IP 如果是外网就是外网IP
4. 生成私钥文件
docker run -v /home/docker/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
按命令提示输入密码进行下一步操作。密码不可见,enter结束
5. 生成客户端证书
docker run -v /home/docker/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full {客户端名称} nopass
示例:
docker run -v /home/docker/openvpn:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full SZ_CODE_10 nopass
nopass 客户端是否需要输入密码,加上客户端不用输入密码,去掉需设置密码,客户端访问时输入密码
生成完成后,输入上面的CA密码
6. 创建客户端导出目录
sudo mkdir -p /home/docker/openvpn/conf
7. 导出客户端配置
docker run -v /home/docker/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient {客户端名称} > /home/docker/openvpn/conf/{客户端名称}.ovpn
示例:
docker run -v /home/docker/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient Client1 > /home/docker/openvpn/conf/Client1.ovpn
Client1 为导出的客户端名称,此处可随意填写
8. 安装OpenVPN服务
docker run -d --name openvpn -v /home/docker/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN --restart=always -it -d kylemanna/openvpn
9. 重新启动Docker服务器
systemctl restart docker
10. 导出客户端配置文件
cp /home/docker/openvpn/conf/Client1.ovpn /home/
Client1 为VPN配置名称,可不重复