Ubuntu 双网卡网络配置实战:WiFi 静态 IP 与机器人下位机通信(nmcli 配置 📅 2026/6/30 4:04:42 适用场景Ubuntu、ROS 2、机器人开发、工控机、双网卡、静态 IP 配置在机器人开发过程中我们经常会遇到这样的网络需求无线网卡WiFi连接实验室或公司的无线网络与上位机、大模型服务或局域网设备通信。有线网卡Ethernet连接机器人底盘、运动控制器或下位机进行实时控制。看似简单但真正配置时却容易遇到各种问题例如网卡名称为什么不是wlan0DHCP 自动分配了错误的 IP。/23子网掩码到底是什么意思修改 WiFi 后有线网络还能正常通信吗本文将结合一次真实的配置过程详细介绍如何在Ubuntu中使用NetworkManagernmcli配置WiFi 静态 IP同时保证有线网络正常连接机器人下位机。一、需求背景本次网络拓扑如下WiFi 192.168.17.3/23 │ │ ┌───────────────────┐ │ 无线路由器 │ │ 192.168.16.1 │ └───────────────────┘ │ ────────────────────────────────── Ubuntu 工控机 ────────────────────────────────── │ Ethernet 192.168.26.12/24 │ 机器人下位机 192.168.26.1目标如下网络配置WiFi固定 IP192.168.17.3/23网关192.168.16.1有线网保持 192.168.26.12/24 不变下位机192.168.26.1 正常通信也就是说WiFi 用于访问局域网。有线网专门用于机器人通信。两个网络互不影响。二、踩坑记录真正配置时遇到了几个比较典型的问题。坑一网卡名称为什么和教程不一样很多教程都是wlan0而我的电脑显示的是wlo1甚至还能看到altname wlp0s20f3刚开始还以为系统识别错了。其实并不是。这是 Ubuntu 新版本采用的Predictable Network Interface Names可预测网络接口命名。也就是说wlan0wlo1wlp0s20f3本质上都可能表示同一块无线网卡只是命名规则不同。因此不要照着教程死敲网卡名称而应该先查看自己的设备ip addr show找到真正的无线网卡名称即可。坑二DHCP 获取到了错误的 IP连接 WiFi 后192.168.16.215这是 DHCP 自动分配的地址。但是设备要求固定使用192.168.17.3因此必须关闭 DHCP改为静态 IP。坑三一直误解了 /23 子网掩码这是本次配置中最容易忽略的问题。很多人看到192.168.17.3/23第一反应会认为网关是不是也应该是 192.168.17.x其实不是。/23 实际表示什么CIDR 表示法中的/23对应子网掩码255.255.254.0它覆盖两个连续的 C 类网段。也就是说192.168.16.0/23 包含 192.168.16.1 ~ 192.168.16.255 以及 192.168.17.1 ~ 192.168.17.255因此IP 192.168.17.3 网关 192.168.16.1完全属于同一个网络。理解这一点后很多网络配置问题都会迎刃而解。三、开始正式配置1. 查看当前网络状态首先查看系统中的网络接口ip addr show查看当前可连接的 WiFinmcli device wifi list如果没有扫描到目标无线网络可以重新扫描sudo nmcli device wifi rescan查看当前已经建立的连接nmcli connection show --active这一步主要是确认当前连接的是哪个 WiFiNetworkManager 创建的连接名称是什么后续修改静态 IP 都需要使用该连接名称。2. 连接目标 WiFi如果尚未连接无线网络sudo nmcli device wifi connect RXJQR password rxjqrshyxgs ifname wlo1连接成功后再继续配置静态 IP。3. 修改为静态 IP这是整个配置过程中最关键的一步。sudo nmcli connection modify RXJQR \ ipv4.method manual \ ipv4.addresses 192.168.17.3/23 \ ipv4.gateway 192.168.16.1 \ ipv4.dns 192.168.16.1,8.8.8.8下面分别解释每个参数ipv4.method manual关闭 DHCP。告诉 NetworkManager不再自动获取 IP由用户手动指定。ipv4.addresses指定固定 IP192.168.17.3/23ipv4.gateway指定默认网关192.168.16.1虽然网关属于 16 网段但由于/23覆盖了 16 和 17 两个网段因此完全合法。ipv4.dns指定 DNS192.168.16.1同时增加公共 DNS8.8.8.8防止部分域名解析失败。四、让配置立即生效修改完成后需要重新启动网络连接sudo nmcli connection down RXJQR sudo nmcli connection up RXJQR无需重启电脑。五、验证配置是否成功首先确认 IPip addr show wlo1应看到inet 192.168.17.3/23然后测试网关ping 192.168.16.1如果能够正常收到回复说明 WiFi 网络已经配置成功。最后确认机器人网络没有受到影响ping 192.168.26.1如果能够正常通信说明双网卡已经可以同时工作。六、最终配置结果项目配置状态WiFi IP192.168.17.3/23✅网关192.168.16.1✅DNS192.168.16.1、8.8.8.8✅有线 IP192.168.26.12/24✅ 保持不变下位机通信192.168.26.1✅ 正常七、总结这次配置虽然最终只用了几条nmcli命令但真正花时间的是理解网络原理而不是输入命令。整个排查过程中有三个经验值得总结不要照搬教程中的网卡名称。不同 Ubuntu 版本的命名方式不同先通过ip addr show确认自己的无线网卡。理解子网掩码比记命令更重要。/23并不是只包含192.168.17.x而是覆盖192.168.16.x与192.168.17.x两个网段因此192.168.17.3与192.168.16.1可以正常通信。双网卡可以长期共存。WiFi 用于访问局域网和互联网有线网用于机器人控制只要地址规划合理二者不会互相影响。对于机器人开发而言网络配置几乎是所有调试工作的基础。掌握nmcli的使用方法以及子网划分的基本原理能够帮助我们在部署 ROS 2、连接底盘控制器、调试传感器时少走很多弯路。如果你正在搭建机器人开发环境希望这篇文章能为你提供一些参考也欢迎交流更多关于 Ubuntu、ROS 2 和机器人网络配置的实践经验。