温馨提示×

linux ifconfig能设dns吗

小樊
41
2026-10-29 07:13:27
栏目: 智能运维

简短回答:不能。ifconfig 本身不能设置 DNS。

原因

  • ifconfig 只能配置网络接口层面的参数,比如:
    • IP 地址
    • 子网掩码
    • 广播地址
    • 接口启用/禁用(up/down)
  • DNS 是系统级的解析配置,不属于某个网卡接口的“网络层参数”,所以 ifconfig 管不到。

在 Linux 中正确设置 DNS 的方式

1. 临时生效(重启后失效)

编辑或写入:

/etc/resolv.conf

例如:

nameserver 8.8.8.8
nameserver 114.114.114.114

注意:很多现代 Linux 发行版中 /etc/resolv.conf 由 systemd-resolved 或 NetworkManager 管理,手动改可能无效或被覆盖。


2. 使用 NetworkManager(常见桌面/服务器)

nmcli con mod <连接名> ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con up <连接名>

3. 使用 netplan(Ubuntu 18.04+)

示例 /etc/netplan/01-netcfg.yaml:

network:
  version: 2
  ethernets:
    eth0:
      addresses: [192.168.1.10/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

应用:

netplan apply

4. 使用 systemd-resolved

resolvectl dns eth0 8.8.8.8

总结

  • ❌ ifconfig 不能设 DNS
  • ✅ DNS 要通过 /etc/resolv.conf、nmcli、netplan 或 resolvectl 配置

如果你告诉我具体发行版(如 CentOS / Ubuntu / Debian),我可以给你最准确的方法。

0 踩