必须配置静态ip以确保linux每次开机使用同一地址:一、ubuntu/debian用netplan编辑/etc/netplan/*.yaml,设dhcp4: false、addresses、gateway4和nameservers后执行sudo netplan apply;二、rhel/centos修改/etc/sysconfig/network-scripts/ifcfg-网卡文件,设bootproto=static及ipaddr、netmask、gateway、dns1并重启network服务。

你需要让Linux系统每次开机都使用同一个IP地址,避免因DHCP分配变动导致远程连接中断、服务访问失败或局域网设备通信异常,这就必须手动设置本地连接的静态IP地址与DNS服务器。
确认网卡名称和当前网络状态
先运行 ip -c a 查看所有网络接口,找到正在使用的有线网卡(常见名称如 ens33、enp0s3、eth0),注意它是否处于 UP 状态且已有 IPv4 地址。
若输出中没有 IPv4 地址,说明网卡未激活或配置异常,此时不要继续后续步骤,需先排查物理连接或 NetworkManager 状态。
记下网卡名,比如 【ens33】 —— 后续所有操作都基于这个名称,写错会导致配置不生效甚至断网。
Ubuntu/Debian 系统:用 Netplan 配置静态IP与DNS
Netplan 是 Ubuntu 18.04+ 默认的网络配置工具,配置文件在 /etc/netplan/ 下,通常为 00-installer-config.yaml 或 50-cloud-init.yaml。
第一步:备份原配置文件,防止改错后无法恢复:
sudocp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
第二步:用 nano 编辑该文件:
sudo nano /etc/netplan/00-installer-config.yaml
第三步:将整个文件内容替换为以下结构(注意缩进必须用空格,不能用 Tab;网卡名、IP、网关、DNS 必须按你本地实际值修改):
network:<br> version: 2<br> renderer: NetworkManager<br> ethernets:<br> ens33:<br> dhcp4: false<br> addresses: [192.168.1.100/24]<br> gateway4: 192.168.1.1<br> nameservers:<br> addresses: [114.114.114.114, 8.8.8.8]
第四步:保存退出(Ctrl+O → Enter → Ctrl+X),然后执行:
sudo netplan apply
这一步会立即重载网络配置,无需重启系统。如果终端卡住或提示 connection failed,说明 YAML 格式有误或 IP 与网关不在同一子网——请核对 /24 对应的掩码是 255.255.255.0,且 IP 前三段必须与网关一致。
RHEL/CentOS 系统:修改 ifcfg-网卡文件
方法一:直接编辑网卡配置脚本
进入配置目录:
cd /etc/sysconfig/network-scripts/
用 vi 编辑对应网卡文件,例如:
sudo vi ifcfg-ens33
将 BOOTPROTO=dhcp 改为 BOOTPROTO=static,并添加或修改以下四行(删除原有 IPADDR、NETMASK 等残留行,避免冲突):
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
确保 ONBOOT=yes,否则开机不启用该网卡。
保存退出后,重启网络服务:
sudo systemctl restart network
方法二:用 nmcli 命令快速配置(推荐用于临时调试)
先查连接名:
nmcli connection show
假设连接名为 “System ens33”,执行:
nmcli connection modify "System ens33" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "114.114.114.114,8.8.8.8"
停用再启用连接:
nmcli connection down "System ens33" && nmcli connection up "System ens33"
【注意:nmcli 修改不会写入 ifcfg 文件,重启 NetworkManager 服务后可能丢失】
验证静态IP与DNS是否生效
运行 ip addr show ens33,确认 inet 行显示的是你设定的 IP 地址,且没有额外的 DHCP 分配地址。
运行 cat /etc/resolv.conf,检查 nameserver 行是否为你配置的 DNS 地址;若仍显示 127.0.0.53,说明 systemd-resolved 拦截了配置,需额外执行:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
最后测试连通性:
ping -c 3 192.168.1.1(网关)
ping -c 3 www.baidu.com(域名解析)











