Linux,  网络相关

使用 docker 搭建 openvpn

拉取 openvpn 镜像

docker pull kylemanna/openvpn:2.4

创建 volume 目录

mkdir -p /data/openvpn

生成配置文件

docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_genconfig -u udp://外网ip
注意: 外网 ip 是机器外网 ip 或者说你做穿透那台电脑外网 ip,用户客户端链接的外网 ip
例子:docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_genconfig -u udp://212.64.43.XXX
运行结果:

Processing PUSH Config: 'block-outside-dns'
Processing Route Config: '192.168.254.0/24'
Processing PUSH Config: 'dhcp-option DNS 8.8.8.8'
Processing PUSH Config: 'dhcp-option DNS 8.8.4.4'
Successfully generated config
Cleaning up before Exit ...

生成密钥文件

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 ovpn_initpki

输入私钥密码(输入时是看不见的):
Enter PEM pass phrase:12345678
再输入一遍
Verifying - Enter PEM pass phrase:12345678
输入一个CA名称(我这里直接回车)
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
输入刚才设置的私钥密码(输入完成后会再让输入一次)
Enter pass phrase for /etc/openvpn/pki/private/ca.key:12345678

生成客户端证书

docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full whsir nopass

输入刚才设置的密码
Enter pass phrase for /etc/openvpn/pki/private/ca.key:12345678

导出客户端配置

mkdir -p /data/openvpn/conf
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_getclient whsir > /data/openvpn/conf/whsir.ovpn

启动 OpenVPN 服务

docker run --restart=always --name openvpn -v /data/openvpn:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn:2.4

开启防火墙

firewall-cmd --zone=public --add-port=1194/upd --permanent
firewall-cmd --reload

留言