在企业环境和服务器管理中,为CentOS系统配置VPN连接是一项常见且重要的任务,它不仅能加密服务器与外部网络之间的通信,确保数据传输安全,还能让服务器如同身处另一个网络环境,便于访问受限资源或进行远程管理,本文将以目前应用最广泛的OpenVPN协议为例,详细介绍在CentOS系统上设置VPN连接的完整流程。

准备工作
在开始配置之前,请确保您已具备以下条件:
- 一台运行CentOS 7、8或9的服务器,并拥有
sudo权限或root权限。 - 从您的VPN服务提供商处获取的VPN配置文件,这通常是一个以
.ovpn为后缀的文件,其中包含了服务器地址、端口、加密证书和密钥等所有必要信息。 - 稳定的网络连接。
 
安装OpenVPN客户端
CentOS的官方软件源中可能不包含OpenVPN客户端,因此我们需要先启用EPEL(Extra Packages for Enterprise Linux)仓库。
对于CentOS 7系统,使用yum包管理器:
sudo yum install epel-release sudo yum update sudo yum install openvpn
对于CentOS 8或9系统,使用dnf包管理器:
sudo dnf install epel-release sudo dnf update sudo dnf install openvpn
安装过程会自动处理所有依赖项,完成后,您就可以开始配置连接了。
配置并连接VPN
配置过程的核心是使用您获取的.ovpn文件,为了便于管理,我们将其放置在OpenVPN的配置目录下。
传输配置文件
使用scp或其他安全方式将您的.ovpn文件从本地电脑上传到CentOS服务器,如果文件名为myvpn.ovpn,可以执行:
scp /path/to/myvpn.ovpn user@your-server-ip:/home/user/
移动并重命名文件

登录到您的CentOS服务器,将配置文件移动到/etc/openvpn/目录,为了方便后续操作,可以将其重命名为一个简洁的名称,例如client.conf。
sudo mv /home/user/myvpn.ovpn /etc/openvpn/client.conf
启动VPN连接
OpenVPN可以通过两种方式启动:前台运行(便于调试)和后台服务(推荐)。
- 
前台运行(测试用): 此方式会实时显示连接日志,方便排查问题。
sudo openvpn /etc/openvpn/client.conf
如果连接成功,终端会显示初始化序列和分配的IP地址等信息,按
Ctrl+C可终止连接。 - 
作为系统服务启动(推荐): Systemd可以轻松管理OpenVPN服务,服务名称的格式为
openvpn@<配置文件名>,但不包含.conf后缀。sudo systemctl start openvpn@client
如果没有错误输出,说明服务已在后台成功启动。
 
验证连接与设置开机自启
验证连接
要验证VPN是否已成功连接,可以检查网络接口,OpenVPN通常会创建一个名为tun0的虚拟网络接口。

ip addr show tun0
您还可以通过查询当前公网IP地址来验证,如果显示的IP地址是VPN服务器的IP,则证明连接已生效。
curl ipinfo.io
设置开机自启
为了确保服务器重启后VPN能自动连接,可以启用该服务:
sudo systemctl enable openvpn@client
至此,您的CentOS系统已成功配置为开机自动连接指定的VPN。
相关问答 (FAQs)
问题1:VPN连接失败,我该如何排查问题?
解答: 连接失败的原因可能有很多,查看OpenVPN服务的日志是定位问题的关键,使用命令 sudo journalctl -u openvpn@client -f 可以实时查看服务日志,通常会给出具体的错误信息,比如认证失败、服务器不可达或证书错误等,请检查CentOS的防火墙(如firewalld或iptables)规则,确保没有阻止VPN流量(通常是UDP协议的1194端口),请确认您的.ovpn完整无误,特别是用户名和密码(如果使用密码认证)。
问题2:如何手动断开或重新连接VPN?
解答: 如果您将VPN配置为系统服务,管理起来非常简单,要断开VPN连接,请执行停止服务的命令:
sudo systemctl stop openvpn@client
要重新连接,只需再次启动服务即可:
sudo systemctl start openvpn@client
如果您是在前台运行的连接,直接在终端窗口按下Ctrl+C组合键即可立即断开。