用ip命令临时配置IPv4需分两步:先用ip addr add添加IP地址,再用ip route add设置默认网关;缺一不可,否则导致同网段可达但无法访问外网或路由选错出口。
ip 命令临时配置 IPv4 地址和默认网关临时配置意味着重启网络服务或系统
后失效,适合调试或快速验证。关键不是记命令,而是理解参数含义和顺序。
ip 的地址添加和路由添加是两个独立操作,漏掉任一都会导致无法通信:
ip addr add 192.168.1.100/24 dev eth0 —— 给 eth0 接口分配 IP 和子网掩码(/24 等价于 255.255.255.0)ip route add default via 192.168.1.1 dev eth0 —— 添加默认路由,指向网关 192.168.1.1,且明确指定出口设备常见错误:只配 IP 不配路由 → 能 ping 通同网段,但无法访问外网;配了路由却没指定 dev → 内核可能选错出口,尤其多网卡时。
/etc/network/interfaces 在 Debian/Ubuntu 上改了不生效改完文件只是“写入配置”,不会自动应用。必须触发重载,而且不同发行版 reload 方式不同。
Debian/Ubuntu(使用 ifupdown)的正确流程:
ifdown eth0(若提示 interface not configured,说明该接口未被 ifupdown 管理)ifup eth0
systemctl restart networking(但部分新版 Ubuntu 已弃用此服务)注意:systemctl restart networking 可能失败并中断 SSH 连接——因为 networking 服务会尝试关闭所有非 loopback 接口,包括你正在连的那一个。建议先开一个本地终端或带 console 访问权限再操作。
nmcli 配置静态 IP 时的三个关键点NetworkManager 成为默认网络管理器后,直接改 /etc/sysconfig/network-scripts/ifcfg-* 文件可能被覆盖或忽略。必须用 nmcli 或确保 NetworkManager 不接管该连接。
推荐做法(以修改 ens33 为例):
nmcli connection show,找到对应连接(常为接口名或 “System ens33”)nmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24
nmcli connection modify "System ens33" ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual
nmcli connection down "System ens33" && nmcli connection up "System ens33"
遗漏 ipv4.method manual 是最常见失败原因:不设此项,NetworkManager 仍按 DHCP 行为处理,其他静态参数会被忽略。
别只信 ip addr 显示有地址,更要看内核路由表和实际连通性。
依次执行:
ip addr show eth0 —— 确认 UP 状态、有 inet 行、且没有 deprecated 标记(后者表示地址被标记为过期,可能因重复或冲突)ip route show default —— 必须输出类似 default via 192.168.1.1 dev eth0,且 dev 指向正确接口ping -c2 192.168.1.1(网关)、ping -c2 8.8.8.8(公网)、curl -I http://httpbin.org(DNS + HTTP)—— 逐层排除:通网关不通公网 = 路由或防火墙问题;通公网不通域名 = DNS 配置错误很多问题卡在 DNS:/etc/resolv.conf 被 NetworkManager 或 systemd-resolved 自动覆盖,手动改后很快恢复原状。真要固定 DNS,请优先通过 nmcli 设置,或禁用 systemd-resolved 后再改文件。
# linux
# gate
# red
# 子网
# 为什么
# dns
# 路由
# curl
# ubuntu
# 防火墙
# centos
# gateway