微信优化

weixinyouhua

Linux IP配置怎么做,Linux服务器设置IP地址的详细步骤

2026-09-29 08:34:20

Linux IP配置最重要的结论是:临时配置用ip addr命令立即生效,永久配置需修改发行版对应配置文件,新手最容易搞混的是Ubuntu和CentOS的配置方式完全不同。

linux ip配置的两种核心场景:临时生效和永久生效

从事Linux运维的朋友都会遇到配置IP的需求,你刚装好一台服务器,或者虚拟机网络不通,第一反应就是去改IP,Linux配置IP不像Windows那样在图形界面点几下就完事,它需要你对命令行有一定了解。

临时配置IP适用于测试环境,服务器重启后就丢失配置,永久配置IP则写入配置文件,重启后依然保留,判断用哪种方式,主要看你的使用场景:临时调试网络、做实验,用临时配置就够了;生产环境服务器、需要长期稳定运行的机器,必须永久配置。

查看当前IP信息的三个常用命令

配置IP之前,先要看清当前网络状态,你可以在终端输入以下命令查看:

  • ip addr show:显示所有网络接口的IP地址和状态,目前最推荐使用
  • ifconfig -a:老牌命令,部分最小化安装的系统可能没有
  • ip route show:查看路由表,确认默认网关设置

ip addr show输出中最关键的信息是网络接口名称,常见的有eth0、ens33、ens5f0等,配置文件名称和接口名称一一对应,像eno16777736这种长名字,配置文件名也是这个,看清接口名再去修改配置,这是最要紧的第一步。

linux配置ip地址的完整命令实操方法

临时配置IP是我们日常排障、实验时最高频的操作,它不写入任何文件,重启后失效,适合快速验证网络连通性,比如你刚接了一台新设备,测试网络通不通,临时配置比改配置文件更快更安全。

用ip addr命令配置临时IP地址

现代Linux系统都支持ip命令,它是iproute2软件包提供的工具,临时添加IP的完整命令如下:

sudo ip addr add 192.168.1.100/24 dev ens33

这条命令给ens33接口添加一个IP地址192.168.1.100,子网掩码是255.255.255.0(用CIDR表示为/24),命令分解来看:

  • sudo:获取管理员权限
  • ip addr add:添加地址的核心动作
  • 168.1.100/24:IP地址和子网前缀长度
  • dev ens33:指定网络接口设备

删除临时IP同样简单,只需把add换成del:

sudo ip addr del 192.168.1.100/24 dev ens33

临时配置IP还需要设置默认网关,命令是:

sudo ip route add default via 192.168.1.1 dev ens33

这里的192.168.1.1是你的路由器或网关地址,如果不设置网关,跨网段通信会失败,能ping通同网段机器但访问不了外网。

临时配置IP后网络不通的排查顺序

配置完IP发现网络不通,别急着重复操作,按以下顺序排查:

  1. 检查IP是否真的添加成功:ip addr show dev ens33,确认inet行是否有地址
  2. Linux IP配置怎么做,Linux服务器设置IP地址的详细步骤

  3. 检查网卡是否处于UP状态:ip link set ens33 up,然后再次查看
  4. 检查网关路由是否生效:ip route show,确认default条目存在
  5. 检查物理链路:网线插好没有,虚拟机的话检查虚拟网络编辑器设置

这类问题有一个明显特征:IP配置命令没报错但ping不通网关,多数情况下是网卡没有激活,或是NetworkManager服务在接管网络后又把配置覆盖了,临时配置适合绕开NetworkManager做快速测试,永久配置则要考虑和NetworkManager的兼容关系。

现在网上搜索“linux ip配置不生效怎么办”的帖子很多,核心问题大多出在配置文件和NetworkManager的冲突上,最直接的解决办法,就是统一用一种管理方式。

永久配置IP:Ubuntu和CentOS的配置差异

