Linux网络配置静态IP设置方法,详细步骤与避坑指南
很多刚接触服务器的朋友都会遇到一个问题:每次重启后 IP 地址都变了,连 SSH 都得重新查。
这时候就需要学会 Linux 网络配置静态 IP 设置方法——给服务器一个固定的内网地址,方便长期管理和访问。
无论你用的是 Ubuntu、Debian 还是 CentOS,静态 IP 配置的核心思路都一样:告诉系统“这个网卡以后就用我指定的地址,别自动获取了”。
下面直接上手。
准备工作:先查清你的网络环境
在动手改配置之前,先确认三样东西:
- 网卡名称 – 运行
ip addr show或nmcli device status,找到你的网卡名。常见的有eth0、ens33、enp0s3。 - 当前网络信息 – 执行
ip r | grep default查看网关,执行cat /etc/resolv.conf查看 DNS。记下这些值,后面写配置文件要用。 - 操作系统版本 – 用
cat /etc/os-release看发行版名称。不同系统配置文件位置和格式略有差异。
如果不知道网关和 DNS,可以暂用 192.168.1.1 和 8.8.8.8 占位,但必须保证和你路由器实际参数一致,否则无法上网。
方法一:通过命令行配置(推荐新手)
适用系统:Ubuntu 18.04+ / Debian 10+
新版 Ubuntu 使用 Netplan 管理网络。
配置文件在 /etc/netplan/ 目录下,通常叫 00-installer-config.yaml 或 01-netcfg.yaml。
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak # 先备份
sudo nano /etc/netplan/00-installer-config.yaml
把文件内容改成下面这样(注意缩进,YAML 对空格敏感):
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
保存退出后,执行以下命令使配置生效:
sudo netplan apply
适用系统:CentOS 7 / RHEL 7+
CentOS 7 使用 ifcfg-* 文件,位置在 /etc/sysconfig/network-scripts/。
sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33
修改内容:
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=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
NAME=ens33
ONBOOT=yes
保存后重启网络服务:
sudo systemctl restart network
方法二:使用 nmtui 图形界面(适合不想记命令的新手)
如果你觉得编辑配置文件太麻烦,Linux 还提供了一个简易的文本图形工具 nmtui。
终端输入 sudo nmtui,然后按方向键操作:
- 选择 Edit a connection -> 找到你的网卡(比如 ens33) -> Edit。
- 把
IPv4 CONFIGURATION从Automatic改成Manual。 - 在
Addresses处按 Enter 添加 IP,格式如192.168.1.100/24。 - 在
Gateway填写网关,比如192.168.1.1。 - 在
DNS servers填写8.8.8.8,114.114.114.114。 - OK 保存,然后选择 Activate a connection -> 把当前连接停用再启用一次(按空格选中后选 Deactivate,再 Activate)。
最后退出 nmtui,同样用 ip addr 验证。
避坑指南:这些错误最常遇到
- 配置文件名字或路径不对 – Ubuntu 的 Netplan 文件必须以
.yaml结尾,并且必须放在/etc/netplan/下。CentOS 的 ifcfg 文件名字必须和网卡名一致(比如ifcfg-ens33)。 - YAML 缩进错误 – Netplan 文件每一级必须用两个空格,不能用 Tab。如果应用时报
Error in network definition,多半是格式问题。可以用sudo netplan try先测试,5 秒内不改动会回滚。 - 子网掩码写成了 24 位前缀 – 配置文件中既可以用
192.168.1.100/24(CIDR 格式),也可以用NETMASK=255.255.255.0,但不能混用。 - 网关填错 – 如果连不上外网,先
ping 192.168.1.1(网关),再ping 8.8.8.8。网关不通说明 IP 地址写错了网段或者路由器不认。 - DNS 未配置 – 能 ping IP 但不能解析域名,就是 DNS 没写对。检查
/etc/resolv.conf是否包含了正确的 DNS 服务器。
验证配置是否生效
修改完不要急着关终端,立刻做以下检查:
ip addr show ens33 # 确认 IP 是否变为你设置的地址
ip r | grep default # 确认默认网关
ping -c 4 192.168.1.1 # 测试到网关的连通性
ping -c 4 8.8.8.8 # 测试到公网的连通性
ping -c 4 baidu.com # 测试 DNS 解析
所有测试都通,说明静态 IP 配置成功。
最好再重启一次服务器,确保重启后 IP 仍然固定。
运行 sudo reboot,等机器起来后重新 SSH 登录,再次 ip addr 确认。
如果你正在处理 Linux 网络配置静态 IP 设置方法,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分,尤其是检查配置文件和网关是否正确。
固定好 IP 之后,无论是搭建网站、远程管理还是配置防火墙规则,都会方便很多。