使用 /opt/openvpn/ 存放配置文件
EASYRSA_CA_EXPIRE、EASYRSA_CERT_EXPIRE、EASYRSA_CRL_DAYS 证书相关的有效期(天)
1、生成配置文件
docker run -v /opt/openvpn/conf:/etc/openvpn -e EASYRSA_CA_EXPIRE=365000 -e EASYRSA_CERT_EXPIRE=365000 -e EASYRSA_CRL_DAYS=365000 --rm kylemanna/openvpn ovpn_genconfig -u udp://127.0.0.1:1194
2、生成PKI配置
docker run -v /opt/openvpn/conf:/etc/openvpn -e EASYRSA_CA_EXPIRE=365000 -e EASYRSA_CERT_EXPIRE=365000 -e EASYRSA_CRL_DAYS=365000 --rm -it kylemanna/openvpn ovpn_initpki
3、启动服务
docker run -v /opt/openvpn/conf:/etc/openvpn -e EASYRSA_CA_EXPIRE=365000 -e EASYRSA_CERT_EXPIRE=365000 -e EASYRSA_CRL_DAYS=365000 -d -p 1194:1194/udp --cap-add=NET_ADMIN --restart=always --name openvpn kylemanna/openvpn
如果遇到 ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted 错误,则
docker run -v /opt/openvpn/conf:/etc/openvpn -e EASYRSA_CA_EXPIRE=365000 -e EASYRSA_CERT_EXPIRE=365000 -e EASYRSA_CRL_DAYS=365000 -d -p 1194:1194/udp --cap-add=NET_ADMIN --restart=always --name openvpn --device=/dev/net/tun kylemanna/openvpn
4、修改配置文件 /opt/openvpn/conf/openvpn.conf
#省略以上部分
user nobody
group nogroup
comp-lzo no
client-to-client #允许客户端互相通信
duplicate-cn #允许同一个客户端同时连接多个
### Route Configurations Below
route 172.16.0.0 255.255.0.0 # 设置客户端ip段
push "comp-lzo no"
push "route 192.168.0.0 255.255.255.0 vpn_gateway" # 配置指定IP段走VPN
生成客户端证书、密钥,客户端名称 1
docker exec -it openvpn easyrsa build-client-full 1 nopass
导出客户端配置文件
docker exec -it openvpn ovpn_getclient 1 > 1.ovpn
修改ovpn文件
remote ip port udp # 修改ip、端口
# redirect-gateway def1 # 移除或注释,不然所有网络都会走vpn
如果需要给客户端指定ip,则创建文件 /opt/openvpn/conf/ccd/1
其中 1 是客户端名称
ifconfig-push 172.16.1.1 255.255.0.0
其中 172.16.1.1 就是客户端1 连接后的ip