介绍
本教程使用 Docker 设置 OpenVPN 服务器,并配置相应的客户端。
先决条件
- 一台运行 Linux 的服务器(本教程使用 Ubuntu)
- Docker 已安装在服务器上
- 基本的 Linux 命令行知识
- 服务器上至少 1GB 的可用 RAM 和 5GB 的磁盘空间
服务器端设置
准备工作
选择一个目录存储 OpenVPN 数据。本教程使用 /opt/openvpn-data
。
sudo mkdir -p /opt/openvpn-data
生成 OpenVPN 配置
docker run -v /opt/openvpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://<YOUR_SERVER_IP>
将 <YOUR_SERVER_IP>
替换为你的服务器IP地址,这个命令会生成基本的 OpenVPN 配置文件。
初始化 PKI(公钥基础设施)
docker run -v /opt/openvpn-data:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
在此步骤中,需要设置一个 CA 密码和输入公共证书信息。需要记住设置的密码。
启动 OpenVPN 服务器
docker run -d \
--name openvpn \
--restart=always \
-v /opt/openvpn-data:/etc/openvpn \
-p 1194:1194/tcp \
--cap-add=NET_ADMIN \
kylemanna/openvpn
这个命令会启动 OpenVPN 服务器并设置为自动重启。
配置 OpenVPN 服务器
编辑 /opt/openvpn-data/openvpn.conf
文件:
server 192.168.255.0 255.255.255.0
verb 3
key /etc/openvpn/pki/private/<YOUR_SERVER_IP>.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/<YOUR_SERVER_IP>.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key
key-direction 0
keepalive 10 60
persist-key
persist-tun
proto tcp
port 1194
dev tun0
status /tmp/openvpn-status.log
user nobody
group nogroup
comp-lzo yes
reneg-sec 0
# Route Configurations
route 192.168.254.0 255.255.255.0
# Push Configurations
push "route 10.10.254.0 255.255.255.0"
push "route-nopull"
push "comp-lzo yes"
<YOUR_SERVER_IP>
为自动生成的服务器IP,保存文件后,重启 OpenVPN 容器:
docker restart openvpn
客户端配置
创建客户端证书
为名为 “client” 的客户端创建证书:
docker run -v /opt/openvpn-data:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full client nopass
生成客户端配置文件
docker run -v /opt/openvpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient client > /opt/openvpn-data/client.ovpn
修改客户端配置文件
编辑 /opt/openvpn-data/client.ovpn
文件:
client
dev tun
proto tcp
remote <YOUR_SERVER_IP> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
comp-lzo yes
verb 3
<key>
(客户端私钥内容)
</key>
<cert>
(客户端证书内容)
</cert>
<ca>
(CA 证书内容)
</ca>
key-direction 1
<tls-auth>
(tls-auth 密钥内容)
</tls-auth>
将 <YOUR_SERVER_IP>
替换为服务器公网 IP 地址。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END