nmcli本身不直接支持802.1X认证配置,它依赖底层wpa_supplicant服务完成有线802.1X认证;需先安装并启用NetworkManager与wpa_supplicant,再用nmcli创建连接并设置802-1x.eap、identity、password等参数,最后由NetworkManager自动调用wpa_supplicant完成认证。

nmcli本身不直接支持802.1X认证配置,它依赖底层的wpa_supplicant服务来完成有线802.1X认证流程。所以实际操作是:用nmcli创建一个受控连接,再通过wpa_supplicant.conf指定EAP参数,最后由NetworkManager自动调用wpa_supplicant完成认证。
准备前提条件
确保系统已安装并启用NetworkManager和wpa_supplicant:
- CentOS/RHEL系:yum install -y NetworkManager-wifi wpa_supplicant(注意:即使是有线,也需wpa_supplicant包)
- Ubuntu/Debian系:apt install -y wpasupplicant network-manager
- 确认服务运行:systemctl enable --now NetworkManager,systemctl is-active wpa_supplicant应为active
- 物理网卡需处于未被ifconfig或netplan接管的状态(NetworkManager应为唯一网络管理者)
创建带802.1X参数的有线连接
使用nmcli新建一个以太网连接,并启用802.1X认证选项:
- nmcli connection add type ethernet con-name "corp-8021x" ifname enp0s25(将enp0s25替换为你的实际网卡名)
- nmcli connection modify "corp-8021x" 802-1x.eap peap 802-1x.identity "your-username" 802-1x.password "your-password"
- nmcli connection modify "corp-8021x" 802-1x.phase2-auth mschapv2 802-1x.ca-cert /etc/ssl/certs/ca.crt(若服务器使用自签名证书,需提供CA路径;如跳过验证,可设为802-1x.ca-cert /dev/null)
- nmcli connection modify "corp-8021x" ipv4.method auto ipv6.method ignore(通常由RADIUS服务器下发地址)
启用连接并验证状态
激活该连接后,NetworkManager会自动启动wpa_supplicant进程并与交换机交互:
- nmcli connection up "corp-8021x"
- 检查认证是否成功:nmcli device show enp0s25 | grep -i "802-1x\|state",输出中应含802-1x.state: success
- 查看IP获取情况:ip -4 addr show dev enp0s25,应有来自企业内网的IPv4地址
- 测试连通性:ping -c3 192.168.1.1(替换为企业网关)或访问内部资源
常见问题处理
若连接失败,优先排查以下几点:
- 确认交换机侧已全局启用dot1x、接口下执行dot1x enable,且RADIUS服务器配置正确(IP、密钥、认证域)
- 检查journalctl -u NetworkManager -f日志,搜索wpa_supplicant或EAP关键词
- 若提示证书错误,可临时禁用验证:nmcli connection modify "corp-8021x" 802-1x.ca-cert /dev/null,但生产环境不建议长期使用
- 部分老旧发行版(如CentOS 7)需额外安装NetworkManager-glib或手动启用wpa_supplicant.service,避免冲突


















