在使用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 | cd ~/.ssh |
理论上存在文件:id_rsa
, id_rsa.pun
, known_hosts
如果没有就去重新配置。
进入vim
编辑并新建config
文件:
1 | vim config |
随后复制下面的内容:
1 | Host github.com |
当然,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 | 正在 Ping github.com [13.229.188.59] 具有 32 字节的数据: |
说明确实无法连接到github.com,尝试修改DNS。
首先登陆站长工具网站获取DNS,并在本地尝试ping这个地址,若可以连接且速度还行,将其写入host文件中。
host文件一般位于 C:Windows\System32\drivers\etc文件夹下。
在host文件末尾加入代码(DNS为XXX):
1 | XXX github.com |
配置完成后保存,按win+R,输入cmd打开命令行,输入:
1 | ipconfig /flushdns |
再次尝试是否成功。
参考网页
hexo init 403超时报错 - 简书 (jianshu.com)
git上传代码报错ssh: connect to host github.com port 22: Connection timed out解决办法小乐7的博客-CSDN博客