冲上云霄网络加速 - VPNPN

Linux怎么连接VPN?图形界面、命令行与连接排查步骤

更新于 2026-11-14 · vpnpn.shop

简答:Linux连接VPN,先向服务提供方取得对应协议的配置文件:OpenVPN通常是 .ovpn,WireGuard通常是 .conf。桌面用户优先用NetworkManager导入;无桌面服务器可用openvpn或wg-quick,连接后再检查公网IP、路由和DNS。

定义:Linux连接VPN,是在Linux系统中使用NetworkManager、OpenVPN客户端或WireGuard工具加载服务方提供的连接参数,建立加密网络隧道并验证流量是否按预期经过该隧道。

先判断:你手里的文件和Linux环境适合哪条路径

如果你已经有配置文件,不要先随意安装多个客户端。先确认文件后缀、是否有账号密码,以及当前设备有没有桌面环境。Ubuntu帮助文档也提醒,VPN类型不同,所需的NetworkManager组件或客户端软件可能不同,连接资料应向VPN管理方取得。参考Ubuntu连接VPN说明

Linux连接VPN路径速查
场景常见文件推荐入口适用范围注意事项
有桌面环境,使用OpenVPN.ovpnNetworkManager导入GNOME、KDE等使用NetworkManager的桌面环境可能需要安装NetworkManager的OpenVPN插件
有桌面环境,使用WireGuard.confNetworkManager或nmcli桌面Linux与部分服务器环境导入后以连接名称管理
无桌面服务器,使用OpenVPN.ovpnopenvpn --configSSH终端、最小化系统DNS处理可能需要额外配置
无桌面服务器,使用WireGuard.confwg-quick没有NetworkManager的Linux环境配置文件通常需要放入/etc/wireguard/
企业或自建OpenVPN服务服务方生成的配置文件OpenVPN 3、openvpn或NetworkManager需要管理员账号或连接配置的环境认证方式、分流和DNS由服务端配置决定

判断发行版可以先运行下面的命令;它只读取系统发布信息,不会建立VPN连接。

