You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu Server VirtualBox克隆GitHub仓库时遇无法解析主机错误,如何解决?

解决Ubuntu Server(VirtualBox)中git clone无法解析github.com的问题

这个错误fatal: unable to access '...': Could not resolve host: github.com本质是DNS解析失败或虚拟机网络配置异常,以下是针对性的排查和修复步骤:

1. 定位问题根源

  • 测试基础网络连通性:执行ping 8.8.8.8,如果能收到响应,说明虚拟机网络链路正常,问题出在DNS解析;如果ping不通,优先排查VirtualBox网络设置。
  • 测试DNS解析:执行ping github.com,如果提示unknown host,可确认是DNS配置问题。

2. 修复DNS配置

临时生效方案

编辑/etc/resolv.conf添加公共DNS:

sudo nano /etc/resolv.conf

在文件中添加:

nameserver 8.8.8.8
nameserver 8.8.4.4

保存退出后,再次执行ping github.com验证解析是否正常,正常后再尝试git clone。

永久生效方案(针对systemd-resolved环境)

如果Ubuntu Server使用systemd-resolved服务,/etc/resolv.conf通常是软链接,需修改服务配置:

sudo nano /etc/systemd/resolved.conf

取消DNS行的注释,修改为:

DNS=8.8.8.8 8.8.4.4

保存后重启服务:

sudo systemctl restart systemd-resolved

3. 检查VirtualBox网络设置

  • 确认虚拟机网络适配器模式:推荐使用NAT或桥接适配器。NAT模式下VirtualBox会自动转发主机网络;桥接模式下虚拟机会获取与主机同网段的IP。
  • 检查虚拟机IP配置:执行ip addr,确认网卡有有效的IPv4地址(如192.168.x.x),如果没有,执行sudo dhclient重新获取IP。

4. 排查sudo环境变量问题

有时候sudo会重置环境变量,导致DNS配置在sudo上下文不生效:

  • 尝试保留当前用户环境变量执行clone:
sudo -E git clone https://github.com/username/repositoryname.git
  • 如果需要永久保留sudo的DNS环境,编辑sudoers文件(必须用visudo避免语法错误):
sudo visudo

找到Defaults env_keep行,添加DNS相关变量:

Defaults env_keep += "RESOLV_CONF DNS_NAMESERVERS"

保存退出后生效。

5. 其他排查点

  • 检查防火墙:执行sudo ufw status,如果防火墙开启,确保允许出站的DNS(UDP 53端口)和HTTPS(TCP 443端口)流量。
  • 验证主机网络:确认宿主机能正常访问github.com,如果宿主机也无法访问,先解决宿主机的网络问题。

内容的提问来源于stack exchange,提问作者SeniorBear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:15:31