虚拟机安装DNS问题怎么解决?

HCRM技术_小炮 DNS 2025-09-21 3 0

别担心,我们可以系统地一步步排查和解决这个问题。

问题根源分析

DNS(Domain Name System)的作用是将域名(如www.google.com)解析为 IP 地址(如142.251.42.206),虚拟机出现 DNS 问题,通常源于以下几个原因:

1、网络连接模式设置不当:虚拟机的网络适配器模式(NAT、桥接等)会影响它如何获取 DNS 信息。

2、DNS 服务器地址配置错误:虚拟机内的 DNS 设置可能指向了错误或无效的 DNS 服务器。

3、虚拟机软件的网络服务异常:VMware 或 VirtualBox 的虚拟 NAT 和 DHCP 服务可能没有正常运行。

4、宿主机防火墙或安全软件拦截:少数情况下,宿主机的安全软件可能会阻止虚拟机的 DNS 查询请求。

5、Guest Additions / VMware Tools 未安装或有问题:这些工具提供了虚拟机与宿主机之间更好的集成,包括网络功能。

解决方案(从易到难)

请按照以下步骤逐一尝试,每一步完成后都测试一下是否解决。

步骤 1:检查基本网络连通性

我们需要确认问题是出在 DNS 解析上,还是根本的网络连接上。

1、 Ping 一个外网 IP 地址

    ping 8.8.8.8

如果成功说明虚拟机的网络通路是好的,问题百分之百出在DNS 解析 上,请继续执行步骤 2。

如果失败说明虚拟机的根本网络连接有问题,请直接跳转到步骤 5 检查网络连接模式。

2、 Ping 一个域名

    ping www.baidu.com

如果提示unknown host 或 无法解析确认是 DNS 问题。

如果成功恭喜你,DNS 已经正常工作,问题可能已经间歇性修复或只是临时故障。

步骤 2:检查虚拟机内的 DNS 配置

这是最常出现问题的地方。

对于 Linux 虚拟机 (Ubuntu, CentOS 等):

1、 检查当前使用的 DNS 服务器:

    cat /etc/resolv.conf

查看nameserver 后面跟的地址是什么。

* 如果使用的是虚拟机 NAT 模式,这里通常应该显示的是虚拟机网关的 IP(例如192.168.xx.110.0.xx.1)。

你也可以手动修改它为公共 DNS,例如

谷歌 DNS8.8.8.88.8.4.4

Cloudflare DNS1.1.1.1

国内 DNS114.114.114.114

注意:直接修改/etc/resolv.conf 可能重启后失效,因为它通常由系统服务管理。

2、持久化修改 DNS(推荐)

Ubuntu (使用 netplan)

编辑/etc/netplan/01-netcfg.yaml 或类似名称的 YAML 文件,在相应的网络接口下添加nameservers 部分。

        network:
          ethernets:
            ens33: # 你的网卡名,可能不同
              dhcp4: no
              addresses: [192.168.1.100/24] # 你的静态IP
              gateway4: 192.168.1.1
              nameservers:
                addresses: [8.8.8.8, 114.114.114.114]
          version: 2

保存后应用更改:sudo netplan apply

CentOS / RHEL (使用 NetworkManager)

编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0(eth0 为你的网卡名),添加:

        DNS1=8.8.8.8
        DNS2=114.114.114.114

或者使用nmcli 命令修改。

重启网络服务:sudo systemctl restart NetworkManager

对于 Windows 虚拟机:

1、 打开控制面板 ->网络和 Internet ->网络和共享中心

2、 点击你正在使用的网络连接(如“以太网”)。

3、 点击“属性”,然后双击“Internet 协议版本 4 (TCP/IPv4)”。

4、 选择“使用下面的 DNS 服务器地址”,并填入公共 DNS,

首选 DNS 服务器8.8.8.8

备用 DNS 服务器114.114.114.114

5、 点击“确定”保存。

修改完成后,打开命令提示符 (cmd),执行ipconfig /flushdns 来清空本地 DNS 缓存,然后再次测试ping www.baidu.com

步骤 3:重启虚拟机网络相关服务