永久配置IP就要动配置文件了,绝大多数Linux新手迷惑的地方就在这:Ubuntu用netplan,CentOS 7用ifcfg文件,CentOS 8/9用nmcli,老系统的配置方式又不一样,这里分开说明,ubuntu静态ip配置和centos固定ip配置的核心区别在于配置文件的格式和管理工具。

Ubuntu 18.04及以上版本配置方法

Ubuntu 18.04之后使用netplan作为默认网络配置工具,配置文件位于/etc/netplan/目录下,通常是01-network-manager-all.yaml或50-cloud-init.yaml,在ubuntu静态ip配置的教程中,首先要找到YAML配置文件,修改前建议先备份原文件:

sudo cp /etc/netplan/01-netplan.yaml /etc/netplan/01-netplan.yaml.bak

然后用编辑器打开配置文件,写入以下内容:

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114

关键点在于dhcp4: no表示关闭自动获取IP,addresses指定静态IP,routes设置默认网关,nameservers配置DNS,保存后应用配置:

sudo netplan apply

这个命令让配置立即生效,而且不报错就说明YAML格式正确,如果语法错误会直接提示,不会像其他系统那样留下“配置了但没生效”的隐患,这也是ubuntu配置IP相对友善的地方。

CentOS/RHEL系列的ifcfg配置文件方法

centos固定ip配置的核心是修改/etc/sysconfig/network-scripts/ifcfg-ens33文件(接口名后缀对应你的网卡名),CentOS 7及之前版本使用network服务管理网络,配置方式如下:

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

需要做以下调整:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114

这里最重要的是BOOTPROTO=static和ONBOOT=yes两个参数,BOOTPROTO把网卡设为静态模式,ONBOOT让网卡开机自启,很多人配置完重启后网络还是不通,检查ONBOOT是不是yes,十有八九是漏了。

Linux IP配置怎么做,Linux服务器设置IP地址的详细步骤

修改完成后重启网络服务让配置生效:

sudo systemctl restart network

CentOS 8和RHEL 8之后的版本默认使用NetworkManager管理网络,推荐用nmcli命令行工具,更简洁也更少出错:

sudo nmcli connection modify ens33 
  ipv4.addresses 192.168.1.100/24 
  ipv4.gateway 192.168.1.1 
  ipv4.dns "8.8.8.8 114.114.114.114" 
  ipv4.method manual
sudo nmcli connection up ens33

不同Linux发行版配置文件位置对比

发行版 配置文件路径 推荐工具 生效命令
Ubuntu 18.04+ /etc/netplan/.yaml netplan netplan apply
CentOS 7 /etc/sysconfig/network-scripts/ifcfg- network服务 systemctl restart network
CentOS/RHEL 8/9 NetworkManager连接配置 nmcli nmcli connection up
Debian /etc/network/interfaces ifupdown systemctl restart networking

内核版本也在持续演进,ip命令的参数在某些场景下会有微调,比如较新内核对路由规则的支持更细,但底层原理一致,掌握了思路,换发行版也只是改改配置格式。

配置DNS解析和主机名:很多人会忘的一步

IP配置完成后,DNS设置往往被忽视,比如centos固定ip配置完成后发现能ping通IP但打不开域名,这是DNS文件没修改或没生效,DNS配置文件是/etc/resolv.conf,但在某些系统上该文件被NetworkManager接管,直接修改可能被覆盖。

优先推荐在IP配置文件里同时设置DNS参数,netplan的DNS在nameservers字段下配置,ifcfg文件的DNS在DNS1、DNS2参数中,nmcli则用ipv4.dns参数,只有这些方式不行的情况下,再考虑直接编辑/etc/resolv.conf。

主机名虽然和IP没有直接关系,但会影响某些服务的日志记录和域名解析测试,修改主机名用hostnamectl命令:

sudo hostnamectl set-hostname myserver

