Linux 常见发行版 DNS 与网卡配置文件修改教程

🌙
⬆️

Linux 常见发行版 DNS 与网卡配置文件修改教程

1. 通用前置检查

# 1) 查看当前网卡名称
ip addr show            # 或 ifconfig
# 2) 查看 DNS 生效情况
resolvectl status       # systemd-resolved
cat /etc/resolv.conf    # 传统方式
⚠️ 风险提醒
• 错误配置可能导致 SSH 失联,先在控制台或带外会话操作
• 修改前务必备份:sudo cp /etc/resolv.conf /etc/resolv.conf.bak-$(date +%F)

2. Ubuntu / Debian 系列

2.1 Ubuntu ≥ 18.04(Netplan 默认)

文件位置:/etc/netplan/*.yaml

2.1.1 修改静态 IP + DNS

sudo nano /etc/netplan/01-netcfg.yaml

示例(YAML 缩进敏感):

network:
  version: 2
  ethernets:
    ens33:               # 替换为你的网卡名
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [223.5.5.5, 8.8.8.8]   # 阿里云 + Google

保存后:

sudo netplan apply            # 立即生效
sudo netplan try              # 60 秒内无确认则自动回滚
若执行失败,Netplan 会提示回滚;也可手动恢复备份

2.1.2 仅修改 DNS(DHCP 环境)

sudo nano /etc/systemd/resolved.conf

取消注释并填写:

[Resolve]
DNS=223.5.5.5 8.8.8.8
FallbackDNS=114.114.114.114

重启服务:

sudo systemctl restart systemd-resolved

验证:

resolvectl status

2.2 Debian ≤ 9 或 Ubuntu ≤ 16.04(interfaces)

文件位置:/etc/network/interfaces

sudo nano /etc/network/interfaces

示例(静态):

auto ens33
iface ens33 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 223.5.5.5 8.8.8.8

重启网络:

sudo systemctl restart networking
若 SSH 失联,可在云控制台使用 VNC 回滚。

3. CentOS / RHEL 系列

3.1 CentOS 7/8 & RHEL 7/8(ifcfg-scripts)

文件位置:/etc/sysconfig/network-scripts/ifcfg-<网卡名>

3.1.1 备份与编辑

NIC=$(ip route | grep default | awk '{print $5}')
sudo cp /etc/sysconfig/network-scripts/ifcfg-$NIC /etc/sysconfig/network-scripts/ifcfg-$NIC.bak
sudo nano /etc/sysconfig/network-scripts/ifcfg-$NIC

3.1.2 关键字段说明(示例)

字段说明示例值
BOOTPROTO获取方式staticdhcp
IPADDR静态 IP192.168.1.100
NETMASK子网掩码255.255.255.0
GATEWAY默认网关192.168.1.1
DNS1 / DNS2DNS 服务器223.5.5.5 / 8.8.8.8
ONBOOT开机启动yes

完整示例(静态):

TYPE=Ethernet
BOOTPROTO=static
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=223.5.5.5
DNS2=8.8.8.8

保存后:

sudo systemctl restart network
CentOS 8 若使用 NetworkManager,需同时:
sudo nmcli connection reload
sudo nmcli connection up $NIC

4. systemd-networkd(通用新发行版,如 Arch)

文件位置:/etc/systemd/network/10-static.network

sudo nano /etc/systemd/network/10-static.network

示例:

[Match]
Name=ens33

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=223.5.5.5 8.8.8.8

启用并重启:

sudo systemctl enable --now systemd-networkd systemd-resolved

5. 回滚 & 故障恢复

场景回滚命令
Netplan 失败sudo netplan apply --debugsudo cp /etc/netplan/*.yaml.bak /etc/netplan/
interfaces 失败sudo systemctl restart networking 或还原备份文件后重启
ifcfg 失败sudo cp /etc/sysconfig/network-scripts/ifcfg-$NIC.bak /etc/sysconfig/network-scripts/ifcfg-$NIC 然后重启网络
完全失联通过云控制台 VNC/救援模式 恢复

6. 验证 DNS 生效

# 1) 查看当前生效 DNS
resolvectl status | grep "DNS Servers"
# 2) 解析测试
nslookup pigyun.com
dig @223.5.5.5 pigyun.com

若返回正确 IP 即配置成功。


7. 常见坑与提示

坑点说明
DHCP 覆盖 resolv.conf使用 PEERDNS=no(CentOS)或 dhcp4-overrides: use-dns: false(Netplan)
YAML 缩进错误Netplan 会报错:Invalid YAML;务必保持两空格缩进
CentOS 8 已 EOL需先切换 Vault 源,否则无法安装网络工具;参考 CentOS EOL 修复手册

PIGYun 建议
短期:使用 Vault 源 + 静态 DNS 继续运行
长期:迁移至 Rocky Linux 9 / AlmaLinux 9 获得持续安全更新
CentOS 7/8 已停止维护:yum 源失效一站式修复手册

✍️ 添加新评论

💨 由 PIGYun全球优质服务器 提供快速评论体验
🚀 评论由PIGYun高性能服务器处理