Linux 网络配置的核心在于通过命令行工具与配置文件协同工作,实现 IP 地址、路由、DNS 的持久化与临时调整,无论你使用的是 Ubuntu、CentOS 还是 Debian,掌握 ip、nmcli、/etc/network/interfaces 与 systemd-networkd 的用法,就能在无图形界面的服务器环境中高效完成网络管理,对于云服务器用户,建议优先使用发行版自带的网络管理工具,并保持配置文件的简洁与可回溯性。
先分清临时配置与永久配置
- 临时配置:立即生效,重启后丢失,适合调试与快速验证。
- 永久配置:写入配置文件,重启后依然保留,是生产环境的唯一选择。
常见误区:直接修改 /etc/resolv.conf 设置 DNS,但重启后被覆盖,正确做法是在网卡配置文件或 networkmanager 中指定 DNS。
使用 ip 命令快速诊断与配置
ip 命令是 Linux 网络管理的核心工具,替代了旧的 ifconfig。
查看当前网络状态
ip addr show ip route show
临时添加 IP 地址
sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set eth0 up
临时添加默认网关
sudo ip route add default via 192.168.1.1
经验案例(酷番云):我们在处理酷番云用户工单时,发现不少用户通过
ifconfig eth0:0 192.168.1.100添加临时 IP,导致后续排查时无法看到该地址,改用
ip addr add 后,地址归属清晰,配合
ip -d link show还能识别网卡别名与硬件地址,问题定位效率提升明显。
按发行版选择持久化配置方案
Debian / Ubuntu(传统方式)
编辑 /etc/network/interfaces:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 114.114.114.114
保存后执行 sudo systemctl restart networking 生效。
RHEL / CentOS / Rocky Linux
使用 NetworkManager 的 nmcli 或直接编辑 /etc/sysconfig/network-scripts/ifcfg-eth0:
BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes
推荐用 nmcli 修改,避免手工编辑带来的格式错误:
sudo nmcli con mod eth0 ipv4.addresses 192.168.1.100/24 sudo nmcli con mod eth0 ipv4.gateway 192.168.1.1 sudo nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114" sudo nmcli con up eth0
通用现代方案:systemd-networkd
适合没有 NetworkManager 的轻量系统,创建 /etc/systemd/network/10-static.network:
[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8
sudo systemctl enable --now systemd-networkd
DNS 配置的坑与正确解法
- 不要直接改
/etc/resolv.conf,除非你确认系统不会覆盖它。 - 使用
resolvectl管理(systemd 系统):

sudo resolvectl dns eth0 8.8.8.8
- 在网卡配置文件中指定 DNS 是最稳妥的方式,因为 NetworkManager 或 systemd-networkd 会自动写入 resolv.conf。
经验案例(酷番云):酷番云云主机默认使用 DHCP 获取 IP,但部分用户需要绑定多个辅助 IP,我们建议用户使用
/etc/network/interfaces.d/下的独立文件来配置辅助 IP,eth0:1,这样主 IP 由 DHCP 管理,辅助 IP 独立持久化,互不干扰,我们提供了cloud-init的模板,让用户首次启动时即可注入静态 IP 配置,避免手动进入救援模式修改。
路由策略与多网卡场景
当服务器有多个网卡时,需要指定路由优先级。
- 查看路由表:
ip route show table all - 添加策略路由:
sudo ip rule add from 192.168.2.100 lookup 100 sudo ip route add default via 192.168.2.1 table 100
- 持久化策略路由需在
/etc/iproute2/rt_tables中定义表名,并在网卡配置中加载规则。
生产建议:多网卡环境下,务必明确每个网卡的默认网关,否则会出现“流量从 eth0 进,却从 eth1 出”的异步路由问题。
连通性测试与故障排查清单
配置完成后,按以下顺序验证:
ping -c 4 192.168.1.1 # 网关是否通 ping -c 4 8.8.8.8 # 外网 IP 是否通 dig @8.8.8.8 www.baidu.com # DNS 解析是否正常 traceroute 8.8.8.8 # 检查路由走向

ping 外网 IP 通但域名不通,则问题在 DNS,如果网关都不通,检查网卡物理连接、IP 冲突或防火墙规则。
防火墙与网络配置的联动
- iptables/nftables 规则可能阻断新配置的 IP 段。
- 修改网络配置后,记得检查
firewall-cmd --list-all或ufw status。 - 云服务器还需在安全组中放行对应端口,否则内部配置再正确也无法访问。
相关问答
问:修改了 /etc/resolv.conf 后重启就恢复原样,如何永久修改 DNS?
答:这是 systemd-resolved 或 NetworkManager 管理的正常现象,正确做法是:
- 如果使用 NetworkManager,用
nmcli con mod eth0 ipv4.dns "8.8.8.8"并重启连接。 - 如果使用 systemd-networkd,在
.network文件中写DNS=8.8.8.8。 - 如果系统没有以上服务,可以给
/etc/resolv.conf添加chattr +i属性锁定文件,但不推荐,因为会影响其他网络工具。
问:为什么我配置了静态 IP 后无法上网,但 DHCP 却正常?
答:大概率是缺少网关或 DNS 配置,请检查:
- 静态 IP 是否与局域网内其他设备冲突(用
arping检测)。 - 网关地址是否正确,且与 IP 在同一子网。
- 是否设置了正确的子网掩码,
/24不是/16。 - 云服务器还需要确认安全组和虚拟交换机是否允许该 IP 通信。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/796018.html


评论列表(5条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于使用的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
@甜月7594:这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于使用的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于使用的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于使用的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是使用部分,给了我很多新的思路。感谢分享这么好的内容!