Linux服务器设置IP,静态IP怎么配置才正确?
- 云服务器
- 2025-12-11
- 5
在Linux服务器中设置IP地址是网络配置的基础操作,根据服务器用途和网络环境的不同,可采用多种方式实现,包括临时配置、静态IP配置和动态IP获取等,以下将从不同场景出发,详细讲解Linux服务器IP设置的具体步骤和注意事项。
临时IP配置(适用于测试或临时场景)
临时配置的IP地址在服务器重启后会失效,适合快速测试或临时网络调试,主要使用ip命令(CentOS 7+/Ubuntu 18.04+推荐)或ifconfig命令(传统工具,部分系统可能需安装nettools包)。
使用ip命令配置
- 查看当前网络接口:执行ip addr show或ip a,可看到服务器所有网络接口(如eth0、ens33)及其当前IP配置。
- 配置IP地址:假设为eth0接口配置IP 192.168.1.100,子网掩码255.255.255.0,执行以下命令: sudo ip addr add 192.168.1.100/24 dev eth0
其中/24表示子网掩码长度,对应255.255.255.0。
- 启用接口:若接口未启用,执行sudo ip link set eth0 up。
- 验证配置:再次执行ip addr show eth0,确认IP已添加;或使用ping命令测试网络连通性。
使用ifconfig命令(需安装nettools)
- 安装工具(CentOS系统):sudo yum install nettools(Ubuntu系统:sudo apt install nettools)。
- 配置IP:sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0。
- 启用接口:sudo ifconfig eth0 up。
静态IP配置(适用于生产环境)
生产环境中服务器通常需要固定IP,避免重启后网络配置丢失,不同Linux发行版的配置文件位置和格式略有差异,以下以主流的CentOS/RHEL(NetworkManager)和Ubuntu(Netplan)为例。
CentOS/RHEL系统(使用NetworkManager)
- 查看网络接口名称:执行nmcli connection show,获取当前连接名称(如”ens33″)。
- 修改连接配置:使用nmcli命令编辑静态IP, sudo nmcli connection modify "ens33" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8,8.8.4.4
参数说明:ipv4.method manual表示静态IP,ipv4.addresses为IP和子网掩码,ipv4.gateway为网关,ipv4.dns为DNS服务器(多个DNS用逗号分隔)。
- 重启网络服务使配置生效:sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"。
- 验证配置:执行ip addr show ens33检查IP,或使用ping 8.8.8.8测试网络。
Ubuntu系统(使用Netplan)
- 定位配置文件:Ubuntu 18.04+通常使用Netplan,配置文件位于/etc/netplan/目录下,如01netcfg.yaml或50cloudinit.yaml。
- 编辑配置文件:使用vim或nano打开文件,修改为以下格式(以eth0接口为例): network: version: 2 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]
关键参数:dhcp4: no禁用动态IP,addresses为静态IP和子网掩码,gateway4为网关,nameservers配置DNS。
- 应用配置:执行sudo netplan apply,若提示错误可使用sudo netplan debug apply排查。
- 验证配置:通过ip addr show eth0或ping www.baidu.com确认。
- CentOS 6/7:编辑/etc/sysconfig/networkscripts/ifcfgeth0文件,添加以下内容: TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
保存后执行sudo service network restart重启网络服务。
- Ubuntu 16.04及更早版本:编辑/etc/network/interfaces文件,添加: auto eth0
iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1
保存后执行sudo ifdown eth0 && sudo ifup eth0重启接口。
- 查看IP配置:ip addr show或ifconfig。
- 检查网络连通性:ping [目标IP或域名](如ping 8.8.8.8)。
- 路由表检查:ip route show或route n,确认默认网关是否正确。
- DNS解析测试:nslookup [域名](如nslookup www.baidu.com),若无法解析需检查/etc/resolv.conf中的DNS配置。
- 日志查看:若网络服务异常,可通过journalctl u NetworkManager(CentOS)或journalctl u systemdnetworkd(Ubuntu)查看错误日志。
传统配置文件方式(适用于旧版系统)
动态IP配置(DHCP自动获取)
若服务器所在环境支持DHCP(如家庭或办公网络),可配置自动获取IP,无需手动指定地址。
CentOS/RHEL系统
使用nmcli命令修改为DHCP模式:
sudo nmcli connection modify "ens33" ipv4.method auto sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"
Ubuntu系统
修改Netplan配置文件,将dhcp4: no改为dhcp4: yes,然后执行sudo netplan apply。
多IP地址配置
若服务器需要绑定多个IP,可在静态配置基础上添加额外地址,在CentOS中使用nmcli:
sudo nmcli connection modify "ens33" +ipv4.addresses 192.168.1.101/24 sudo nmcli connection up "ens33"
在Ubuntu Netplan中,修改addresses字段为列表形式:
addresses: [192.168.1.100/24, 192.168.1.101/24]
配置验证与故障排查
相关问答FAQs
Q1:修改静态IP后无法上网,如何排查?
A:首先检查IP、子网掩码、网关配置是否正确,执行ip route show确认默认网关存在;其次使用ping 192.168.1.1(网关地址)测试本地网络连通性,若不通检查网关设备或网线;若能ping通网关但无法外网,检查DNS配置(cat /etc/resolv.conf),可临时修改为公共DNS(如8.8.8.8)测试;最后确认防火墙是否拦截流量(sudo systemctl stop firewalld临时关闭测试)。
Q2:如何将服务器IP从静态改为DHCP自动获取?
A:以CentOS为例,执行sudo nmcli connection modify "连接名称" ipv4.method auto,然后重启网络连接(sudo nmcli connection down "连接名称" && sudo nmcli connection up "连接名称");Ubuntu系统需修改Netplan配置文件,将dhcp4: no改为dhcp4: yes,保存后执行sudo netplan apply,修改完成后,可通过ip addr show查看是否获取到动态IP(通常以DHCP服务器分配的地址为准)。