当前位置:首页 > 云服务器 > 正文

Linux服务器设置IP,静态IP怎么配置才正确?

在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配置(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]

    配置验证与故障排查

    • 查看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)查看错误日志。

    相关问答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服务器分配的地址为准)。

0