设置虚拟机的 DNS 和主机名,主要取决于你使用的虚拟机操作系统(Windows 还是 Linux)以及你期望达到的网络效果(例如只是当前会话有效,还是永久修改),下面分场景说明,你可以挑选适合自己的方法。

一、修改虚拟机的主机名(Hostname)
1. Linux 虚拟机(以 Ubuntu/CentOS 为例)
临时修改(重启后失效):
hostname new-hostname
永久修改(推荐):
Ubuntu / Debian / 现代系统(使用 systemd):

sudo hostnamectl set-hostname new-hostname
然后检查/etc/hosts 文件,确保新主机名指向本地 IP(否则 sudo 可能会变慢):
echo "127.0.1.1 new-hostname" | sudo tee -a /etc/hosts
CentOS / RHEL 7+:
sudo hostnamectl set-hostname new-hostname sudo sed -i "s/原有主机名/new-hostname/g" /etc/hostname
CentOS 6 / 较老系统:
修改/etc/sysconfig/network 文件中的HOSTNAME 行,然后执行sudo hostname new-hostname。
图形界面:

打开设置 > 系统 > > 重命名此电脑,输入新名称后重启。
命令行(管理员权限):
Rename-Computer -NewName "NewVMName" -Restart
方法一:使用 nmcli(推荐,适用于 NetworkManager)
查看当前网络连接名称(通常为 ens33、eth0 或 Wired connection 1) nmcli con show 修改 DNS(可添加多个,用空格分隔) sudo nmcli con mod "连接名称" ipv4.dns "8.8.8.8 1.1.1.1" sudo nmcli con mod "连接名称" ipv4.ignore-auto-dns yes # 忽略 DHCP 自动获取的 DNS 重启网络连接 sudo nmcli con down "连接名称" && sudo nmcli con up "连接名称"
方法二:手动修改 /etc/resolv.conf(临时,重启可能被覆盖)
sudo nano /etc/resolv.conf
添加或修改为:
nameserver 8.8.8.8 nameserver 1.1.1.1
注意: 如果系统使用了 systemd-resolved,需要先执行sudo systemctl disable systemd-resolved 才能让手动配置生效,或者使用resolvectl dns 命令。
方法三:修改 /etc/network/interfaces(较老系统)
echo "dns-nameservers 8.8.8.8 1.1.1.1" | sudo tee -a /etc/network/interfaces sudo service networking restart
图形界面:
打开网络和共享中心 > 更改适配器设置 > 右键当前网卡 > 属性 > Internet 协议版本 4 (TCP/IPv4) > 属性,选择“使用下面的 DNS 服务器地址”,输入首选和备用 DNS。
命令行(管理员):
# 查看网卡接口索引
Get-NetAdapter | Format-Table Name, ifIndex
# 设置 DNS(将 ifIndex 替换为实际索引,如 5)
Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses ("8.8.8.8", "1.1.1.1")如果你的虚拟机使用VMware 或 VirtualBox,某些设置可能会覆盖客户机(虚拟机)内的配置:
VMware Workstation/Player:
在虚拟机设置中,可以勾选“将主机名复制到虚拟机” 或配置 NAT 模式的 DNS 转发(默认使用宿主机 DNS),如果不想被覆盖,建议在虚拟机内明确指定静态 IP 和 DNS,并关闭 DHCP 自动获取。
VirtualBox:
NAT 模式下,虚拟机会通过 VirtualBox 内置的 DNS 代理访问外部,通常无需额外设置,但如果需要自定义,建议改为桥接模式或仅主机模式,然后手动设置客户机 DNS。
无论使用哪种方法,修改后建议重启虚拟机或重启网络服务,然后用以下命令验证:
Linux:
- 主机名:hostnamectl 或hostname
- DNS 解析:nslookup baidu.com 或dig baidu.com(需安装 dnsutils)
- 查看当前使用的 DNS:nmcli dev show | grep DNS 或cat /etc/resolv.conf
Windows:
- 主机名:hostname
- DNS:ipconfig /all | findstr "DNS 服务器"
- 解析测试:nslookup baidu.com
如果遇到虚拟机无法联网或解析失败,先检查网络模式(NAT/桥接/仅主机)是否正确,以及宿主机防火墙是否限制。
假设你在 Ubuntu 虚拟机里想永久设置主机名为myubuntu,DNS 为8.8.8.8 和1.1.1.1:
sudo hostnamectl set-hostname myubuntu echo "127.0.1.1 myubuntu" | sudo tee -a /etc/hosts sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1" sudo nmcli con mod "Wired connection 1" ipv4.ignore-auto-dns yes sudo nmcli con down "Wired connection 1" && sudo nmcli con up "Wired connection 1"
这样一次性完成了主机名和 DNS 的设置,如果你的虚拟机不是 Ubuntu,请参考上面对应系统的命令即可。
文章摘自:https://idc.huochengrm.cn/dns/27581.html
评论
昌代蓝
回复在设置虚拟机时,可通过虚拟机管理软件的设置界面调整DNS服务器地址,并配置主机名,具体操作步骤如下:进入虚拟机设置,选择网络选项,配置DNS和主机名。