Docker部署OpenVpn解决局域网内无法上网

1,970 阅读1分钟

解决局域网内,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

image.png

按命令提示输入密码进行下一步操作。密码不可见,enter结束

image.png

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密码

image.png

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配置名称,可不重复