调整虚拟机DNS设置的方法取决于您的具体需求(是临时测试还是永久生效)以及虚拟机的网络模式,主要分为两大方向:
flowchart TD
A[开始: 需要调整虚拟机DNS] --> B{虚拟机使用何种网络模式?};
B -- 桥接模式 --> C[“虚拟机像独立真机<br>直接获取外部网络(如路由器)配置”];
C --> D[“方案一: 在虚拟机<br>操作系统内部修改”];
B -- NAT模式 --> E[“虚拟机通过宿主机上网<br>通常继承宿主机DNS”];
E --> F{修改目标?};
F -- 仅改此虚拟机 --> D;
F -- 更改所有NAT虚拟机 --> G[“方案二: 修改虚拟网络编辑器<br>(VMware/VirtualBox)”];
B -- 仅主机模式 --> H[“虚拟机与宿主机组成独立网络<br>与外界隔离”];
H --> G;
D --> I[“具体步骤<br>(同真机修改方法)”];
G --> J[“具体步骤<br>(需关闭所有虚拟机后操作)”];如上图所示,在动手前,请先确认您的虚拟机网络模式(通常可以在虚拟机设置 > 网络适配器中查看):
桥接模式:虚拟机像一台独立的真实电脑,直接从您的路由器获取IP和DNS。需要修改虚拟机内部系统的设置。
NAT模式(最常见):虚拟机通过宿主机“共享上网”,通常默认使用宿主机或上级路由器的DNS。既可以修改虚拟机内部,也可以修改虚拟网络配置。
仅主机模式:虚拟机只与宿主机通信。需要修改虚拟网络配置。
下面针对两种主要方案提供详细步骤。
方案一:修改虚拟机内部操作系统的DNS(适用于所有模式,永久生效)
这种方法与修改物理机DNS完全相同。
1、 打开控制面板 >网络和 Internet >网络和共享中心。
2、 点击左侧的“更改适配器设置”。
3、 右键点击正在使用的网络连接(如“以太网”或“本地连接”),选择“属性”。
4、 在列表中找到并双击“Internet 协议版本 4 (TCP/IPv4)”。
5、 选择“使用下面的DNS服务器地址”,然后填入您需要的DNS。
- 常用公共DNS:8.8.8.8(谷歌)、114.114.114.114(国内)、1.1.1.1(Cloudflare)。
6、 点击“确定” 保存,可能需要重启网络或系统生效。
对于 Linux 虚拟机(以主流发行版为例)
方法A:使用nmcli(NetworkManager,推荐)
查看当前连接名称 nmcli connection show 修改指定连接的DNS(例如连接名是 eth0 或 ens33) sudo nmcli connection modify "连接名" ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli connection modify "Wired connection 1" ipv4.dns "114.114.114.114" 使配置生效 sudo nmcli connection up "连接名"
方法B:修改配置文件(如使用netplan或network-service)
Ubuntu 18.04+/Debian(使用netplan):
编辑/etc/netplan/ 下的.yaml 文件,在对应网卡下添加nameservers 部分。
network:
ethernets:
ens33:
dhcp4: yes
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
version: 2 应用更改:sudo netplan apply
CentOS/RHEL/Rocky Linux(使用NetworkManager或network-scripts):
编辑网卡配置文件,如/etc/sysconfig/network-scripts/ifcfg-ens33,添加或修改:
DNS1=8.8.8.8 DNS2=8.8.4.4
重启网络服务:sudo systemctl restart network
方案二:修改虚拟机的网络编辑器(适用于NAT/仅主机模式,全局生效)
此方法修改的是虚拟机软件创建的虚拟网络本身,所有使用该虚拟网络的虚拟机都会继承此DNS设置。注意:操作前请关闭所有虚拟机。
对于 VMware Workstation/Player
1、 在主界面,点击编辑 >虚拟网络编辑器。
2、 选择VMnet8(NAT模式) 或VMnet1(仅主机模式)。
3、 点击“NAT设置”(对于VMnet8)。
4、 点击“DHCP设置…”。
5、 在弹出的窗口中,您可以修改“DNS服务器” 地址,这里设置的DNS会通过DHCP服务下发给所有使用该网络的虚拟机。
6、 逐级确定 保存,重启虚拟机后生效。
1、 打开VirtualBox管理器,进入管理 >主机网络管理器。
2、 选择您虚拟机使用的虚拟网络适配器(通常是VirtualBox Host-Only Ethernet Adapter)。
3、 切换到“DHCP服务器” 标签页。
4、取消勾选 “启用服务器”(重要!因为DHCP和手动设置DNS可能冲突)。
5、 在虚拟机内部,您需要按照方案一 手动设置静态IP和DNS,或者,如果您想继续使用DHCP,则需要在宿主机上配置VirtualBox的DHCP服务,这相对复杂,通常直接修改虚拟机内部更简单。
编辑 resolv.conf 文件(重启网络或系统后会还原) sudo nano /etc/resolv.conf 将 nameserver 行修改为需要的DNS, nameserver 8.8.8.8 nameserver 114.114.114.114
以管理员身份运行CMD或PowerShell:
设置主DNS netsh interface ip set dns "以太网" static 8.8.8.8 设置备用DNS netsh interface ip add dns "以太网" 8.8.4.4 index=2
(将"以太网" 替换为您的网络连接名称,可通过netsh interface show interface 查看)
在虚拟机内打开命令行,执行:
Windows:ipconfig /all,查看 “DNS 服务器” 项。
Linux:cat /etc/resolv.conf 或nmcli dev show | grep DNS,或使用nslookup www.baidu.com 测试解析。
1、权限:修改系统网络配置通常需要管理员/root权限。
2、网络模式:如果虚拟机使用NAT模式 且未在虚拟机内手动设置,那么它的DNS默认由宿主机的网络设置 或虚拟网络编辑器中的DHCP设置 决定,如果宿主机DNS有问题,虚拟机也会受影响。
3、防火墙与代理:确保宿主机和虚拟机的防火墙没有阻断DNS查询(通常使用UDP 53端口)。
4、重置:如果修改导致无法上网,可以改回“自动获得DNS服务器地址”。
最常用、最直接的方法:直接进入虚拟机操作系统内部修改(方案一)。
需要为多台虚拟机统一配置:使用虚拟网络编辑器(方案二),但要注意关闭虚拟机后再操作。
快速测试:使用临时修改命令(方案三)。
操作顺序建议:先尝试修改虚拟机内部DNS,如果无效,再检查宿主机DNS和虚拟网络设置,对于绝大多数个人用户,修改虚拟机内部系统设置即可解决问题。
文章摘自:https://idc.huochengrm.cn/dns/22403.html
评论
黄彦慧
回复配置虚拟机的DNS设置,首先进入虚拟机网络设置,选择桥接模式,然后设置IP地址、子网掩码、默认网关,最后在高级选项中设置DNS服务器地址。
开思莹
回复调整虚拟机DNS设置需先确定网络模式,再决定修改位置,桥接模式需在虚拟机内部修改,NAT模式和仅主机模式可修改虚拟网络配置或虚拟机内部,修改后需验证DNS设置是否生效。