下面我将分别详细介绍这两种最常见 VPN 的连接方法。

使用 NetworkManager 连接 L2TP/IPsec VPN (推荐)
这是最简单、最推荐的方法,尤其适合桌面用户,它利用了系统自带的 NetworkManager 图形界面和命令行工具。
前提条件
-
VPN 服务器信息:
- 服务器地址 (域名或IP)
- 预共享密钥
- L2TP 密钥 (也叫
IPsec PSK) - 用户名 和 密码
-
安装必要软件包:
NetworkManager-l2tp和xl2tpd包提供了 L2TP 支持,strongswan包提供了 IPsec 支持,CentOS 7 默认可能没有安装。# 使用 yum 安装 sudo yum install -y NetworkManager-l2tp xl2tpd strongswan
连接步骤
步骤 1:启动并启用相关服务

# 启用并启动 NetworkManager 服务(通常已运行) sudo systemctl enable --now NetworkManager # 启用并启动 strongswan 服务 sudo systemctl enable --now strongswan
步骤 2:打开网络连接设置
-
图形界面 (GUI): 点击右上角的网络图标 -> "编辑连接..." -> 点击左下角的 "+" 号 -> 选择 "VPN" -> "Layer 2 Tunneling Protocol (L2TP)" -> 点击 "创建"。
-
命令行 (CLI): 使用
nm-connection-editor命令会弹出和 GUI 相同的窗口。nm-connection-editor
步骤 3:填写 VPN 连接信息

