首页主机资讯Linux虚拟机中如何配置DNS服务

Linux虚拟机中如何配置DNS服务

时间2025-12-02 20:26:04发布访客分类主机资讯浏览736
导读:Linux虚拟机中配置 DNS 服务 一、场景与目标 为虚拟机配置客户端解析:让系统使用指定的 DNS 服务器进行域名解析(如内网 DNS 或公共 DNS)。 在虚拟机中自建 DNS 服务器:安装 BIND9,配置正向/反向解析,并验证可...

Linux虚拟机中配置 DNS 服务

一、场景与目标

  • 为虚拟机配置客户端解析:让系统使用指定的 DNS 服务器进行域名解析(如内网 DNS 或公共 DNS)。
  • 在虚拟机中自建 DNS 服务器:安装 BIND9,配置正向/反向解析,并验证可用性。
  • 快速本地域名映射:通过 /etc/hostsdnsmasq 实现轻量级解析。

二、客户端配置 DNS(让虚拟机使用指定 DNS)

  • 临时生效(重启后可能丢失)
    • 编辑 /etc/resolv.conf,添加:
      • nameserver 8.8.8.8
      • nameserver 1.1.1.1
  • 持久化方式
    • Debian/Ubuntu(netplan,/etc/netplan/*.yaml):
      • 在相应网卡下加入:
        • nameservers: { addresses: [8.8.8.8, 1.1.1.1] }
      • 应用:sudo netplan apply
    • RHEL/CentOS 7(ifcfg 文件,如 /etc/sysconfig/network-scripts/ifcfg-ens33):
      • 添加:DNS1=8.8.8.8;DNS2=1.1.1.1
      • 重启网络:sudo systemctl restart NetworkManager 或 sudo systemctl restart network
    • 使用 systemd-resolved(若启用):
      • 查看状态:systemctl status systemd-resolved
      • 配置存于:/etc/systemd/resolved.conf([Resolve] DNS=…),然后:sudo systemctl restart systemd-resolved & & sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  • 验证
    • dig example.com +short、nslookup example.com、ping -c 4 example.com。

三、自建 DNS 服务器(BIND9,含正反向解析)

  • 安装
    • Ubuntu/Debian:sudo apt update & & sudo apt install bind9 -y
    • CentOS/RHEL:sudo yum install bind -y(或 dnf install bind)
  • 核心配置
    • 主配置(Ubuntu:/etc/bind/named.conf.local;CentOS:/etc/named.conf)添加区域:
      • zone “example.local” { type master; file “/etc/bind/db.example.local”; } ;
      • zone “1.168.192.in-addr.arpa” { type master; file “/etc/bind/db.192.168.1”; } ;
    • 正向区域(/etc/bind/db.example.local):
      • $TTL 604800
      • @ IN SOA ns1.example.local. admin.example.local. ( 2024101001 3600 1800 1209600 86400 )
      • @ IN NS ns1.example.local.
      • ns1 IN A 192.168.1.10
      • www IN A 192.168.1.100
    • 反向区域(/etc/bind/db.192.168.1):
      • $TTL 604800
      • @ IN SOA ns1.example.local. admin.example.local. ( 2024101001 3600 1800 1209600 86400 )
      • @ IN NS ns1.example.local.
      • 10 IN PTR ns1.example.local.
      • 100 IN PTR www.example.local.
  • 权限与目录(CentOS 常见)
    • 区域文件属主/属组:sudo chown root:named /etc/bind/db.*;权限 640
  • 启动与开机自启
    • Ubuntu/Debian:sudo systemctl start bind9 & & sudo systemctl enable bind9
    • CentOS/RHEL:sudo systemctl start named & & sudo systemctl enable named
  • 防火墙(如启用 firewalld)
    • sudo firewall-cmd --add-service=dns --permanent & & sudo firewall-cmd --reload
  • 验证
    • dig @127.0.0.1 example.local +short、dig -x 192.168.1.100 +short、nslookup www.example.local。

四、轻量替代方案与本地映射

  • /etc/hosts 本地映射(最快)
    • 编辑 /etc/hosts:192.168.1.100 www.example.local
    • 立即生效,适合测试与单机场景。
  • dnsmasq(小型 DNS 转发/本地域)
    • 安装:sudo apt install dnsmasq -y 或 sudo yum install dnsmasq -y
    • 配置(/etc/dnsmasq.conf):
      • address=/example.local/192.168.1.100
      • server=8.8.8.8(上游 DNS)
    • 启动:sudo systemctl start dnsmasq & & sudo systemctl enable dnsmasq
    • 注意避免与 systemd-resolved 端口冲突(必要时停用 resolved 或调整 dnsmasq 监听)。

五、常见问题与排错

  • 配置文件语法检查
    • BIND:named-checkconf;区域文件:named-checkzone example.local /path/db.example.local
  • 服务管理命令
    • BIND:sudo systemctl restart named(或 bind9);dnsmasq:sudo systemctl restart dnsmasq;resolved:sudo systemctl restart systemd-resolved
  • 日志与实时查看
    • BIND:sudo tail -f /var/log/syslog(或 journalctl -u named -f)
  • 解析失败快速定位
    • dig +trace example.com、nslookup example.com、cat /etc/resolv.conf、检查防火墙/网络连通性
  • 虚拟机网络要点
    • 确保虚拟机与 DNS 服务器网络可达(同一网段/路由正确),NAT/桥接模式选择合理,必要时固定 IPDNS

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux虚拟机中如何配置DNS服务
本文地址: https://pptw.com/jishu/761629.html
如何利用Linux虚拟机进行开发测试 debian挂载时提示找不到设备

游客 回复需填写必要信息