Linux 配置静态 IP 主要有 两种方式:
- 临时生效:重启网络或服务器后失效,适合测试场景。
- 永久生效:修改配置文件,重启后依然有效,适合生产环境。
注意:不同 Linux 发行版的网络配置文件路径不同,主流分为 Debian/Ubuntu 系 和 RHEL/CentOS/Rocky 系。
一、前提准备
-
登录 Linux 系统,切换到 root 用户
bashsu root # 或 sudo -i -
查看网卡名称和当前 IP 信息
bash# 通用命令(推荐) ip addr # 或旧命令 ifconfig输出示例中,网卡名一般为 etho 、ens33、enp0s3等,记下来备用。
二、临时配置静态 IP(重启失效)
适用于快速测试,无需修改配置文件。
命令格式
bash
# 设置 IP 地址和子网掩码
ip addr add [IP地址/子网掩码位数] dev [网卡名]
# 启动网卡
ip link set [网卡名] up
# 配置默认网关
ip route add default via [网关IP] dev [网卡名]
# 配置 DNS(临时生效,修改 /etc/resolv.conf)
echo "nameserver [DNS服务器IP]" > /etc/resolv.conf
示例
假设网卡名ens33,IP 192.168.1.100,子网掩码 255.255.255.0 (对应/24),网关 192.168.1.1,DNS 223.5.5.5
bash
ip addr add 192.168.1.100/24 dev ens33
ip link set ens33 up
ip route add default via 192.168.1.1 dev ens33
echo "nameserver 223.5.5.5" > /etc/resolv.conf
验证
bash
ip addr # 查看 IP 是否设置成功
ping 192.168.1.1 # ping 网关测试连通性
三、永久配置静态 IP(推荐)
方式 1:RHEL/CentOS/Rocky 系(/etc/sysconfig/network-scripts)
-
进入网络配置文件目录
bashcd /etc/sysconfig/network-scripts/ -
找到对应网卡的配置文件,文件名格式为ifcfg-
[网卡名],例如ifcfg-ens33 -
编辑配置文件(使用 vi/vim)
bashvi ifcfg-ens33 -
修改 / 添加以下内容(按实际网络参数替换)
bashTYPE=Ethernet BOOTPROTO=static # 静态IP,dhcp为自动获取 IPADDR=192.168.1.100 # 静态IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=223.5.5.5 # DNS服务器1 DNS2=114.114.114.114 # DNS服务器2(可选) ONBOOT=yes # 开机自动启动网卡 NAME=ens33 # 网卡名 DEVICE=ens33 # 网卡设备名 UUID=xxxxxxx # 保留原有UUID,无需修改 -
保存退出(vi 编辑器::wq!)
-
重启网络服务
bash# CentOS 7 及以上 systemctl restart NetworkManager # 或 nmcli connection reload nmcli connection up ens33
方式 2:Debian/Ubuntu 系(/etc/netplan)
Ubuntu 18.04 及以上使用 netplan工具,配置文件为.yaml格式。
-
进入 netplan 配置目录
bashcd /etc/netplan/ -
查看目录下的 yaml 文件,例如 00-installer-config.yaml(文件名可能不同)
-
编辑配置文件
bashvi 00-installer-config.yaml -
修改内容(注意 yaml 缩进严格,不能用 tab )
bashnetwork: ethernets: ens33: # 网卡名 addresses: [192.168.1.100/24] # 静态IP和子网掩码 gateway4: 192.168.1.1 # 网关(Ubuntu 22.04 用 routes 替代 gateway4) nameservers: addresses: [223.5.5.5, 114.114.114.114] # DNS服务器 version: 2Ubuntu 22.04 及以上替换 gateway
4为 routes:bashroutes: - to: default via: 192.168.1.1 -
应用配置
bashnetplan apply
方式 3:通用方式(/etc/network/interfaces)
部分老版本系统或自定义系统使用此文件。
-
编辑配置文件
bashvi /etc/network/interfaces -
添加以下内容
bashauto ens33 # 开机自动启动网卡 iface ens33 inet static address 192.168.1.100 # 静态IP netmask 255.255.255.0 # 子网掩码 gateway 192.168.1.1 # 网关 dns-nameservers 223.5.5.5 114.114.114.114 # DNS -
重启网络服务
bashsystemctl restart networking
四、验证配置是否生效
-
查看 IP 地址
baship addr show [网卡名] -
测试网关连通性
bashping [网关IP] -
测试外网连通性
bashping www.baidu.com
可以ping通的话,静态ip配置成功