问题

在使用的时候,本地上传文件到 GitHub 中,但出现了连接超时问题,这里检查了 22 端口,显示了端口被屏蔽

bash
1
2
3
4
# 访问
ssh -T git@github.com
# 异常
ssh: connect to host github.com port 22: Connection timed out

分析

ping 访问 GitHub 的是直接连接超时的,但使用了 代理还是无法正常访问,但在用浏览器访问时是正常的,这里使用了其他的网络流量,上传文件成功了,这里经过测试,确认了是 GitHub 的 IP 是彻底的被前面使用的网络流量屏蔽了现在的 GitHub 的主机 IP。

问题

使用 ssh -vT git@github.com 查询日志:

bash
1
2
3
4
OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2
debug1: Connecting to github.com [20.205.243.166] port 22.
debug1: connect to address 20.205.243.166 port 22: Connection timed out
ssh: connect to host github.com port 22: Connection timed out

可以确定的是 GitHub 的 IP 地址是 20.205.243.166,可以确认 IP 是正常的,但 22 的端口是无法正常访问使用,可以确认我的电脑使用 GitHub 的 IP 端口被运营商劫持了。

解决

去网络上查了很多资料,大部分都是更改 22 端口为 443 的端口,这里尝试了一下,虽然能正常访问了,但无法正常向 GitHub 上传文件,这里根据网上的教程在 C:\Users\用户名\.ssh 创建一个 config 文件,内容如下:

Code
1
2
3
Host github.com
Hostname ssh.github.com
Port 22
  1. ssh.github.com 能正常使用,为什么要改端口呢?所以这里就直接把 Posrt 改为 22 的端口,也可以直接使用 ssh.github.comIP

  2. ipconfig /flushdns 刷新 DNS 缓存。

  3. ssh -T git@github.com 远程连接检查。

ssh.github.comgithub.com 使用的 IP 是不一样的,可以 ping 获取。