如何在 Ubuntu 22.04 上安装最新稳定版 OpenVPN 服务端?

文章导读
如果你需要 Ubuntu 22.04 上最新稳定版的 OpenVPN,建议添加 OpenVPN 官方 APT 源进行安装;若仅追求系统兼容性,直接使用 Ubuntu 自带源即可。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

如果你需要 Ubuntu 22.04 上最新稳定版的 OpenVPN,建议添加 OpenVPN 官方 APT 源进行安装;若仅追求系统兼容性,直接使用 Ubuntu 自带源即可。

先说结论:Ubuntu 默认源版本较保守,官方源更新更快但需手动配置。

  • 适合:需要新特性或修复特定漏洞的生产环境
  • 先准备:确保拥有 sudo 权限且服务器网络可访问官方源
  • 验收:服务启动成功且客户端能正常拨号

命令速用版

# 添加官方源密钥和仓库
curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | sudo gpg `--dearmor` -o /etc/apt/trusted.gpg.d/openvpn-repo-public.gpg
echo "deb https://build.openvpn.net/debian/openvpn/stable jammy main" | sudo tee /etc/apt/sources.list.d/openvpn-aptrepo.list

# 更新并安装
sudo apt update
sudo apt install openvpn easy-rsa

为什么会这样

Ubuntu LTS 版本(如 22.04)为了系统稳定性,默认软件源中的包版本会在发布时冻结,后续主要提供安全修复而非功能更新。OpenVPN 官方源则提供最新的稳定分支。如果你的业务依赖新协议特性或特定安全补丁,官方源更合适;如果只是常规使用,Ubuntu 自带源维护更省心,兼容性风险更低。

分步处理

1. 安装基础包
执行上述“命令速用版”中的命令。安装完成后,检查版本信息确认是否来自官方源。

2. 配置 PKI 证书
OpenVPN 需要证书认证。复制 easy-rsa 模板到配置目录:

sudo cp -r /usr/share/easy-rsa/ /etc/openvpn/server
cd /etc/openvpn/server/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca
sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server

注意:生产环境建议为 server 密钥设置密码,上述命令仅为演示免密流程。

3. 生成服务端配置
复制示例配置并编辑:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
sudo gunzip /etc/openvpn/server/server.conf.gz
sudo nano /etc/openvpn/server/server.conf

重点检查项:port(默认 1194)、proto(udp 或 tcp)、ca/cert/key 路径需对应实际生成的文件位置。

4. 开启网络转发
编辑 sysctl 配置:

sudo nano /etc/sysctl.conf
# 确保包含以下行
net.ipv4.ip_forward=1
sudo sysctl -p

5. 配置防火墙
如果使用 UFW,需放行端口并配置 NAT:

如何在 Ubuntu 22.04 上安装最新稳定版 OpenVPN 服务端?
sudo ufw allow 1194/udp
sudo nano /etc/ufw/before.rules
# 在 *filter 之前添加 NAT 规则

怎么验证是否生效

1. 检查服务状态

systemctl status openvpn-server@server.service

状态应显示 active (running)

2. 查看日志

sudo journalctl -u openvpn-server@server.service -f

启动时不应出现 ERRORCannot open TUN/TAP dev 等权限错误。

3. 客户端连接测试
使用生成的客户端配置文件连接,若能获取到内网 IP 且能 ping 通服务端内网地址,说明隧道建立成功。

常见坑

1. 配置文件路径不一致
Ubuntu 22.04 使用 systemd 管理 OpenVPN,配置目录通常在 /etc/openvpn/server/,旧教程中的 /etc/openvpn/ 可能导致服务无法自动启动。

2. 防火墙拦截
即使服务启动,若云服务器安全组或本地 UFW 未放行 UDP 1194 端口,客户端会一直显示“连接中”。

3. Easy-RSA 版本差异
不同版本的 easy-rsa 命令参数略有不同,建议直接使用 apt 安装的版本,不要混用网上下载的旧版脚本。

4. 权限问题
私钥文件(.key)权限应设置为 600,否则 OpenVPN 会拒绝启动以保护安全。

参考来源

  • OpenVPN Official Install Guide, "Install OpenVPN on Debian/Ubuntu", openvpn.net
  • Ubuntu Manpages, "openvpn - OpenVPN VPN daemon", manpages.ubuntu.com
  • OpenVPN Documentation, "Easy RSA Usage", openvpn.net