虚拟机里上不了网?访问不了网站?别急,问题可能出在 DNS 和域名解析上! 作为虚拟机的使用者或管理员,清楚如何查看和诊断虚拟机的 DNS 域名解析配置是必备技能,这不仅能快速定位网络问题,也是保障虚拟机正常访问互联网和内部资源的基础,下面就来详细说说,在虚拟机里,我们该如何查看这些关键信息。
一、 先弄明白:DNS 和域名解析是干嘛的?
DNS 就像是互联网的“电话簿”,当你在虚拟机里输入一个网址(比如www.baidu.com
)时,虚拟机本身并不认识这个名字,它需要询问 DNS 服务器:“www.baidu.com
对应的实际门牌号(IP 地址,比如110.242.68.3
)是多少?” 这个过程就是域名解析,DNS 服务器负责回答这个问题,虚拟机里配置的 DNS 设置,就是告诉它该去问哪台(或哪几台)DNS 服务器。
二、 如何查看虚拟机的 DNS 服务器地址?
这是最核心的一步,知道虚拟机用的是哪台 DNS 服务器才能进行后续诊断,方法取决于虚拟机运行的操作系统:
1、Windows 虚拟机:
命令行(推荐)
* 按下Win + R
,输入cmd
或powershell
,回车打开命令提示符或 PowerShell。
输入命令ipconfig /all
* 在输出的信息中,找到你当前正在使用的网络连接(通常是 “以太网适配器” 或 “无线局域网适配器”)。
* 向下滚动查找DNS 服务器
项,这里列出的 IP 地址就是你的虚拟机当前配置使用的 DNS 服务器地址,可能会有多个(主备)。
图形界面
* 右键点击任务栏右下角的网络图标(小电脑或Wi-Fi图标),选择打开“网络和 Internet”设置
。
* 点击更改适配器选项
。
* 右键点击你正在使用的网络连接,选择属性
。
* 在列表中双击Internet 协议版本 4 (TCP/IPv4)
或Internet 协议版本 6 (TCP/IPv6)
。
* 在打开的属性窗口中,下方使用下面的 DNS 服务器地址
部分,就能看到手动配置的 DNS 地址,如果是自动获得 DNS 服务器地址
,则表明 DNS 服务器是由你的路由器(或虚拟网络环境中的 DHCP 服务器)自动分配的(这时就需要用ipconfig /all
来查看实际获得的地址)。
2、Linux 虚拟机 (常见发行版如 Ubuntu, CentOS):
命令行(主要方式)
* 打开终端 (Terminal
)。
使用systemd-resolve
(较新系统推荐)
输入命令systemd-resolve --status
* 在输出中找到你活跃的网络接口(如eth0
,enp0s3
等),其下的DNS Servers:
行后面列出的就是 DNS 服务器 IP 地址。
查看配置文件/etc/resolv.conf
输入命令cat /etc/resolv.conf
查看以nameserver
开头的行,后面跟着的 IP 地址就是配置的 DNS 服务器。注意 在现代使用systemd-resolved
的系统上,这个文件可能是指向/run/systemd/resolve/stub-resolv.conf
的符号链接,显示的是本地的存根解析器(通常是127.0.0.53
),实际的 DNS 服务器需要用systemd-resolve --status
查看。
使用nmcli
(NetworkManager 管理时)
输入命令nmcli dev show | grep DNS
* 这会列出所有网络接口相关的 DNS 配置信息。
图形界面 (视具体桌面环境而定)
* 通常在系统设置 -> 网络 -> 有线/无线连接 -> 设置(齿轮图标)-> IPv4/IPv6 设置标签页下。
* 查看 “DNS” 或 “自动” 选项下面的手动输入框,或者查看详细信息中显示的 DNS 地址。
三、 如何测试域名解析是否正常?
知道了 DNS 服务器地址,下一步就是测试虚拟机能不能成功把域名“翻译”成 IP 地址。
1、使用ping
命令(基础连通性):
* 在命令提示符/PowerShell (Windows) 或 终端 (Linux) 中。
输入ping 目标域名
(ping www.baidu.com
)
* 如果解析成功,会显示该域名对应的 IP 地址并开始发送数据包。
如果显示Ping 请求找不到主机 www.baidu.com,请检查该名称,然后重试。
(Windows) 或ping: www.baidu.com: 名称或服务未知
(Linux),则表明域名解析失败。注意ping
不通并不一定100%是DNS问题(对方服务器可能禁ping),但无法解析出IP地址则肯定是DNS或域名本身的问题。
2、使用专用解析命令nslookup
(Windows/Linux通用) 或dig
(Linux更强大):
nslookup
* 直接输入nslookup
回车进入交互模式,然后输入要查询的域名 (如www.baidu.com
),它会显示使用的默认 DNS 服务器和查询结果(IP地址)。
* 或者直接输入nslookup 目标域名
(如nslookup www.baidu.com
)。
* 如果解析成功,会显示Non-authoritative answer
部分,其中包含域名对应的 IP 地址列表。
如果解析失败,会显示 找不到 www.baidu.com: No response from server
或类似的错误信息。关键点** 注意看它用的是哪台 DNS 服务器(输出最上方Server
行)来查询的,这有助于判断是 DNS 服务器本身的问题还是到该服务器的网络问题。
指定 DNS 服务器查询nslookup 目标域名 指定DNS服务器IP
(如nslookup www.baidu.com 8.8.8.8
),这非常有用!如果使用你配置的 DNS (如 192.168.1.1) 解析失败,但使用公共 DNS (如 8.8.8.8 或 114.114.114.114) 能成功,那就说明问题很可能出在你配置的 DNS 服务器上(如路由器故障、DNS服务器设置错误),或者虚拟机到该 DNS 服务器的网络不通。
dig
(Linux)
输入dig 目标域名
(如dig www.baidu.com
)
* 在输出的ANSWER SECTION
部分查看解析出的 IP 地址。
同样可以指定 DNS 服务器dig @指定DNS服务器IP 目标域名
(如dig @8.8.8.8 www.baidu.com
)。
四、 查看虚拟机的主机名和域名 (可选)
有时了解虚拟机自身在域环境中的名称也有帮助:
Windows
* 命令行输入hostname
查看计算机名。
图形界面系统属性
或设置
->系统
->关于
查看设备名称。
要查看完整的域名(如果加入了域),通常也在系统属性或关于页面,或者命令行输入echo %USERDOMAIN%
。
Linux
* 命令行输入hostname
查看主机名。
* 输入hostname -d
或dnsdomainname
(如果设置了的话) 查看域名。
* 查看文件/etc/hostname
(主机名) 和/etc/hosts
(本地主机名解析)。
虚拟机DNS查看要点 & 常见问题排查思路:
1、确认来源: 虚拟机的 DNS 设置通常继承自虚拟网络,如果使用 NAT 模式,DNS 一般由宿主机的 DHCP 或虚拟网络软件(如 VMware NAT Service, VirtualBox NAT Engine)提供,如果使用桥接模式,DNS 则由物理网络中的路由器(DHCP)提供。理解你的虚拟机网络连接模式很重要!
2、优先使用命令:ipconfig /all
(Win) 和systemd-resolve --status
/cat /etc/resolv.conf
(Linux) 是获取真实有效 DNS 服务器地址的最可靠方式。
3、nslookup
/dig
是关键诊断工具: 它们不仅能告诉你解析是否成功,更能精确显示使用的是哪台 DNS 服务器以及解析结果,并能通过指定公共 DNS 快速判断问题是出在本地 DNS 还是更广泛网络。
4、解析失败怎么办?
* 检查虚拟机到 DNS 服务器的网络是否通畅 (ping DNS服务器IP
)。
* 尝试更换为公共 DNS 服务器 (如 8.8.8.8, 8.8.4.4 / 114.114.114.114, 114.114.115.115 / 223.5.5.5, 223.6.6.6)。
* 检查虚拟机网络配置(IP地址、网关、子网掩码)是否正确,是否能ping
通网关。
* 检查宿主机的网络连接和 DNS 是否正常(虚拟机 NAT/Bridged 依赖于此)。
* 检查虚拟网络软件(VMware, VirtualBox, Hyper-V)的网络设置是否正确。
* 检查防火墙是否阻止了 DNS 查询(通常是 UDP 53 端口)。
* 检查/etc/hosts
(Linux) 或C:\Windows\System32\drivers\etc\hosts
(Windows) 文件是否有错误的静态覆盖记录。
5、图形界面辅助: 图形界面适合查看静态配置,但动态获取(最常见)的 DNS 地址还是以命令行查询为准。
个人观点: 虚拟机的网络配置,尤其是 DNS 解析,是它能否融入网络环境、正常工作的基石,掌握这些查看和诊断的方法,不仅能快速解决“上不了网”、“打不开网站”这类常见头疼问题,更是进行更高级网络配置和故障排除的起点,别小看ipconfig
和nslookup
这些基础命令,它们往往是解决问题的金钥匙,虚拟机环境复杂多变,清晰的网络认知能让你事半功倍。
文章摘自:https://idc.huochengrm.cn/dns/12274.html
评论
侍思松
回复在虚拟机中,可以通过查看网络配置文件或使用命令行工具如`ipconfig`或`nslookup`来查看DNS域名信息。