阿里云轻量服务器搭建OpenVPN服务器
在阿里云轻量服务器(新加坡节点)上部署 OpenVPN 的完整过程如下,涵盖了证书生成、服务端配置、NAT 转发以及客户端连接。
最终因为没有买的VPN价格便宜,所以放弃了。
初始化 PKI 与生成证书
使用 Easy-RSA 工具生成 CA、服务端和客户端证书。
make-cadir ~/openvpn-ca # 创建 CA 工作目录
cd ~/openvpn-ca # 进入目录
./easyrsa init-pki # 初始化 PKI 结构
./easyrsa build-ca # 生成 CA 根证书和私钥
./easyrsa gen-req server nopass # 生成服务端证书请求
./easyrsa sign-req server server # 签发服务端证书
./easyrsa gen-dh # 生成 Diffie-Hellman 参数
./easyrsa gen-req client1 nopass # 生成客户端证书请求
./easyrsa sign-req client client1 # 签发客户端证书生成的文件位置:
- CA 根证书 →
pki/ca.crt - 服务端证书 →
pki/issued/server.crt - 服务端私钥 →
pki/private/server.key - 客户端证书 →
pki/issued/client1.crt - 客户端私钥 →
pki/private/client1.key - Diffie-Hellman 参数 →
pki/dh.pem
配置 OpenVPN 服务端
创建配置文件
在 /etc/openvpn/server.conf 中写入:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
data-ciphers-fallback AES-256-CBC
topology subnet
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3常见问题与解决
- 证书路径错误:需将证书复制到
/etc/openvpn/,并在配置中引用。 - 权限问题:私钥文件需设置为 600 权限。
- 启动失败:使用
openvpn --config /etc/openvpn/server.conf查看详细报错。
配置 NAT 与路由
开启 IP 转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p # 立即生效添加 NAT 规则
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE注意:
eth0替换为服务器实际公网网卡名,可用ip addr查看。
保存规则:
apt install iptables-persistent
netfilter-persistent save配置 OpenVPN 客户端
客户端所需文件
ca.crtclient1.crtclient1.key
客户端配置示例 (client1.ovpn)
client
dev tun
proto udp
remote <服务器公网IP> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA256
verb 3
redirect-gateway def1
ca ca.crt
cert client1.crt
key client1.key也可以将证书直接嵌入 .ovpn 文件,方便分发。
使用到的工具与命令解释
- make-cadir:创建 Easy-RSA CA 工作目录。
- cd:进入指定目录。
- ./easyrsa init-pki:初始化 PKI 目录结构。
- ./easyrsa build-ca:生成 CA 根证书和私钥。
- ./easyrsa gen-req:生成证书请求文件。
- ./easyrsa sign-req:签发证书。
- ./easyrsa gen-dh:生成 Diffie-Hellman 参数。
- openvpn –config:手动运行 OpenVPN,验证配置。
- systemctl start/enable openvpn@server:启动并设置开机自启。
- journalctl -u openvpn@server -f:查看 OpenVPN 服务日志。
- iptables:配置 NAT 转发规则。
- sysctl -p:加载内核参数配置。
- apt install iptables-persistent:安装持久化保存 iptables 规则的工具。
- netfilter-persistent save:保存当前防火墙规则。
总结
整个过程包括:
- 使用 Easy-RSA 初始化 PKI 并生成证书。
- 在
/etc/openvpn/server.conf配置服务端。 - 开启 IP 转发并配置 NAT。
- 在客户端导入
.ovpn文件并连接。
- 原文作者:生如夏花
- 原文链接:https://DBL2017.github.io/post/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8/%E9%98%BF%E9%87%8C%E4%BA%91%E8%BD%BB%E9%87%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BAopenvpn%E6%9C%8D%E5%8A%A1%E5%99%A8/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。