linux修改ip与dns分临时和永久两类:临时用ip addr或ifconfig命令,重启失效;永久需编辑网卡配置文件(centos/rhel在/etc/sysconfig/network-scripts/ifcfg-*中设ipaddr、gateway、dns1等;ubuntu/debian用netplan yaml文件配置),并重启网络服务或运行netplan apply。

Linux 系统中修改网卡 IP 地址与 DNS,关键在于区分“临时生效”和“永久生效”两种方式。临时改法快但重启就丢;永久改法要编辑配置文件,重启或重载网络后依然有效。不同发行版(如 CentOS/RHEL 与 Ubuntu/Debian)配置路径和工具略有差异,下面按实用场景分步说明。
一、确认目标网卡名称
改错网卡会导致断网或配置无效。先查清正在使用的物理网卡名:
- 运行 ip addr 或 ifconfig(若未安装可
yum install net-tools -y或apt install net-tools -y) - 找状态为 UP、且已分配你所需 IP 的接口,例如
ens33、enp0s3、eth0 - 多网卡时,再执行 ip route show default,输出中 “dev xxx” 后的名称才是默认出口网卡,DNS 必须配在这里才真正生效
二、永久修改静态 IP 和网关(CentOS/RHEL 系统)
编辑对应网卡配置文件,路径为 /etc/sysconfig/network-scripts/ifcfg-XXX(XXX 替换为你的网卡名):
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- 用 vim /etc/sysconfig/network-scripts/ifcfg-ens33 打开
- 确保含以下关键行(其他参数可保留或删减):
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1 - 保存退出后,执行 systemctl restart network(CentOS 7+)或 service network restart(旧版)
三、永久配置 DNS(避免被覆盖)
直接改 /etc/resolv.conf 会因 NetworkManager 或 DHCP 服务重启而丢失。正确做法是:
- 在网卡配置文件中追加两行:
DNS1=223.5.5.5
DNS2=114.114.114.114 - 或者统一关闭 NetworkManager 对 DNS 的接管:
编辑/etc/NetworkManager/NetworkManager.conf,在[main]下添加 dns=none,再重启 NetworkManager:
systemctl restart NetworkManager - 验证:执行 cat /etc/resolv.conf,应看到刚设的 nameserver 条目且不被自动清空
四、Ubuntu/Debian 系统的推荐写法
新版 Ubuntu(18.04+)默认使用 Netplan,配置文件在 /etc/netplan/*.yaml:
- 编辑 yaml 文件,例如:
network:
version: 2
ethernets:
ens33:
dhcp4: false
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 114.114.114.114] - 保存后运行 sudo netplan apply 即刻生效