设置完成后重开终端,新主机名就生效了,在排查linux ip配置不生效的问题时,主机名也是一个辅助排查维度,特别是多机互联场景下主机名相互解析不通会造成很多困扰。

linux ip配置不生效怎么办:常见故障排查思路

配置完IP后遇到问题很正常,业内专家指出90%以上的IP配置问题源于配置文件格式错误或服务未重启,下面列出几个常见现象和对应的排查方向:

重启网络服务报错
先检查配置文件语法,用ip addr show观察接口状态,多数情况是ifcfg文件中的参数名拼写错误或YAML缩进不对。

IP配置正确但无法访问外网
依次执行ping 网关、ping 8.8.8.8、ping 域名三个测试,定位是哪一段断了,网关不通查路由表,公网IP不通查网关设置和防火墙,域名不通查DNS配置。

Linux IP配置怎么做,Linux服务器设置IP地址的详细步骤

配置后IP地址消失了
这种情况常见于NetworkManager和network服务同时管理的场景,两个管理工具互相覆盖配置,解决办法是选择一个主要管理工具,禁掉另一个,Ubuntu上执行systemctl stop systemd-networkd,CentOS上执行systemctl disable NetworkManager来避免冲突。

虚拟机配置静态IP后无法上网
Vmware和VirtualBox的虚拟机上网模式需要确认是桥接还是NAT,桥接模式IP要保持在局域网同一网段,NAT模式则必须配置为虚拟网络编辑器允许的网段,不少人在NAT网络里配了和物理网络相同的地址,结果怎么都上不了网。

配置了IPv6地址但无法使用
IPv6和IPv4配置相互独立,确认系统是否启用了IPv6,sysctl net.ipv6.conf.all.disable_ipv6返回0才表示启用,某些云服务器默认关闭IPv6,需要在引导参数中开启。

linux指定ip配置的实用技巧

除了一般的静态IP配置,还有一些特殊需求的Linux IP配置方式:

  • 配置多个IP地址(IP别名)到同一个网卡:ip addr add 192.168.1.101/24 dev ens33,重复执行命令添加其他地址即可
  • 配置DHCP自动获取IP:Ubuntu在netplan中设置dhcp4: yes,CentOS将BOOTPROTO改为dhcp
  • 配置bonding(双网卡绑定)实现链路冗余或负载均衡,方式比单网卡复杂,需要加载bonding模块并创建bond配置文件

这些操作日常运维中遇到概率较低,但掌握Linux多IP配置的知识对系统管理员来说是加分项,熟练掌握这些技能后,面对复杂的网络环境也会从容很多。

Linux IP配置常见问题快速解答

问:Ubuntu系统用netplan配置IP后,如何确认配置生效了?

答:运行netplan apply后,用ip addr show查看网卡信息,确认地址和掩码与配置文件一致,也可以用ip route show检查默认网关,如果配置不生效,先看netplan try命令的提示,它会自动检测配置错误,超时后自动回滚,不会把系统网络搞挂。

问:CentOS 7系统中修改ifcfg-ens33文件后,为什么重启机器IP配置就丢了?

答:最直接的原因是ONBOOT参数设置为no,网卡开机时不会自动激活,那么你在文件里写好的静态IP配置自然也不会加载,确认ONBOOT=yes,同时检查NetworkManager是否被启用,如果你使用network服务管理网络,建议先禁用NetworkManager,这个服务同时存在时可能和network服务产生冲突。

问:Linux系统配置IP时,DNS和IP写在一个配置文件和单独放在resolv.conf里,有什么区别?

答:写在一个配置文件里更可靠,因为network服务或netplan在重启网络时会自动把DNS配置写入resolv.conf,而单独编辑/resolv.conf,在network服务或NetworkManager重启后,修改内容会被自动覆盖重置,有一个操作系统默认的规范,即动态生成的resolv.conf优于手动修改的内容,推荐在IP配置文件中一并设置DNS,这也是行业共识。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待