什么是SSH 443端口改造及配置方法

2 人参与

说起SSH 443端口改造,我第一次遇到GitHub推送失败的时候,差点以为自己的电脑坏了。报错信息一堆,什么“Connection timed out”、“early EOF”,看得我头皮发麻。后来查了一圈才发现,罪魁祸首是国内网络环境下22端口经常被运营商搞鬼——不是完全封死,就是随机丢包,尤其是晚上高峰期,推个代码跟玩俄罗斯轮盘似的。

什么是SSH 443端口改造及配置方法

那这个443端口改造到底是啥?

说白了,就是把Git连接GitHub时用的SSH默认端口从22改成443。443端口是HTTPS用的,运营商一般不敢拦,毕竟全网都在用。所以改完以后,你的SSH连接就像开了一条VIP通道,稳定性直线上升。配置方法其实特别简单,只需要在SSH配置文件里加几行:

Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    ServerAliveInterval 10
    ServerAliveCountMax 3
    StrictHostKeyChecking no

把这段贴到~/.ssh/config(Windows是C:Users你的用户名.sshconfig),保存后跑一句ssh -T git@github.com,能收到成功认证信息就搞定了。之后所有git pushgit clone都会自动走443端口,再也不用担心被运营商卡脖子。

我踩过的坑

第一次配置的时候,我忘了加StrictHostKeyChecking no,结果第一次连接弹了个密钥确认提示,我当时在终端里没注意,直接超时了。所以建议直接加上,省得麻烦。另外,这个配置只影响SSH协议,如果你平时用的HTTPS协议,那就得改URL或者设代理了。不过我个人强烈推荐用SSH,免密登录一次配好,后续体验好太多。

小贴士

如果改完端口还是偶尔失败,可以再配合调整一下Git的底层参数。比如设置更大的缓存区:

git config --global http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

这两招组合起来,基本能解决99%的国内GitHub连接问题。我用了半年多,再也没见过那个烦人的“RPC failed”。如果你也开代理,记得别同时再配Git代理,否则可能端口冲突,反而更慢。保持SSH 443和系统代理的默认组合,稳如老狗。

参与讨论

2 条评论
  • 的头像
    死性不改

    感觉写得很接地气,那个俄罗斯轮盘比喻笑死我了。

  • 的头像
    白牡丹绽

    之前被22端口搞疯过,改了443确实稳多了,推荐大家试试。