-
常规 选项卡:
- 连接名称:给这个连接起个名字,"MyL2TPVPN"。
- 已启用的:勾选。
-
VPN 选项卡:
- 网关:输入您的 VPN 服务器地址。
- 用户名:输入您的 VPN 账户用户名。
- 密码:输入您的 VPN 账户密码。
- 使用此密码的密钥:输入您的 L2TP 密钥 (也叫
IPsec PSK)。 - 允许使用密码认证:确保此项已勾选。
- 高级:点击此按钮。
-
L2TP 高级设置 窗口:
- IPsec 设置 选项卡:
- 使用 IKEv2:可以不勾选,默认使用 IKEv1。
- 允许使用预共享密钥:确保已勾选。
- IPsec 密钥:再次输入您的 IPsec PSK (通常和 L2TP 密钥是同一个)。
- 强制加密:建议勾选,增强安全性。
- L2TP 设置 选项卡:
- 使用本地证书:不需要。
- 发送所有流量通过此连接:根据需要勾选,勾选后,所有网络流量(包括访问国内网站)都会通过 VPN。
- 点击 "确定" 保存高级设置。
- IPsec 设置 选项卡:
-
安全 选项卡:
- 类型:选择 "预共享密钥 (PSK)"。
- 密钥:再次输入您的 IPsec PSK。
-
所有设置填写完毕后,点击 "保存"。
步骤 4:连接 VPN
-
图形界面: 再次点击右上角的网络图标 -> 在 VPN 列表中找到您刚刚创建的 "MyL2TPVPN" -> 点击 "连接",系统会提示输入密码,输入后即可连接。
-
命令行:
# 连接 sudo nmcli con up "MyL2TPVPN" # 断开连接 sudo nmcli con down "MyL2TPVPN"
步骤 5:验证连接
打开浏览器访问 https://www.whatismyip.com,如果显示的 IP 地址是 VPN 服务器的 IP,则说明连接成功。
使用 OpenVPN 客户端连接 OpenVPN
如果您的服务器使用的是 OpenVPN 协议,则需要安装 OpenVPN 客户端。
前提条件
-
VPN 服务器信息:
- 服务器地址 (域名或IP)
- 用户名 和 密码
-
OpenVPN 配置文件: 您需要从您的 VPN 服务商处获取一个
.ovpn配置文件,这个文件通常包含服务器地址、端口、加密协议等信息。 -
安装 EPEL 源和 OpenVPN 客户端:
# 安装 EPEL 源 sudo yum install -y epel-release # 安装 OpenVPN 客户端 sudo yum install -y openvpn
连接步骤
步骤 1:准备配置文件和证书
-
将您获取到的
.ovpn配置文件上传到 CentOS 7 服务器的/etc/openvpn/client/目录下,如果该目录不存在,请创建它。sudo mkdir -p /etc/openvpn/client # 假设文件名为 myconfig.ovpn sudo cp ~/Downloads/myconfig.ovpn /etc/openvpn/client/
-
处理证书文件:
.ovpn文件中通常会引用.crt(证书) 和.key(私钥) 文件,有两种处理方式:- 方式 A (推荐):将
.crt和.key文件也上传到/etc/openvpn/client/目录,然后修改.ovpn文件中的路径,使其指向正确的位置(ca /etc/openvpn/client/ca.crt)。 - 方式 B:将
.crt和.key的内容直接追加到.ovpn文件的末尾,这是最简单的方式,避免路径问题。
以方式 B 为例:
# 假设证书文件是 ca.crt sudo cat /path/to/ca.crt >> /etc/openvpn/client/myconfig.ovpn # 假设私钥文件是 user.key sudo cat /path/to/user.key >> /etc/openvpn/client/myconfig.ovpn
- 方式 A (推荐):将
步骤 2:修改配置文件以启用用户名/密码认证
默认情况下,.ovpn 文件可能使用的是静态密钥认证,为了使用用户名和密码,需要做如下修改:
-
打开
.ovpn文件:sudo vi /etc/openvpn/client/myconfig.ovpn
-
找到
auth-user-pass这一行,如果它被注释了(#auth-user-pass),请取消注释。 -
如果这行后面没有跟文件名,它就会在连接时提示你输入用户名和密码,如果你想让它直接读取一个密码文件,可以创建一个文件:
echo "your_username" > /etc/openvpn/client/login.txt echo "your_password" >> /etc/openvpn/client/login.txt
然后在
.ovpn文件中修改为auth-user-pass /etc/openvpn/client/login.txt。
步骤 3:启动 OpenVPN 连接
使用 systemd 来管理 OpenVPN 进程。
# 启动 OpenVPN 连接,使用配置文件名(不需要 .ovpn 后缀) sudo systemctl start openvpn-client@myconfig # 设置为开机自启 sudo systemctl enable openvpn-client@myconfig
步骤 4:验证连接
# 查看 OpenVPN 服务状态 sudo systemctl status openvpn-client@myconfig # 查看日志,排查问题 sudo journalctl -u openvpn-client@myconfig -f # 验证 IP 地址 curl ipinfo.io
如果看到 active (running) IP 地址已改变,则连接成功。
故障排除
-
连接超时/无法连接:
- 检查防火墙 (
firewalld) 是否阻止了端口(L2TP默认UDP 500, 4500, 1701;OpenVPN默认TCP 1194或UDP 1194)。# 永久开放 L2TP 所需端口 sudo firewall-cmd --permanent --add-service=ipsec sudo firewall-cmd --permanent --add-service=l2tp sudo firewall-cmd --reload
- 检查 VPN 服务器地址和端口是否正确。
- 检查本地网络是否能访问到 VPN 服务器。
- 检查防火墙 (
-
认证失败:
- 99% 的问题在于密钥或密码错误,请仔细核对 IPsec PSK、L2TP 密钥、用户名 和 密码,特别注意空格和大小写。
- 在
/var/log/secure或/var/log/messages中查看详细的认证日志。
-
连接后无法上网:
- 检查 VPN 服务器是否配置了正确的
DNS服务器,有些.ovpn文件会包含push指令,自动设置 DNS。 - 检查是否勾选了 "发送所有流量通过此连接" (L2TP) 或
redirect-gateway(OpenVPN)。
- 检查 VPN 服务器是否配置了正确的
希望这份详细的指南能帮助您成功连接到 VPN 服务器!
