在现代企业网络架构中,虚拟私有网络(VPN)已成为保障远程办公安全、实现跨地域资源访问的关键技术,作为 Linux 系统管理员或网络工程师,掌握如何高效配置和管理 VPN 连接至关重要,nmcli(NetworkManager Command Line Interface)正是这样一个强大工具,它不仅支持常见的以太网、Wi-Fi 配置,还提供了对多种类型 VPN 的完整支持,包括 OpenVPN、IPsec、WireGuard 等,本文将围绕 nmcli vpn 相关命令进行详细讲解,帮助你快速上手并精通 Linux 下的 VPN 管理。
我们需要理解 nmcli 的核心理念:它是一个基于 NetworkManager 的命令行接口,允许用户通过简洁的指令完成网络配置、状态查看和连接控制,要使用 nmcli vpn,必须确保系统已安装并运行 NetworkManager 服务(通常默认启用),可通过以下命令验证:
sudo systemctl status NetworkManager
若未运行,可使用 sudo systemctl start NetworkManager 启动。
我们来看几个关键命令:
-
列出所有已保存的 VPN 连接
nmcli connection show --type vpn
此命令会显示系统中所有保存的 VPN 连接配置文件,"MyCompany-OpenVPN" 或 "Corporate-IPsec",每个连接都有唯一的 UUID 和名称,便于后续操作。
-
添加新的 VPN 连接
使用nmcli connection add可创建新连接,添加一个 OpenVPN 连接:nmcli connection add type vpn vpn-type openvpn con-name "MyOpenVPN" ifname tun0
此命令会生成一个名为 “MyOpenVPN” 的连接模板,随后需手动设置具体参数,如服务器地址、证书路径等,这可以通过交互式方式完成:
nmcli connection edit "MyOpenVPN"
在编辑模式下,输入
set vpn.data和set vpn.secrets来填入证书和密码信息(注意:敏感数据应加密存储,避免明文暴露)。 -
激活与断开连接
激活连接:nmcli connection up "MyOpenVPN"
断开连接:
nmcli connection down "MyOpenVPN"
状态检查可通过
nmcli connection show查看当前活动连接。 -
高级用法:脚本化管理
对于需要批量部署或自动化运维的场景,可以编写 shell 脚本调用 nmcli 命令,自动连接公司指定的 IPsec 配置:#!/bin/bash nmcli connection up "Corp-IPsec" || echo "Failed to connect!"
结合 cron 或 systemd timer,可实现定时连接或故障自恢复。
-
常见问题排查
若连接失败,请检查日志:journalctl -u NetworkManager
或直接查看特定连接的状态:
nmcli connection show "MyOpenVPN" --verbose
值得一提的是,nmcli 支持多种协议的混合配置,比如同时使用 L2TP/IPsec + EAP 认证,适用于复杂的企业环境,它还兼容 NetworkManager 的图形界面(如 GNOME 的“网络设置”),便于不同技能水平的用户协同工作。
nmcli vpn 是 Linux 网络工程师不可或缺的工具之一,它简化了传统手动配置的繁琐流程,提供了一致、可重复的操作接口,特别适合 DevOps 自动化、云平台集成和远程技术支持等场景,熟练掌握这些命令,不仅能提升工作效率,还能增强网络安全性与稳定性,建议网络工程师将其纳入日常技能清单,并结合实际项目不断实践优化。

半仙加速器-海外加速器 | VPN加速器 | VPN翻墙加速器 | VPN梯子 | VPN外网加速






