5154

Good Luck To You!

linux如何配置dns和ip

编辑 /etc/resolv.conf 添加 DNS;用 nmtui/vi /etc/sysconfig/networkscripts/ifcfg* 配 IP,重启网络

Linux DNS与IP地址配置完全指南

在Linux系统中,正确配置网络参数(包括IP地址和DNS解析)是保障设备正常通信的核心环节,本文将系统性地介绍静态/动态IP分配DNS客户端配置的完整流程,涵盖主流发行版的操作差异,并提供故障排查思路,通过本指南,您可掌握从临时测试到持久化配置的全链路管理方案。


前置准备

✅ 必要条件清单

项目 说明
Root权限 多数配置文件需sudo权限修改
终端工具 推荐使用SSH或物理控制台,避免图形界面中断
网卡识别 执行ip link show确认目标网卡名称(如ens33/eth0)
网关有效性验证 确保预设网关处于同一子网且可达
DNS服务器可靠性 优先选择运营商提供或公共DNS(如8.8.8.8/1.1.1.1)

IP地址配置方案

🔧 方案A:临时性配置(立即生效但重启失效)

IPv4手动指定
# 语法:ip [option] object {command | parameters}
sudo ip addr add 192.168.1.100/24 dev ens33       # 添加主IP+掩码
sudo ip addr del 192.168.1.101/24 dev ens33      # 删除冗余IP
sudo ip link set ens33 up                       # 激活网卡

💡 技巧ip brief address show快速查看当前绑定的所有IP

IPv6无状态自动配置(SLAAC)
sudo ip 6 addr add <EUI64生成的全局地址>/64 dev ens33 preferred_lft forever

⚠️ 注意:多数云服务商默认启用DHCPv6而非纯SLAAC

📜 方案B:永久性配置(推荐生产环境使用)

▶︎ Debian/Ubuntu系(Netplan时代)

编辑/etc/netplan/50cloudinit.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no                                 # 禁用DHCP
      addresses: [192.168.1.100/24]             # 静态IP段
      routes:
        to: default
          via: 192.168.1.1                     # 默认网关
      dns: []                                  # 此处不填,单独管理DNS

应用配置:sudo netplan apply

▶︎ RHEL/CentOS系(传统networkmanager)

修改/etc/sysconfig/networkscripts/ifcfgens33: | 参数 | 值 | 说明 | |||| | ONBOOT=yes | ✔️ | 启动时激活网卡 | | BOOTPROTO=static | static | 静态IP模式 | | IPADDR=192.168.1.100| 自定义IP | 不可与局域网内其他设备冲突 | | PREFIX=24 | /24 | CIDR表示法 | | GATEWAY=192.168.1.1| 路由器LAN口地址 | 必须真实存在 | | DNS1=8.8.8.8 | Google公共DNS | 最多可定义三个DNS服务器 | | PEERDNS=no | 禁止反向DNS查询 | 提升安全性 |

修改后执行:sudo systemctl restart NetworkManager


DNS客户端深度配置

📌 核心配置文件解析

/etc/resolv.conf关键字段说明
字段名 示例值 功能描述
nameserver 8.8.8 首选DNS服务器
search localdomain.com 搜索域后缀(缩短域名输入)
options singlerequestreopen 允许单次请求重试机制
ndots: ndots:2 绝对FQDN解析阈值(≥该数值不加搜索域)

🛠️ 特殊场景配置技巧

多DNS负载均衡
# 同时使用三大公共DNS实现故障转移
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 223.5.5.5

👉 原理:系统按顺序尝试,首个响应成功的DNS将被采用

私有区域定向解析

创建/etc/openvpn/updateresolvconf脚本(适用于VPN场景):

echo "nameserver 10.0.0.1" > /etc/resolv.conf.new
cat /etc/resolv.conf >> /etc/resolv.conf.new
mv /etc/resolv.conf.new /etc/resolv.conf

配合Firewall规则实现内外网分离解析


配置验证与排错

🔍 标准化检测流程

步骤 命令 预期结果
接口状态检查 ip c a 显示所有活跃接口及其IPv4/IPv6地址
路由表校验 route n 默认路由指向正确网关
DNS正向解析测试 dig @8.8.8.8 example.com 返回非权威应答(ANSWER SECTION)
反向解析验证 dig x <本机公网IP> PTR记录应指向合法域名
连通性深度测试 traceroute n 8.8.8.8 展示完整的网络跳转路径

❗ 常见错误解决方案

现象 可能原因 解决方法
Name or service not known DNS端口被防火墙阻断 firewallcmd addservice=dns
网关不可达 路由表中缺少默认路由 补充route add default gw <网关>
SELinux阻止网络访问 安全策略限制 临时禁用:setenforce 0
跨子网通信失败 子网掩码计算错误 使用在线CIDR计算器重新规划网段

进阶管理工具推荐

工具名称 特点 适用场景
nmtui 文本界面可视化配置 快速调整基础网络参数
wicked SUSE开发的下一代网络管理器 复杂桥接/VLAN场景
dnsmasq 轻量级本地缓存DNS服务器 内网加速+防污染拦截
unbound 递归DNS解析器 自建隐私保护型DNS服务

相关问题与解答

Q1: 为什么修改了/etc/network/interfaces却没有生效?

:现代Debian系已迁移至Netplan,传统/etc/network/interfaces文件不再被读取,请检查/etc/netplan/*.yaml文件,并执行sudo netplan apply应用配置,若需恢复旧版网络管理,可安装ifupdown包并创建符号链接。

Q2: 设置了多个DNS服务器但总是优先使用最后一个怎么办?

:Linux系统的/etc/resolv.conf中DNS服务器列表的顺序决定优先级,排在前面的会被优先使用,如果发现实际行为相反,可能是以下原因导致:① 某些发行版(如OpenWrt)会反转列表顺序;② 第三方软件(如Systemdresolved)覆盖了原始配置,建议使用systemdresolve status检查实际使用的DNS列表,并通过execstop参数强制指定顺序。


Linux网络配置的本质是建立三层映射关系:物理层(MAC地址)→ 数据链路层(交换机学习)→ 网络层(IP路由),掌握IP与DNS的配置,相当于掌握了网络世界的“门牌号”和“邮政局”设置,建议在实际环境中多进行破坏性测试(如断开网关、伪造DNS响应),通过实践加深

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年9月    »
1234567
891011121314
15161718192021
22232425262728
2930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.