1. 环境准备
-
操作系统:推荐使用 Ubuntu 22.04 / Debian 12
-
权限:需要 root 或 sudo 权限
-
网络:确保服务器有公网 IP,并且 UDP 1194 端口可访问(OpenVPN 默认端口)
2. 安装 OpenVPN
sudo apt update sudo apt install -y openvpn easy-rsa
-
openvpn:VPN 服务端和客户端工具 -
easy-rsa:用于生成证书和密钥
3. 配置证书和密钥
-
初始化 PKI 目录:
make-cadir ~/openvpn-ca cd ~/openvpn-ca
-
编辑
vars文件(可选修改默认参数,如国家、组织等):
nano vars
示例修改:
set_var EASYRSA_REQ_COUNTRY "CN" set_var EASYRSA_REQ_PROVINCE "Beijing" set_var EASYRSA_REQ_CITY "Beijing" set_var EASYRSA_REQ_ORG "MyVPN" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "MyVPN-Unit"
-
初始化 PKI 并生成 CA:
./easyrsa init-pki ./easyrsa build-ca nopass
nopass表示 CA 不设置密码(方便自动化,如果安全要求高,可以不加)
-
生成服务器证书和密钥:
./easyrsa gen-req server nopass ./easyrsa sign-req server server
-
生成 Diffie-Hellman 参数:
./easyrsa gen-dh
-
生成 HMAC 认证密钥(加强安全):
openvpn --genkey --secret ta.key
4. 配置 OpenVPN 服务器
-
创建服务端配置文件:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/server.conf.gz
-
编辑
/etc/openvpn/server.conf,修改关键参数:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 cipher AES-256-CBC auth SHA256 server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" keepalive 10 120 persist-key persist-tun status openvpn-status.log log-append /var/log/openvpn.log verb 3
-
将生成的证书和密钥复制到
/etc/openvpn/:
sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/ sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/ sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/ sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/ sudo cp ~/openvpn-ca/ta.key /etc/openvpn/
5. 启动 OpenVPN 服务
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server sudo systemctl status openvpn@server
确认没有报错,即服务器启动成功。
6. 创建 VPN 用户客户端
-
生成客户端证书:
cd ~/openvpn-ca ./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1
-
生成客户端配置文件模板(例如
client.ovpn):
client dev tun proto udp remote <服务器公网IP> 1194 resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 key-direction 1 verb 3 <ca> # 将 ca.crt 内容复制到这里 </ca> <cert> # 将 client1.crt 内容复制到这里 </cert> <key> # 将 client1.key 内容复制到这里 </key> <tls-auth> # 将 ta.key 内容复制到这里 </tls-auth>
可以为每个客户端生成单独配置,便于管理。
7. 客户端使用
-
下载 OpenVPN 客户端:
-
Windows / macOS:官网下载 GUI 版本
-
Linux:
sudo apt install openvpn
-
-
将
client.ovpn文件导入客户端,连接即可。 -
Linux 命令行连接示例:
sudo openvpn --config client.ovpn
8. 常用管理命令
-
查看在线客户端:
cat /etc/openvpn/openvpn-status.log
-
禁用客户端(删除对应证书或 CRL):
./easyrsa revoke client1 ./easyrsa gen-crl sudo cp ~/openvpn-ca/pki/crl.pem /etc/openvpn/
-
重启 OpenVPN 服务:
sudo systemctl restart openvpn@server
9. 测试 VPN
-
客户端连接成功后,执行:
ping 10.8.0.1
-
验证公网 IP 已被 VPN 转发:
curl ifconfig.me
✅ 至此,一个基础的本地 OpenVPN 已经部署完成,并且支持多用户管理和客户端连接。

您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