在Linux服务器环境中,IP地址的配置并非简单的“给一个地址”即可,而是涉及网络接口、路由表、DNS解析以及持久化配置等多个层面的协同工作,现代Linux发行版(如Ubuntu 18.04+、CentOS 7+、Debian 9+)主要采用Netplan(基于YAML)或NetworkManager作为网络配置管理工具,而较老的系统或特定场景下仍使用传统的ifcfg脚本,以下将详细说明如何为Linux服务器配置静态IP地址。

确定网络接口名称
在开始配置之前,首先需要明确服务器当前的网络接口名称,随着系统演进,接口命名规则已从传统的eth0、eth1转变为基于硬件位置的预测性命名,如ens33、enp0s3等。
可以通过以下命令查看当前活跃的网络接口:
ip addr show # 或者 ip link show
输出结果中,lo是本地回环接口,其他以e、en、wl等开头的通常是物理或虚拟网卡,假设我们要配置的网卡名为ens33。
使用Netplan配置(适用于Ubuntu/Debian新版)
Netplan是Ubuntu 18.04及更高版本、以及部分现代Debian衍生版默认的网络配置工具,它使用YAML格式的文件进行配置,配置文件通常位于/etc/netplan/目录下。
-
查找配置文件:
进入目录并列出文件:ls /etc/netplan/
通常会有一个类似
00-installer-config.yaml或50-cloud-init.yaml的文件。 -
编辑配置文件:
使用文本编辑器(如nano或vim)打开该文件,注意YAML对缩进非常敏感,必须使用空格而非Tab。以下是一个配置静态IP的示例:
network: version: 2 ethernets: ens33: # 替换为你的实际网卡名称 dhcp4: no # 关闭DHCP自动获取 dhcp6: no addresses: 192.168.1.100/24 # IP地址及子网掩码(CIDR格式,/24代表255.255.255.0) routes: to: default via: 192.168.1.1 # 默认网关 nameservers: addresses: 8.8.8.8 # DNS服务器1 114.114.114.114 # DNS服务器2 -
应用配置:
保存文件后,执行以下命令使配置生效:sudo netplan apply
如果配置有误,可以使用
sudo netplan try,它会在一定时间内等待确认,若超时未确认则自动回滚,防止断网。
使用NetworkManager命令行工具(nmcli)
nmcli是NetworkManager的命令行接口,适用于大多数现代Linux发行版(包括CentOS/RHEL 8+、Fedora、Ubuntu等),这种方法不依赖特定配置文件,直接操作网络管理器。

-
查看连接名称:
nmcli connection show
假设连接名称为
System ens33。 -
修改IPv4配置:
将IP地址设置为静态,并指定网关和DNS:# 设置IP地址和子网 sudo nmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24 # 设置默认网关 sudo nmcli connection modify "System ens33" ipv4.gateway 192.168.1.1 # 设置DNS服务器 sudo nmcli connection modify "System ens33" ipv4.dns "8.8.8.8 114.114.114.114" # 将方法从auto(DHCP)改为manual(静态) sudo nmcli connection modify "System ens33" ipv4.method manual
-
重新激活连接:
sudo nmcli connection up "System ens33"
传统ifcfg脚本(适用于CentOS/RHEL 7及更早版本)
在CentOS 7、RHEL 7等系统中,网络配置通常位于/etc/sysconfig/network-scripts/目录下,文件名为ifcfg-<接口名>。
-
编辑配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改关键参数:
确保文件内容包含以下设置:参数 示例值 说明 BOOTPROTOstatic使用静态IP,而非dhcp ONBOOTyes开机自动启动网卡 IPADDR168.1.100指定的IP地址 NETMASK255.255.0子网掩码 GATEWAY168.1.1默认网关 DNS18.8.8主DNS服务器 -
重启网络服务:
sudo systemctl restart network
验证配置是否生效
无论使用哪种方法,配置完成后都应进行验证,确保网络连通性正常。
-
检查IP地址分配:
ip addr show ens33
确认输出中包含了你设置的IP地址。

-
测试网关连通性:
ping -c 4 192.168.1.1
-
测试外网连通性及DNS解析:
ping -c 4 8.8.8.8 ping -c 4 www.baidu.com
如果
ping 8.8.8.8通但ping www.baidu.com不通,说明IP和网关配置正确,但DNS配置有误。
常见问题排查
- 配置后无法上网:检查网关是否正确,以及防火墙(iptables/firewalld/ufw)是否放行了相关端口。
- IP冲突:确保局域网内没有其他设备使用相同的IP地址。
- 配置不生效:检查配置文件语法(特别是Netplan的缩进),或重启网络服务/服务器。
相关问题与解答
问题1:如果我在配置静态IP时忘记了当前的网关地址,该如何查找?
解答:
在配置静态IP之前,如果系统之前是通过DHCP获取的网络,你可以临时保留DHCP开启状态,或者通过以下命令查看当前的路由表来找到网关:
ip route show
在输出结果中,查找包含default via的行,如果输出显示default via 192.168.1.1 dev ens33,那么168.1.1就是你的网关地址,找到后,记下该地址,然后在配置文件中将其填入GATEWAY或via字段。
问题2:配置静态IP后,服务器重启网络服务导致SSH连接断开,如何恢复?
解答:
这种情况通常是因为配置错误导致网络接口未能正确启动,或者IP地址与SSH客户端所在网段不匹配,恢复方法如下:
- 使用控制台访问:通过云服务商提供的VNC控制台、物理服务器的本地显示器或IPMI/iDRAC等带外管理工具登录服务器。
- 检查配置:查看网络配置文件是否有语法错误。
- 临时恢复DHCP:如果无法立即修正静态IP,可以临时将配置改回DHCP(
BOOTPROTO=dhcp或dhcp4: yes),重启网络服务获取临时IP,然后通过控制台登录修正静态IP配置。 - 检查防火墙:确保防火墙规则允许SSH(默认端口22)的连接。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/455964.html