一次“连镜像都被 RST”的 GitHub push 填坑笔记

环境
系统:Windows 10 + Git 2.42.0
网络:出租屋房东路由(普通宽带,无内网域名)
工具:***(仅 HTTP 7890 端口,无 SOCKS5 7891)
仓库:github.com/xxx.git
现象
git push 报

OpenSSL SSL_connect: Connection was reset in connection to github.com:443

curl 走代理 200 正常,说明 *** 隧道通,但 TLS 握手被随机 RST。
换 hub.fastgit.org 镜像同样 RST → 证明出口 IP 本身被 QoS/污染。
排查时间线
① 确认 Git 代理

git config --global http.proxy  http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

② 验证代理端口

curl -I https://github.com --proxy http://127.0.0.1:7890

显示

→ HTTP/1.1 200 Connection established

③ 尝试 SOCKS5 发现 *** 未开 7891 → 回退 HTTP
④ 换订阅/节点依旧 RST → 确认不是单节点问题
⑤ 改 SSH over 443(终极方案)
新建/修改 ~/.ssh/config

Host github.com
HostName ssh.github.com
Port 443
User git

显示公钥并复制

cat ~/.ssh/id_rsa.pub

登录GitHub
点击右上角头像 → Settings
左侧选择 SSH and GPG keys
点击 New SSH key
粘贴公钥内容
远程地址改为

ssh://git@ssh.github.com:443/xxx.git

测试SSH over 443连接

ssh -T git@github.com → 出现 “Hi guchen66!”
git push -u origin master → 秒推成功
结论
当「代理隧道通却反复 RST」时,再换节点已无意义;
SSH 443 是 GitHub 官方中继,几乎不被 RST,可当作最后逃生通道;
整个过程零重装、零换机,仅改 SSH config 与 remote URL 即可

记录

想走 SSH(443 端口)

git remote set-url origin ssh://git@ssh.github.com:443/user/repo.git

想走 HTTP(需代理)

git remote set-url origin https://github.com/user/repo.git

.ssh/config 里的 Port 443 只对 SSH 生效,当你用 HTTPS 地址时,Git 根本不会读这个文件,

本地 .ssh/config 的影响范围

地址以 ssh:// 或 git@ 开头 → 由 .ssh/config 接管(端口、密钥、用户名)。
地址以 https:// 开头 → 完全跳过 .ssh/config,只看 http.proxy / https.proxy。

如果github突然上不去

Windows PowerShell 管理员权限执行:
注意:中文系统用 "以太网" / "WLAN",英文系统用 "Ethernet" / "Wi-Fi"。
改完立刻刷新 DNS,再开浏览器试 GitHub

netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip set dns "WLAN" static 8.8.8.8
ipconfig /flushdns

使用bat命令打开host

@echo off
explorer %windir%\System32\drivers\etc

管理员权限修改

140.82.113.4  github.com
140.82.114.36 ssh.github.com

以后想改回来

当前 WLAN(无线网卡)的 DNS 服务器地址恢复成“自动获取”

netsh interface ip set dns "WLAN" dhcp

是Google 公共 DNS(8.8.8.8)是什么

Google 在全球任播节点提供的免费域名解析服务
特点:
– 响应快(国内虽绕路,但缓存大、命中高)
– 不劫持、不插入广告
– 支持 DNS-over-HTTPS(DoH)和 DNSSEC
地址:
– 主:8.8.8.8
– 备:8.8.4.4
– IPv6:2001:4860:4860::8888

什么时候一定要改回自动 DNS

车间/公司里有 .local / .corp / .mes 这类内网域名——它们只能由车间 DNS 解析
某些 MES、PLC 网关、打印机 Web 管理页用 “短名字”(如 http://scada1)——也依赖内网 DNS;
发现 ping 内网机器名不通,但 ping IP 正常 → 立刻改回 DHCP 让网卡拿回车间 DNS。

posted @ 2025-09-09 03:43  孤沉  阅读(48)  评论(0)    收藏  举报