Github连接超时处理方式

目录
  1. 检查Clash
  2. 检查ssh
  3. 修改连接方式
  4. 尝试修改代理
  5. 尝试修改DNS配置
  • 参考网页
  • TOC

    在使用Git连接GitHub的过程中,总是有各种各样的网络问题…得益于奇怪的生态环境,一次毫无问题的顺利的上传下载是十分困难的,即使能用浏览器打开GitHub,也防不住Git命令行卡在奇怪的地方。

    所谓“久病成医”,即使对于网络环境还不甚了解,将遇到过的有用的方法记录下来也是很有必要的。

    操作系统:win11 工具:Git

    检查Clash

    VPN工具clash有一个小问题,若上次关机时没有关闭clash,电脑刚打开时即使没有打开clash,也无法连入网络。因此,首先应该检查是否是因为clash没有正常关闭导致的,再次打开clash,并正确退出。

    再次尝试。

    检查ssh

    使用ssh命令检查ssh配置是否有问题:

    1
    $ ssh -T git@github.com

    若显示:

    1
    ssh: connect to host github.com port 22: Connection timed out

    说明ssh配置出现问题,此时有两种选择,一种是重新配置ssh,一种是直接修改现有ssh。

    重新配置ssh方法很简单,只是会留下一堆ssh文件,不易以后的区分,所以选择修改现有ssh。

    首先进入存放目录:

    1
    2
    $ cd ~/.ssh
    $ ls

    理论上存在文件:id_rsa , id_rsa.pun, known_hosts如果没有就去重新配置。

    进入vim编辑并新建config文件:

    1
    $ vim config

    随后复制下面的内容:

    1
    2
    3
    4
    5
    6
    Host github.com
    User YourEmail@XXX.com
    Hostname ssh.github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
    Port 443

    当然,YourEmail改成注册邮箱。

    esc退出vim的insert模式,然后输入:wq保存。

    再次回到Git仓库文件目录,执行:

    1
    $ ssh -T git@github.com

    出现提示,回答yes即可

    此时连接成功:

    1
    Hi DvJiang! You've successfully authenticated, but GitHub does not provide shell access.

    修改连接方式

    对于Git远程推送失败,显示连接超时,尝试使用ssh而不是https连接( 一般 ssh更稳定 ):

    删除原有远程仓库别名:

    1
    $ git remote rm repo

    进入Github相应仓库,拷贝其ssh地址XXX

    并在git上设置为新的仓库别名

    1
    $ git remote add repo XXX

    然后尝试拉取和推送。

    尝试修改代理

    在对Git进行拉取时,若还是遇到报错:

    1
    Failed to connect to github.com port 443 after 21068 ms: Timed out

    尝试修改代理:

    win+i进入win的设置界面,选择网络和Internet中的代理,打开自动检测设置,并关闭下面的两个脚本选项。

    再次尝试。

    若还是失败,在命令窗口输入:

    1
    $ git config --list

    查看是否有http.proxy内容,若有,删除它:

    1
    $ git config rm http.proxy

    再次尝试。

    注意,在使用VPN时,最好还原代理中的设置,否则可能无法登录。

    尝试修改DNS配置

    对于Hexo,难以修改ssh配置,若发现无法推送博客,先多试一下,可能是网络波动问题。

    若多次尝试未果,且错误端口为 443,可能判断被ban。

    通过ping查询:

    1
    $ ping github.com

    若出现(可能为英文):

    1
    2
    3
    4
    5
    6
    7
    8
    正在 Ping github.com [13.229.188.59] 具有 32 字节的数据:
    请求超时。
    请求超时。
    请求超时。
    请求超时。

    13.229.188.59 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

    说明确实无法连接到github.com,尝试修改DNS。

    首先登陆站长工具网站获取DNS,并在本地尝试ping这个地址,若可以连接且速度还行,将其写入host文件中。

    host文件一般位于 C:Windows\System32\drivers\etc文件夹下。

    在host文件末尾加入代码(DNS为XXX):

    1
    XXX github.com

    配置完成后保存,按win+R,输入cmd打开命令行,输入:

    1
    2
    3
    4
    5
    $ ipconfig /flushdns

    Windows IP 配置

    已成功刷新 DNS 解析缓存。

    再次尝试是否成功。


    参考网页

    hexo init 403超时报错 - 简书 (jianshu.com)

    git上传代码报错ssh: connect to host github.com port 22: Connection timed out解决办法小乐7的博客-CSDN博客

    git解决Failed to connect to github.com port 443 after 21068 ms: Timed out,不能推送到github仓库错误 - 今天的努力 - 博客园 (cnblogs.com)

    关于hexo d链接github的443超时问题 · 大专栏 (dazhuanlan.com)

    “github.com”A记录/cname检测结果–Dns查询|dns查询–站长工具 (chinaz.com)

    DAR
    SON