初始化
- 拉取镜像
- 注意:openvpn2.4使用了iptables命令,新版的linux没有这个命令了(我使用的是debian11.9安装)
# 版本有: 2.3 2.4 dev edge latest
docker pull kylemanna/openvpn:2.4
一. 生成配置文件
1.生成配置
mkdir -p /data/openv2.4/openvpn
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_genconfig -u udp://x.41.54.86
2. 初始化密钥文件
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 ovpn_initpki
执行过程中需要先设置ca密码(如123456),Common Name可不设置直接按回车继续默认是server, 接着需要再输入ca密码更新密钥库以及生成crl文件
3. 生成客户端证书
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full openvpn-client
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full openvpn-client nopass #不输入客户端密码
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm -it kylemanna/openvpn:2.4 easyrsa build-client-full openvpn-user nopass 创建第2用户
#加参数 nopass 可以不输入客户端密码
先输入客户端密码: 再输入第2步的ca密码
4. 导出客户端的配置文件openvpn-client.ovpn
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_getclient openvpn-client > /data/openv2.4/openvpn-client.ovpn
docker run -v /data/openv2.4/openvpn:/etc/openvpn --rm kylemanna/openvpn:2.4 ovpn_getclient openvpn-user > /data/openv2.4/openvpn-user.ovpn
二、配置docker-compose.yml
services:
openvpn:
image: kylemanna/openvpn:2.4
restart: always
#network_mode: host
container_name: openvpn
cap_add:
- NET_ADMIN
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.all.forwarding=1
- net.ipv6.conf.default.forwarding=1
volumes:
- "/data/openv2.4/openvpn:/etc/openvpn"
ports:
- "1194:1194/udp"
三、启动容器
docker-compose up -d
#vpn已经可以连接了
- 注意:此时所有的流量都是走服务器的vpn流量(如果服务器不能上网,则本地是不能打开网站的)
四、修改本地网络,不使用VPN流量
vi openvpn/openvpn.conf
#push "block-outside-dns"
#push "dhcp-option DNS 8.8.8.8"
#push "dhcp-option DNS 8.8.4.4"
- 客户端修改
vi openvpn-client.ovpn
remote x.41.54.86 1194 udp
#在这一行后添加
comp-lzo no
route-nopull
#添加服务器上的内网地址,(注意子网掩码,我添加240的掩码一直失败,原因未知)
route 172.16.12.0 255.255.255.0
route 172.16.15.0 255.255.255.0
...
#注释最后一行
#redirect-gateway def1
参考:https://zhuanlan.zhihu.com/p/683127212