nmcli配置有线802.1X认证的核心是参数成对、顺序正确、路径绝对:必须先设wifi-sec.key-mgmt为wpa-eap(即使有线也需该字段启用802-1X),再配802-1x.eap及对应凭证,证书路径须为绝对路径,且所有参数应在同一条modify命令中完成。
在Linux中用nmcli为物理网卡配置802.1X认证,核心不是“能不能配”,而是“参数是否成对、顺序是否正确、路径是否绝对”。有线场景下不涉及SSID和无线接口名,但关键逻辑完全一致:NetworkManager必须识别这是WPA-Enterprise类连接,才会加载并应用802-1X字段。
先确认网卡与NetworkManager接管状态
物理网卡接入802.1X前,需确保它由NetworkManager管理(而非systemd-networkd或ifupdown直接控制):
运行
nmcli device status
,查看目标网卡(如enp0s3)状态是否为
connected
或
unmanaged
;若显示
unmanaged
,说明NetworkManager未接管,需检查
/etc/NetworkManager/NetworkManager.conf
中
段是否启用,或执行
nmcli device set enp0s3 managed yes
确认NetworkManager服务已运行:
systemctl is-active NetworkManager
应返回
active
创建并配置有线802.1X连接(非Wi-Fi)
有线连接无需指定SSID,但必须显式声明类型为
,且安全机制必须设为
:
Trae linux
Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。
下载
新建连接:
sudo nmcli connection add type 802-3-ethernet con-name "Corp-Ethernet" ifname enp0s3
启用企业级认证:
sudo nmcli connection modify "Corp-Ethernet" 802-1x.eap peap 802-1x.identity "user@domain" 802-1x.password "pass123" 802-1x.phase2-auth mschapv2 wifi-sec.key-mgmt wpa-eap
(注意:所有参数必须在同一条
命令中,
不能省略或后置)
若使用EAP-TLS,替换为:
802-1x.eap tls 802-1x.client-cert "/etc/certs/client.pem" 802-1x.private-key "/etc/certs/client.key" 802-1x.ca-cert "/etc/certs/ca.pem"
(路径必须是绝对路径,且证书文件需root可读)
激活连接并验证认证流程
启动连接后,实际认证发生在链路层协商阶段,日志是排错唯一依据:
执行
sudo nmcli connection up "Corp-Ethernet"
,观察终端输出;成功仅表示连接被NetworkManager接受,不代表802.1X通过
实时查看认证日志:
sudo journalctl -u NetworkManager -f | grep -i "eap\|8021x"
关键线索:
— 出现
但无后续 → RADIUS服务器不可达(检查物理链路、交换机端口是否开启802.1X、防火墙是否放行UDP 1812)
— 出现
→ 用户名/密码错误,或
与服务器要求不一致(如服务器要求
却配了
)
— 出现
→ CA证书路径错、过期,或服务器证书CN与RADIUS地址不匹配
敏感信息与生产环境建议
硬编码密码和私钥密码会明文写入
/etc/NetworkManager/system-connections/
下的配置文件,即使root权限保护也不安全:
避免在命令中直接写
;改用交互式触发:
sudo nmcli connection modify "Corp-Ethernet" 802-1x.password-flags 1
(设为
表示“提示输入”,连接激活时弹出密码框)
私钥若带密码保护,才需设
;未加密私钥则严禁设置该字段,否则会导致认证失败
推荐方案:使用PKCS#12格式合并证书与私钥(
),仅配置
,由系统密钥环(如gnome-keyring)管理解密密码
[keyfile]802-3-ethernetwpa-eapmodifywifi-sec.key-mgmtCTRL-EVENT-EAP-STARTEDCTRL-EVENT-EAP-FAILUREphase2-authpapmschapv2certificate verify failed802-1x.password1802-1x.private-key-passwordopenssl pkcs12 -export -in client.pem -inkey client.key -out client.p12802-1x.client-cert "/path/client.p12"