Linux服务器网络接口配置教程
Linux服务器网络接口配置:从查看到修改,零基础也能搞定
在刚接触服务器维护时,网络接口配置是最常遇到的任务之一——比如搬机房要换 IP、新买的云服务器要固定内网地址、或者临时调试需要改个网关。
本文以 CentOS 7/8 和 Ubuntu 20.04/22.04 为例,覆盖查看、临时修改、永久保存、重启生效四个环节,同时帮你避开那些坑。
第一步:确认当前网络接口状态
无论你用的是哪种发行版,都先看看现有网络情况。
打开终端:
ip addr
你会看到类似输出:
1: lo: ...
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens33
重点看第二行:接口名(这里是 ens33)、state UP(表示已启用)、IP 地址(192.168.1.100/24)。
如果只看到 state DOWN,说明接口未启用。
如果你更习惯 ifconfig,可以装一下:
# CentOS/RHEL
yum install net-tools -y
# Ubuntu
apt install net-tools -y
ifconfig
输出里同样能看到接口名、IP 和掩码。
第二步:临时修改网络接口参数
临时修改重启后失效,适合快速测试新 IP 或网关。
使用 ip 命令:
# 修改 IP 和掩码
sudo ip addr add 192.168.1.200/24 dev ens33
# 把旧 IP 删掉(可选)
sudo ip addr del 192.168.1.100/24 dev ens33
# 修改默认网关
sudo ip route replace default via 192.168.1.1 dev ens33
执行后马上生效,你可以 ping 192.168.1.1 测试。
注意:如果改错了 IP,可能断开 SSH 连接,建议用本地终端或 iLO/iDRAC 操作。
第三步:永久保存网络接口配置
临时改完没问题后,一定要写入配置文件,否则重启就丢。
CentOS / RHEL(ifcfg 风格)
配置文件在 /etc/sysconfig/network-scripts/,文件名通常是 ifcfg-接口名,比如 ifcfg-ens33。
编辑前备份:
sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
内容示例(静态 IP):
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="114.114.114.114"
ONBOOT="yes"
DEVICE="ens33"
如果要 DHCP,把 BOOTPROTO 改为 "dhcp",删掉 IPADDR 等行。
Ubuntu(netplan 或 interfaces)
新版 Ubuntu 用 netplan,配置文件在 /etc/netplan/ 下,比如 00-installer-config.yaml。
编辑前备份:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
sudo vim /etc/netplan/00-installer-config.yaml
静态 IP 示例:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.200/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
保存后应用:sudo netplan apply。
老旧 Ubuntu 也可能用 /etc/network/interfaces:
auto ens33
iface ens33 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
然后 sudo systemctl restart networking(部分版本重启服务)。
第四步:重启网络与验证配置
修改配置文件后,需要让新配置生效:
- CentOS:
sudo systemctl restart network(旧版)或sudo systemctl restart NetworkManager(新版),或者直接重启接口:sudo ifdown ens33 && sudo ifup ens33。 - Ubuntu netplan:
sudo netplan apply。 - Ubuntu /etc/network/interfaces:
sudo systemctl restart networking。
检查是否生效:
ip addr show ens33
ping -c 4 192.168.1.1 # 网关
ping -c 4 8.8.8.8 # 外网
如果外网不通但内网通,检查 DNS 是否配好(cat /etc/resolv.conf)以及默认路由是否正确(ip route)。
避坑指南:网络接口配置常见翻车点
- 接口名不是 eth0 而是奇怪名字(如 ens33、eno1、enp0s3)—— 这是新版命名规则,别直接照搬教程里的 em0。用
ip addr确认你的实际接口名。 - 配置文件语法错误 —— YAML 的缩进必须严格(空格而不是 Tab),ifcfg 的 KEY=“VALUE” 格式里等号两边不要空格。
- SSH 连接中断 —— 如果通过远程修改 IP,改完后可能立即断开。解决方案:要么在控制台直接操作,要么写脚本设置一个备用 IP(临时添加
ip addr add 原IP/24 dev ens33)保留逃生通道。 - 网关冲突 —— 如果有多块网卡,默认路由只能有一条。确保
ip route里default via只出现一次。 - NetworkManager 与 network 服务互斥 —— CentOS 7 用 NetworkManager 管理更稳定,建议统一用
nmcli或图形界面配置,不要混用 ifcfg 手写和 nmtui。
高频问题解答
问:如何给一张网卡配多个 IP? 答:临时用 ip addr add 加即可;
永久的话,CentOS 复制配置文件为 ifcfg-ens33:0 并修改 IP,Ubuntu netplan 在 addresses 列表里多写一行。
问:
改完配置后 ping 不通网关怎么办? 答:
先看 ip addr 确认 IP 是否生效,
再看 ip route 是否缺失默认路由,
最后 tcpdump -i ens33 抓包看看有没有 ARP 回复。
问:
不想用 NetworkManager 怎么办? 答:
可禁用 systemctl stop NetworkManager && systemctl disable NetworkManager,
然后用传统的 network 服务(CentOS)或 systemd-networkd(Ubuntu)。
如果你正在处理 Linux服务器网络接口配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
改好之后别忘了重启几次确认配置稳定,祝一次成功。