虚拟机的DNS配置方式取决于虚拟化平台和操作系统,以下是常见场景的配置方法:
一、虚拟机内部配置(以主流操作系统为例)
Ubuntu/Debian(使用 Netplan)
编辑配置文件(文件路径可能不同)
sudo vi /etc/netplan/00-installer-config.yaml
配置示例
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
search: [example.com]应用配置:
sudo netplan apply
CentOS/RHEL(使用 NetworkManager)
编辑网络配置文件 sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 添加或修改以下行 DNS1=8.8.8.8 DNS2=8.8.4.4 PEERDNS=no
或者使用 nmcli:
sudo nmcli con mod "System eth0" ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli con up "System eth0"
sudo vi /etc/resolv.conf 添加 nameserver 8.8.8.8 nameserver 8.8.4.4 search example.com
注意:某些系统会覆盖此文件,建议使用系统配置工具。
1、打开"控制面板" → "网络和共享中心"
2、点击当前连接的网络
3、点击"属性" → "Internet协议版本4 (TCP/IPv4)"
4、选择"使用下面的DNS服务器地址"
5、输入首选和备用DNS
查看网络接口
Get-NetAdapter
设置DNS(示例)
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("8.8.8.8", "8.8.4.4")二、虚拟化平台配置
NAT模式:编辑虚拟网络编辑器 → 选择NAT网络 → NAT设置 → DNS设置
- 或在虚拟机设置中:虚拟机设置 → 网络适配器 → 自定义特定虚拟网络
全局DNS设置(影响所有虚拟机) VBoxManage modifyvm "VM名称" --natdnsproxy1 on VBoxManage modifyvm "VM名称" --natdnshostresolver1 on 或使用主机解析器 VBoxManage modifyvm "VM名称" --natdnshostresolver1 on
查看虚拟交换机 Get-VMSwitch 设置DNS(通过虚拟机内部配置) Set-VMNetworkAdapter -VMName "虚拟机名称" -DnsSuffix "example.com"
<!-- 在虚拟机XML配置中添加 -->
<domain>
...
<devices>
<interface type='network'>
<source network='default'/>
<model type='virtio'/>
</interface>
</devices>
</domain>
然后配置虚拟机内部DNS三、云平台虚拟机
编辑DHCP选项集或直接在实例内修改 sudo vi /etc/dhcp/dhclient.conf 添加 supersede domain-name-servers 8.8.8.8, 8.8.4.4;
通过cloud-init配置 创建cloud-init.txt文件 cat > cloud-init.txt << EOF #cloud-config bootcmd: - echo "nameserver 8.8.8.8" > /etc/resolv.conf EOF
编辑实例元数据或使用gcloud命令 gcloud compute instances add-metadata [INSTANCE_NAME] \ --metadata=dns-server=8.8.8.8
四、容器环境
运行容器时指定DNS
docker run --dns 8.8.8.8 --dns 8.8.4.4 ubuntu
修改Docker守护进程配置
编辑/etc/docker/daemon.json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}五、常用DNS服务器地址
公共DNS Google: 8.8.8.8, 8.8.4.4 Cloudflare: 1.1.1.1, 1.0.0.1 阿里云: 223.5.5.5, 223.6.6.6 腾讯云: 119.29.29.29 企业内部DNS 根据实际情况配置
六、验证配置
Linux/Mac nslookup google.com dig google.com cat /etc/resolv.conf Windows nslookup google.com ipconfig /all
七、故障排查
1、检查网络连接
2、验证DNS服务器可达性
3、检查防火墙设置
4、查看系统日志
- Linux:journalctl -u systemd-resolved
- Windows: 事件查看器
注意事项
1、配置持久性:某些修改方法重启后失效,建议使用系统推荐的方式
2、网络模式:虚拟机网络模式(NAT/桥接/仅主机)会影响DNS解析
3、DNS缓存:修改后可能需要清除DNS缓存
- Windows:ipconfig /flushdns
- Linux:systemd-resolve --flush-caches
根据你的具体需求选择合适的方式进行配置。
文章摘自:https://idc.huochengrm.cn/dns/23317.html
评论
毓冷雪
回复虚拟机的DNS配置文件通常位于网络配置文件中,可以通过编辑该文件来设置虚拟机所使用的 DNS 服务器地址。
尚轩
回复虚拟机DNS配置方法多样,包括操作系统内部配置、虚拟化平台配置、云平台配置等,具体操作需根据平台和系统类型选择相应方法。