You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Git仓库拉取失败:无法解析主机名问题求助

解决Git Pull与SSH连接GitHub失败的问题

看起来你遇到的是典型的域名解析失败问题——服务器没法识别github.com这个域名,导致SSH和Git命令都无法和GitHub建立连接。咱们一步步来排查解决:

1. 先验证基础网络连通性

首先确认服务器能不能正常解析GitHub的域名:

  • 执行以下命令测试域名解析:
    ping github.com
    
    如果输出类似unknown host github.com,那百分百是DNS配置的问题。

2. 修复DNS配置

临时修改DNS(立即生效,重启后失效)

  • 查看当前DNS配置:
    cat /etc/resolv.conf
    
  • 如果里面没有有效的DNS服务器(比如只有本地地址或者无效IP),编辑这个文件添加公共DNS:
    sudo nano /etc/resolv.conf
    
    添加以下两行:
    nameserver 8.8.8.8
    nameserver 1.1.1.1
    
    保存退出后,再重新执行ping github.com,如果能收到响应,说明DNS问题解决了。

持久化DNS配置(重启后依然有效)

不同系统的配置方式略有不同:

  • Ubuntu/Debian(用Netplan):编辑/etc/netplan下的配置文件(比如00-installer-config.yaml),添加DNS字段:
    network:
      ethernets:
        eth0:  # 替换成你的网卡名,可用`ip addr`查看
          dhcp4: true
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]
      version: 2
    
    然后执行sudo netplan apply生效。
  • CentOS/RHEL:编辑网卡配置文件(比如/etc/sysconfig/network-scripts/ifcfg-eth0),添加:
    DNS1=8.8.8.8
    DNS2=1.1.1.1
    
    重启网络服务:sudo systemctl restart network

3. 排查SSH配置问题

如果DNS没问题但SSH还是连不上,检查SSH的全局或用户配置:

  • 查看用户级SSH配置:
    cat ~/.ssh/config
    
  • 查看全局SSH配置:
    cat /etc/ssh/ssh_config
    

如果里面有针对github.comHost条目,确认HostName字段是github.com,没有拼写错误。如果有错误的配置,注释或删除后再测试ssh -T git@github.com

4. 检查防火墙与安全组

  • 服务器本地防火墙:如果用的是ufw,可以临时关闭测试:
    sudo ufw disable
    
    测试完记得重新开启:sudo ufw enable
    如果是iptables,可以临时清空规则测试:sudo iptables -F
  • 云服务器安全组:如果你用的是云服务商的服务器(比如AWS、阿里云),检查安全组规则是否允许出站的22端口(SSH)和443端口(HTTPS),这两个端口是连接GitHub必需的。

5. 其他可能的问题

  • 代理配置:如果服务器配置了HTTP/HTTPS代理,可能代理失效导致无法连接。可以临时取消代理测试:
    unset http_proxy
    unset https_proxy
    
  • Git远程协议切换:如果DNS修复后HTTPS拉取还是有问题,可以尝试切换成SSH协议:
    git remote set-url origin git@github.com:myco/myrepo
    
    前提是你已经在服务器上配置了GitHub的SSH密钥。

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

火山引擎 最新活动