cat /etc/*release

如果你没有配置文件、服务器地址或认证资料,先向VPN服务提供方索取对应的Linux连接资料。不要把账号密码直接写入公开脚本或发送到不可信页面。

第一步:准备配置文件、账号和必要组件

OpenVPN通常使用.ovpn配置文件,WireGuard通常使用.conf配置文件。OpenVPN官方Linux教程把连接配置文件作为前置条件;如果使用需要用户名密码的配置,还要确认认证资料是否与网页登录账号相同,不能自行假设。参考OpenVPN Linux连接教程

如果选择桌面方式,先确认NetworkManager存在,并按发行版安装对应插件。以下命令来自公开的Linux手动配置说明,包名可能随发行版仓库变化;执行前应以本机软件源显示为准。

# Ubuntu、Debian及其衍生版:OpenVPN图形界面支持
sudo apt-get install network-manager-openvpn-gnome

# Fedora
sudo dnf -y install NetworkManager-openvpn NetworkManager-openvpn-gnome

# Arch
sudo pacman -S networkmanager-openvpn

上面这组命令只适用于OpenVPN的NetworkManager插件,不是WireGuard配置本身。WireGuard可以通过NetworkManager导入,也可以在无桌面环境中使用wg-quick。参考WireGuard Linux配置说明

如果使用纯命令行OpenVPN,安装包名通常是openvpn;如果使用WireGuard,则需要系统提供wg-quick及其依赖。不同发行版的软件包名称和仓库状态可能变化,未核实的系统不应照搬其他发行版命令。

第二步:用NetworkManager图形界面导入并连接

桌面用户通常可以先走图形界面,因为它能把连接保存到系统网络设置中,后续可通过系统菜单启用或关闭。Ubuntu的中文帮助页给出的通用入口是“网络”面板,在VPN旁边点击加号,选择VPN类型并填写连接详情。参考Ubuntu中文帮助页

  1. 打开系统设置中的“网络”或NetworkManager网络面板。
  2. 在VPN区域点击“+”或添加连接。
  3. 选择与配置文件匹配的VPN类型。
  4. 如果界面提供“从文件导入”或类似选项,选择对应的.ovpn或.conf文件。
  5. 按服务方要求填写用户名、密码、证书或密钥;没有明确资料时不要自行填入网页登录密码。
  6. 保存连接,回到网络面板开启VPN。
  7. 出现连接图标后,再执行本文第三步的IP、路由和DNS检查。

以OpenVPN为例,NetworkManager需要对应的OpenVPN插件;公开配置说明列出了Debian/Ubuntu、Fedora和Arch的安装方式,并说明导入后可以在网络设置中切换连接。参考OpenVPN NetworkManager配置说明

WireGuard图形界面也可以通过nm-connection-editor导入保存的配置文件。如果系统提示找不到该命令,先用本机包管理器安装对应的NetworkManager编辑器组件,再重新打开。

nm-connection-editor

第三步:没有桌面时,用命令行连接

WireGuard:使用nmcli

NetworkManager存在但没有完整桌面时,可以用nmcli导入WireGuard配置。导入后,命令输出中的连接名称可能与文件名不同,先用列表命令确认名称。

nmcli conn import type wireguard file /path/to/client.conf
nmcli conn
nmcli conn up "连接名称"
nmcli conn down "连接名称"

WireGuard配置说明给出了nmcli conn import type wireguard file、连接启动和断开的用法。参考WireGuard nmcli操作说明

WireGuard:使用wg-quick

如果系统没有NetworkManager,可以把配置文件放入WireGuard配置目录,再用配置文件名控制隧道。这里的名称不包含.conf后缀。

sudo mkdir -p /etc/wireguard
sudo cp /path/to/client.conf /etc/wireguard/
sudo wg-quick up client
sudo wg
sudo wg-quick down client

wg用于查看WireGuard接口和对等端状态;如果启动失败,先检查文件权限、接口名称、私钥、公钥、地址和Endpoint等字段是否由配置提供方完整生成。

OpenVPN:使用openvpn

OpenVPN命令行连接需要配置文件。最基础的启动方式如下:

sudo openvpn --config /path/to/client.ovpn

如果配置需要交互认证,可以按提示输入用户名和密码;如果服务方要求通过认证文件或特定参数连接,应以配置提供方的说明为准。OpenVPN官方教程同时区分了OpenVPN 3客户端、传统OpenVPN命令行和NetworkManager三种路径。参考OpenVPN三种Linux连接方式

看到连接初始化完成的提示后,不要只凭终端输出判断全部流量都已正确经过VPN,还要继续检查路由、DNS和IPv6。传统OpenVPN命令行不会在所有Linux环境中自动处理VPN推送的DNS,DNS管理程序还可能与系统现有网络管理软件冲突。参考OpenVPN DNS注意事项

第四步:连接后检查公网IP、路由、DNS和IPv6

连接成功至少要验证四项:公网IP是否变化、默认路由是否符合预期、DNS解析是否使用预期服务器、IPv6是否存在绕过当前隧道的情况。不同服务的分流策略不同,因此“公网IP没有变化”不一定等于连接失败,先确认服务方是否配置了全隧道或分流。

# 查看网络接口和地址
ip addr

# 查看路由
ip route

# 查看DNS状态,系统支持时使用
resolvectl status

# 查看当前公网出口,使用你信任的IP查询服务
curl -4 https://icanhazip.com
curl -6 https://icanhazip.com

如果curl -4和curl -6返回的出口与服务方预期不一致,先检查是否启用了IPv6、是否采用分流,以及配置文件是否包含IPv6相关设置。不要仅凭单个网页的显示结果判断DNS是否泄漏;可以再使用可信的DNS检测页面交叉检查。手动OpenVPN配置说明也建议在连接后检查DNS泄漏。参考OpenVPN连接后的DNS检查说明

如果是企业VPN或内网VPN,默认路由可能不会指向VPN接口,因为它可能只负责访问指定内网网段。此时应以管理员提供的网段和访问目标为准,不要为了“让所有流量都走VPN”擅自修改路由。

Linux VPN连接失败:按现象排查

常见现象与处理顺序
现象先查什么处理方法
找不到VPN类型或导入入口NetworkManager插件是否安装按发行版安装对应插件,重启网络面板后再试。
OpenVPN提示认证失败用户名、密码和配置文件是否配套向服务方重新确认认证资料,不要把普通账号密码与专用认证资料混用。
WireGuard导入失败文件后缀、内容完整性和权限确认是完整的.conf文件,检查私钥、地址、Peer和Endpoint字段。
显示已连接但网页打不开默认路由、DNS和分流规则依次运行ip route、resolvectl status和curl检查,先区分DNS问题与路由问题。
部分内网地址能访问,公网不能访问是否为企业分流配置确认服务端意图;不要直接改默认路由覆盖管理员设计。
断开后网络异常残留路由、DNS或代理环境变量先执行对应的nmcli conn down、wg-quick down或停止OpenVPN进程,再重新连接普通网络。

如果使用OpenVPN命令行,DNS处理是Linux环境中比较容易被忽略的一环。OpenVPN官方文档说明,传统客户端不会在所有发行版中自动实现服务端推送的DNS;因此遇到“IP正常但域名打不开”时,应优先查看DNS状态,而不是反复更换配置文件。查看OpenVPN DNS处理说明

如果使用WireGuard,先运行sudo wg查看最新握手时间和流量计数;若没有握手,重点检查Endpoint可达性、系统时间、密钥配对和本地防火墙。若有握手但网页打不开,再转向路由、DNS或MTU排查。

OpenVPN和WireGuard怎么选?

如果服务方同时提供两种配置,优先根据使用场景选择,而不是只看协议名称。WireGuard配置通常以轻量的.conf文件管理,适合NetworkManager或wg-quick路径;OpenVPN的.ovpn生态更常见于企业服务和已有配置文件,但命令行下的DNS处理需要额外留意。WireGuard手动配置说明提供了NetworkManager和wg-quick两条Linux路径;OpenVPN资料则覆盖NetworkManager、传统命令行和OpenVPN 3。查看WireGuard Linux路径

OpenVPN与WireGuard的Linux选择对比
比较项OpenVPNWireGuard
常见配置文件.ovpn.conf
桌面入口NetworkManager OpenVPN插件NetworkManager导入
命令行入口openvpn --config或OpenVPN 3nmcli或wg-quick
更适合的现有条件服务方只提供OpenVPN配置,或企业VPN已采用OpenVPN服务方提供完整WireGuard配置,且希望使用轻量命令行路径
需要重点核对认证方式、DNS处理、分流规则密钥、Endpoint、路由和IPv6设置

无论选择哪一种,配置文件都应来自可信的服务管理方,并遵守所在地法律和服务条款。对于企业、校园或自建VPN,连接参数和路由策略可能与普通个人VPN不同。

常见问题

Linux连接VPN前需要准备什么?

至少需要VPN协议类型、服务器或配置文件,以及服务方要求的认证资料。OpenVPN通常使用.ovpn,WireGuard通常使用.conf;如果是企业或校园网络,还应向管理员确认访问网段和分流方式。

Ubuntu上Linux怎么连接VPN,图形界面还是命令行更好?

有桌面环境时可先安装对应NetworkManager插件,再从系统网络设置导入配置文件;没有桌面或通过SSH管理的服务器,可使用openvpn命令或wg-quick。选择取决于配置文件类型和服务方支持方式。

Linux VPN显示已连接但打不开网页怎么办?

先不要重复导入配置。依次运行ip route、resolvectl status和curl检查路由、DNS与公网出口;如果IP正常但域名打不开,优先排查DNS;如果只有部分地址不可达,再检查分流和IPv6。

WireGuard配置文件导入失败怎么办?

确认文件是完整的.conf文件,检查权限、私钥、地址、Peer、Endpoint和AllowedIPs字段。也可以绕过图形界面,用nmcli conn import或wg-quick测试,从终端输出定位具体错误。

OpenVPN命令行连接后需要一直开着终端吗?

直接运行openvpn --config时,终端通常会持续显示连接日志;关闭进程会结束该会话。若要做后台服务或开机连接,应按发行版的服务管理方式配置,并先确认配置文件的认证和安全要求。

Linux连接VPN后需要检查DNS和IPv6吗?

建议检查。Linux不同发行版的DNS管理方式不同,传统OpenVPN命令行也不一定自动处理服务端推送的DNS;同时应确认IPv6是否按配置经过VPN,避免只检查IPv4就误判连接状态。

相关阅读

参考资料

  1. 连接到 VPN|Ubuntu 中文帮助
  2. Tutorial: Connect to Access Server with Linux|OpenVPN
  3. Tutorial: Learn to Install and Control the OpenVPN 3 Client|OpenVPN
  4. How to manually configure OpenVPN for Proton VPN on Linux|Proton VPN
  5. How to manually configure WireGuard on Linux|Proton VPN
  6. Proton VPN on Linux|Proton VPN