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

树莓派项目连接GitHub报443端口超时,求技术解决方案

解决树莓派GitHub连接443超时的可行方案

我之前在树莓派上维护项目时也碰到过几乎一模一样的问题,折腾了好一阵才找到可行的解决办法,给你几个亲测有效的排查和修复方向:

  • 先排查基础网络连通性
    先确认是DNS解析问题还是路由/端口阻塞:

    • 运行 ping github.com,如果返回超时但能ping通GitHub的IP(比如140.82.113.4),说明是DNS解析故障。可以临时修改DNS:编辑 /etc/resolv.conf,添加 nameserver 8.8.8.8nameserver 1.1.1.1,也可以通过 raspi-config 的网络设置永久更换DNS。
    • 运行 telnet github.com 443,如果提示无法连接,试试 traceroute github.com 追踪路由,看在哪一段出现丢包,判断是本地网络还是ISP的路由问题。
  • 手动绑定GitHub的Hosts
    有时候ISP的DNS会解析到错误的GitHub IP,导致连接超时。可以手动获取GitHub的真实IP并绑定:

    1. dig github.comnslookup github.com 获取最新的GitHub官方IP(优先选美国以外的节点可能更稳定)。
    2. 编辑 /etc/hosts,添加类似以下内容:
      140.82.113.4 github.com
      140.82.114.20 api.github.com
      
    3. 保存后再尝试git操作,看是否恢复正常。
  • 检查Git的代理配置(别忽略!)
    哪怕你没主动设置过代理,也可能因为误操作、脚本修改等导致Git被配置了无效代理:

    • 运行 git config --global --get http.proxygit config --global --get https.proxy,如果返回非空值,说明有代理配置。
    • 用以下命令清除:
      git config --global --unset http.proxy
      git config --global --unset https.proxy
      
  • 验证系统时间同步
    SSL证书验证对系统时间要求很高,如果树莓派的时间偏差过大,会导致HTTPS连接失败:

    • 运行 date 查看当前系统时间,若和实际时间差超过10分钟,就需要同步:
      sudo timedatectl set-ntp true
      

    等待几分钟后再检查时间,然后重试git操作。

  • 临时切换HTTP协议测试
    如果以上方法都不行,可以临时把远程仓库地址从HTTPS换成HTTP来验证是否是HTTPS层面的问题:

    git remote set-url origin http://github.com/你的用户名/你的仓库名.git
    

    不过这只是临时测试,解决问题后建议换回HTTPS保证安全性。

  • 换网络环境排查
    连接手机热点试试,如果能正常访问GitHub,说明是本地网络ISP的问题,可以尝试重置路由器,或者联系ISP反馈路由故障。

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

火山引擎 最新活动