在虚拟机内操作:

Linux:

    # 通用重启网络命令(根据系统不同选择)
    sudo systemctl restart systemd-networkd  # 对于 systemd-networkd
    sudo systemctl restart NetworkManager    # 对于 NetworkManager
    sudo service networking restart          # 对于较老的 Debian/Ubuntu

Windows:

在命令提示符中运行:

    ipconfig /release
    ipconfig /renew

步骤 4:检查虚拟机软件的网络服务(宿主机上操作)

虚拟机软件(如 VMware 或 VirtualBox)在宿主机上运行着虚拟的 DHCP 和 NAT 服务,它们负责给虚拟机分配 IP 和 DNS 地址。

VMware Workstation:

1. 在宿主机上,按Win + R,输入services.msc 打开服务管理器。

2. 找到以下服务,确保它们正在运行,如果没有,请启动它们。

VMware DHCP Service

VMware NAT Service

3. 重启这两个服务。

VirtualBox:

VirtualBox 的相关服务通常会自动管理,你可以尝试完全关闭 VirtualBox 程序(包括后台进程),然后重新打开。

步骤 5:检查虚拟机的网络连接模式

这是另一个非常关键的点,在虚拟机的设置 ->网络适配器中,你有几种选择:

1、NAT 模式(最常用)

工作原理虚拟机共享宿主机的 IP 地址上网,虚拟机软件会充当一个虚拟路由器,为虚拟机分配一个内网 IP(如192.168.xx.xx),并自动提供 DNS 服务(通常是宿主机的 DNS)。

建议如果你是个人用户,只是想上网,首选此模式,它通常能自动处理好 DNS。

2、桥接模式

工作原理虚拟机会像一台真机一样,直接连接到你的物理局域网中,它会从你物理路由器的 DHCP 服务器获取 IP 和 DNS 地址。

排查如果在此模式下出问题,你需要检查你的路由器是否工作正常,或者尝试在虚拟机内手动设置与宿主机在同一网段的静态 IP 和 DNS(DNS 可以设置为路由器的 IP 或公共 DNS)。

3、仅主机模式

工作原理虚拟机只能与宿主机通信,不能上外网。

注意如果你需要上网,不要使用此模式

请确保你的虚拟机设置在了正确的模式(推荐先尝试 NAT 模式)。

步骤 6:其他高级排查

检查宿主机防火墙/安全软件临时完全关闭宿主机的 Windows Defender 防火墙或其他第三方安全软件(如 360、火绒等),然后测试虚拟机 DNS 是否恢复,如果恢复,说明是被规则拦截了,需要在安全软件里添加允许规则。

重新安装 VMware Tools / VirtualBox Guest Additions这些工具包包含了优化的网卡驱动,确保你已安装最新版本。

重置虚拟机网络设置(VMware)

在 VMware Workstation 菜单中,点击编辑 ->虚拟网络编辑器,点击右下角的还原默认设置注意:这会重建所有虚拟网络,现有的网络配置可能会被重置。

为了方便你操作,可以遵循这个简易流程图:

graph TD
    A[虚拟机DNS问题] --> B{ping 8.8.8.8 通不通?};
    B -- 不通 --> C[检查网络模式(首选NAT)];
    B -- 通 --> D{ping www.baidu.com 通不通?};
    D -- 通 --> E[问题解决!];
    D -- 不通 --> F[明确是DNS问题];
    F --> G[检查虚拟机内DNS配置<br>(cat /etc/resolv.conf)];
    G --> H[修改为公共DNS<br>(8.8.8.8/114.114.114.114)];
    H --> I[重启虚拟机网络服务];
    I --> J[问题是否解决?];
    J -- 否 --> K[重启宿主机上的VMware/VBox服务];
    K --> L[检查宿主机防火墙];
    L --> M[重装VM Tools/Guest Additions];
    M --> N[最终手段:重置虚拟网络编辑器];

希望这些步骤能帮助你解决问题!绝大多数情况下,问题都出在步骤 2 (DNS配置)步骤 5 (网络模式)

文章摘自:https://idc.huochengrm.cn/dns/16231.html

评论