在Linux系统中设置静态IP地址是网络管理中的常见操作,尤其对于需要固定IP的服务器或特定网络环境下的设备至关重要,不同Linux发行版使用的网络配置工具和文件路径可能略有差异,但核心原理和命令步骤基本一致,以下将以主流的CentOS/RHEL(使用NetworkManager)和Ubuntu/Debian(使用netplan或ifconfig)为例,详细说明设置静态IP的方法,并补充相关注意事项。

使用NetworkManager(适用于CentOS 7+/RHEL 7+及Fedora)
NetworkManager是现代Linux发行版中默认的网络管理工具,支持命令行和图形界面配置静态IP。
-
查看当前网络连接名称
执行命令nmcli connection show
,列出所有网络连接,通常以太网连接名为ens33
、eno1
等(根据实际设备名调整)。 -
编辑连接配置
使用nmcli con mod <连接名> ipv4.method manual ipv4.addresses <IP地址/子网掩码> ipv4.gateway <网关> ipv4.dns <DNS服务器>
命令设置静态IP参数。nmcli con mod "ens33" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8,114.114.114.114
其中
/24
表示子网掩码为255.255.255.0,多个DNS服务器用逗号分隔。(图片来源网络,侵删) -
重启网络服务使配置生效
nmcli con down "ens33" && nmcli con up "ens33"
或使用
systemctl restart NetworkManager
。 -
验证配置
执行ip addr show ens33
检查IP地址是否生效,或使用ping 8.8.8.8
测试网络连通性。
使用Netplan(适用于Ubuntu 18.04+/Debian 10+)
Netplan是Ubuntu等发行版采用的YAML格式网络配置工具。
-
定位配置文件
配置文件通常位于/etc/netplan/
目录下,如01-network-manager-all.yaml
或50-cloud-init.yaml
。 -
编辑YAML配置文件
使用vim
或nano
打开文件,按以下格式修改(示例为以太网配置):network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]
注意缩进错误会导致配置失败,建议使用空格而非Tab键。
-
应用配置
执行netplan apply
命令使配置生效,若无报错则表示成功。 -
验证与调试
使用ip a
查看IP地址,或通过netplan --debug apply
排查错误。
传统方法(适用于旧版系统或无NetworkManager/Netplan的系统)
-
编辑网络配置文件
以CentOS 6/7为例,配置文件为/etc/sysconfig/network-scripts/ifcfg-ens33
,添加或修改以下参数:BOOTPROTO=static 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 ONBOOT=yes
-
重启网络服务
service network restart
常见问题与注意事项
- IP冲突:静态IP需与网络内其他设备不冲突,可通过
arping -I ens33 192.168.1.100
测试IP是否被占用。 - 配置文件权限:Netplan和ifcfg文件需root权限编辑,建议使用
sudo
或su
。 - 网络服务重启影响:生产环境中重启网络可能导致短暂断连,建议在低峰期操作。
相关FAQs
Q1:如何查看当前Linux系统的网络管理工具是NetworkManager还是传统ifconfig?
A1:执行nmcli -t -g RUNNING
命令,若返回running
则表示使用NetworkManager;或检查/etc/sysconfig/network-scripts/
目录下是否存在ifcfg文件,同时ps aux | grep NetworkManager
可查看NetworkManager进程是否运行。
Q2:设置静态IP后无法上网,如何排查?
A2:首先检查IP、网关、DNS配置是否正确(ip route
查看网关,cat /etc/resolv.conf
查看DNS);其次使用ping 网关IP
测试本地网络连通性,ping 8.8.8.8
测试外网连通性;若均失败,可能是防火墙拦截(systemctl stop firewalld
临时关闭测试)或网卡驱动问题(dmesg | grep eth
查看日志)。