Linux网络配置静态IP教程
为什么需要手动配置静态IP
很多新手拿到一台 Linux 服务器后,默认是通过 DHCP 自动获取 IP。
这在桌面环境没问题,但做服务器运维时,一旦 DHCP 分配变动,Web服务、SSH连接全都会断。
所以正式环境必须为服务器分配固定的静态IP,让内网其他设备能稳定找到它。
准备阶段:确认你的网卡名称和当前IP
先登录服务器(物理机或 SSH 都行),运行下面命令:
ip addr show或者用更老派的:
ifconfig你会看到类似 eth0、ens33、eno1 之类的网卡名称。
记下来,我们后面要改它的配置文件。
同时看一眼当前 IP 和网关,后期配置会用到。
操作一:临时设置静态IP(重启后失效,适合测试)
如果你只是想马上用固定 IP 测试一下,可以先用 ip 命令临时修改:
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1192.168.1.100是你想用的 IP/24是子网掩码(等价于 255.255.255.0)192.168.1.1是网关地址
这个方法改完立刻生效,但重启网络服务或重启系统就会丢失,不适合长期环境。
操作二:永久修改配置文件(推荐)
针对 CentOS / RHEL / Rocky Linux 系统
找到网卡对应的配置文件,路径是:/etc/sysconfig/network-scripts/ifcfg-eth0(把 eth0 换成你的网卡)。
备份原文件:
sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak然后编辑它:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0把内容改成类似下面:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114关键点解释:
BOOTPROTO=static表示使用静态IPONBOOT=yes确保开机自动激活NETMASK也可以用PREFIX=24替代
保存后重启网络:
sudo systemctl restart network针对 Ubuntu / Debian 系统(使用 Netplan)
Ubuntu 17.10 以后默认用 Netplan,
配置文件在 /etc/netplan/ 目录下,
通常叫 00-installer-config.yaml 或 01-netcfg.yaml。
先看下当前生效的配置:
ls /etc/netplan/然后编辑对应的 YAML 文件:
sudo nano /etc/netplan/01-netcfg.yaml参考配置(注意缩进严格用空格,不能用 Tab):
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
保存后应用:
sudo netplan apply注意:Netplan 对格式敏感,缩进出错会直接报错。
可以用 sudo netplan try 先测试,没问题再 apply。
避坑指南与高频问题
- 重启网络后 SSH 断开? 因为你改的 IP 和当前连接 IP 不同,新 IP 生效后 SSH 会话会断。用新 IP 重新连接就行,如果连不上,检查网关和子网掩码。
- DNS 不生效? 很多新手只配了 IP 和网关,忘了设 DNS。可以在配置文件中加
DNS1和DNS2,或者修改/etc/resolv.conf手动添加nameserver行。 - CentOS 里重启 network 服务提示失败? 可能是 NetworkManager 在抢夺控制权。可以停用 NetworkManager:
sudo systemctl disable NetworkManager,再重启 network 服务。或者直接用nmcli配置更现代。 - Ubuntu 下 netplan apply 报错“YAML 格式错误”? 检查缩进是否一致(全部用 2 个空格),冒号后面必须跟一个空格。初学者建议用编辑器查看空格显示。
- 配置好后本机能 ping 通网关,但 ping 不通外网? 检查是否有默认路由(
ip route),如果没有手动添加。同时检查/etc/sysctl.conf中的net.ipv4.ip_forward(非必须,但某些虚拟化环境需要)。
验证你的静态IP配置是否生效
改完配置后,执行以下命令确认:
ip addr show eth0 | grep inet查看是否有你设置的 IP 地址。
再测试网络连通性:
ping -c 4 192.168.1.1 # 测试网关
ping -c 4 8.8.8.8 # 测试外网如果都通,说明 Linux 网络配置静态IP 成功了。
以后这台服务器即使重启,IP 也不会变。
写在最后
处理 Linux 网络配置静态IP 时,建议先备份原配置,按照本文提供的命令和文件模板一步步操作。
遇到异常优先回看“避坑指南”部分,大部分问题都能自己解决。
如果系统是桌面版或者用了 NetworkManager,还可以用图形界面或 nmcli 工具,但纯命令行的方式最通用、最可控。