临时修改用 ip 命令最稳妥:先 sudo ip addr flush dev ens33 清旧地址,再 sudo ip addr add 192.168.50.10/24 dev ens33 添加新 ip,必须 sudo ip link set ens33 up 启用接口,最后 sudo ip route add default via 192.168.50.1 补网关,重启即失效。

临时切换网口 IP 和状态,用 ip 命令最稳妥
临时改 IP 或启停网卡,ip 是当前主流推荐方式,ifconfig 在多数新发行版里已不预装,强行用还得先 sudo apt install net-tools(Ubuntu/Debian)或 sudo yum install net-tools(RHEL/CentOS)。常见错误是执行后 ping 不通却没检查接口是否 up:ip link set ens33 up 必须在 ip addr add 之后显式执行,否则地址加了但接口仍 down。
-
sudo ip addr flush dev ens33:清空旧地址(避免冲突) -
sudo ip addr add 192.168.50.10/24 dev ens33:添加新 IP(注意 CIDR 表示法,别写 netmask) -
sudo ip link set ens33 up:确保接口启用 -
sudo ip route add default via 192.168.50.1:补默认路由(否则出不去)
这些命令重启即失效,适合调试、测试多网段连通性,或在 CI/CD 脚本中做短时网络模拟。
永久切换网口配置,按发行版选对文件和工具
CentOS/RHEL 7+ 和 Ubuntu 18.04+ 之后,配置方式差异明显,不能套用同一套步骤。直接改错文件可能造成重启后断网,尤其 /etc/network/interfaces 在新版 Ubuntu 上已被弃用,硬改会和 NetworkManager 冲突。
- CentOS/RHEL:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33,确认ONBOOT=yes、BOOTPROTO=static,再设IPADDR、NETMASK、GATEWAY - Ubuntu 20.04+:改
/etc/netplan/01-network-manager-all.yaml,用 YAML 缩进严格,冒号后必须空格;改完必须sudo netplan apply,systemctl restart networking无效 - 通用兜底方案:用
sudo nmcli connection modify ens33 ipv4.addresses 192.168.50.10/24 ipv4.gateway 192.168.50.1 ipv4.dns "8.8.8.8" ipv4.method manual,再nmcli connection down ens33 && nmcli connection up ens33
Netplan 的 YAML 文件若缩进错一位或少个空格,netplan apply 会静默失败——查 journalctl -u systemd-networkd 才能看到具体报错。
双网口场景下,如何避免路由冲突
两个网口配同一网段 IP(比如都设 192.168.1.x)不是“不行”,而是 Linux 默认只走 metric 最小的路由。若没显式指定,系统可能把回包从另一个口发出,导致连接超时或 TCP 半开。这不是网卡本身问题,是内核路由表混乱。
- 查路由:运行
ip route show,看两条默认路由的metric值是否重复 - 手动调权:给主网口加低 metric,如
sudo ip route change default via 192.168.1.1 dev ens33 metric 100,副口设为 200 - 更彻底的隔离:用策略路由(policy routing),通过
ip rule+ip route table按源地址分流,但需额外维护路由表
很多现场问题表现为“能 ping 通但 SSH 连不上”,本质就是回程路径不对,得盯紧 ip route get 8.8.8.8 返回的是哪个设备。
切换后验证,别只靠 ping www.baidu.com
ping www.baidu.com 成功只说明 DNS + 外网通,掩盖了大量中间层问题。真实环境里,TFTP/NFS 启动失败、容器跨网段访问异常,往往卡在 ARP、路由或防火墙层面。
- 先看接口状态:
ip addr show ens33确认 UP 状态、IP 地址、broadcast 是否正确 - 再查三层连通:
ping -c 3 192.168.50.1(网关),不通就停在这步,别往下走 - 确认 ARP 学习:
ip neigh show dev ens33,若网关 MAC 显示INCOMPLETE,说明 ARP 请求发不出去或被丢弃 - 最后测应用层:
curl -I http://192.168.50.100或tftp -l test.bin -r test.bin 192.168.50.200
真正麻烦的永远不是“怎么配”,而是“配完为什么某个特定服务不工作”——这时候得一层层剥,从物理链路、ARP、IP 路由、iptables、服务监听地址,逐级排除。











