M1 小火箭可以让终端也走代理,但是为啥 Git 推代码会 Connection closed

2022-02-09 17:47:49 +08:00
 john6lq

之前用 ClashX ,后来发现 ShadowRocket 可以直接在 M1 上用。

切到 ShadowRocket 用了一段时间后,今天推代码突然不行了,url 是 ssh 。

kex_exchange_identification: Connection closed by remote host
Connection closed by 240.0.0.30 port 22
fatal: 无法读取远程仓库。

关了代理马上就可以;

然后我测试在 Shell 中ping www.google.com居然直接能 ping 通。

猜测 ShadowRocket 把 ssh 的验证请求也代理了,然后被服务器拒绝了。

所以问题是:

  1. 为啥 ClashX 不能代理终端?
  2. 为啥 Git 推代码会被拒绝?
  3. 为啥我之前没发现这个问题,难道跟节点有关系?
5361 次点击
所在节点    macOS
16 条回复
foolnius
2022-02-09 17:54:19 +08:00
1. ClashX 可以“复制终端代理命令”,在菜单里面
2 和 3.建议看一看代理日志排查一下
Hyseen
2022-02-09 18:07:53 +08:00
之前遇到过同样的问题,某些节点使用 ssh 22 端口 push 代码会被拒绝
解决方案就是用 Github 的 443 端口
https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
zhaidoudou123
2022-02-09 18:08:02 +08:00
m1 运行 iOS 的代理程序后,相当于在系统创建了一个 vpn ,等级很高
ClashX 不知道有没有增强模式这个说法,按你的描述此时他只是作为一个代理程序在运行
dcsuibian
2022-02-09 18:08:18 +08:00
如#1 所说,ClashX 可以复制终端代理命令,默认想走代理的话改一下.zshrc 就好。

为什么你能 ping 通 Google ?按我的经验,ssr 应该都是应用层代理,ping 应该不起效的,一般用 curl 测试,小火箭难道还有类似于 proxifier 的功能?
dcsuibian
2022-02-09 18:09:51 +08:00
@zhaidoudou123 我刚编辑完就看到你的回答了😅
john6lq
2022-02-09 18:58:57 +08:00
@foolnius 代理命令这个我知道,只是好奇小火箭居然不用配置就能代理。
@Hyseen 感谢,明天试试
@zhaidoudou123 一直对这个不太了解,晚上回去看看,感谢。
@dcsuibian 确实可以 ping 通,很神奇,哈哈。
darrh00
2022-02-09 20:14:09 +08:00
看这 240.0.0.30 肯定是类似 fakedns ( https://www.v2fly.org/config/fakedns.html ) 的东西,
所以你 ping www.google.com 也是 ping 的 fakeip, 跟 ping 本机 localhost 是一个效果。
mieq
2022-02-09 22:49:03 +08:00
小火箭不只用代理接管,还用 tun 接管,所谓的增强模式
iroywang
2022-02-10 10:04:33 +08:00
试一下 clashx pro 的增强模式吧
Mitt
2022-02-10 14:44:10 +08:00
大概率你的代理节点服务商为了防止滥用把 22 出口端口屏蔽了,所以全局代理就连不上了,你可以试试 ssh 其他服务器,理论上都会被拒绝,其他端口则无事
john6lq
2022-02-11 14:21:30 +08:00
@Mitt 的确是这个问题,已经用二楼的方式搞定了。
cco
2022-02-17 18:36:10 +08:00
clashx pro 有个小问题就是 如果局域网配置了 host ,它就无法访问。 例如 www.baidu.com 10.10.10.10 此时 访问 www.baidu.com 就不行,换 ssr 就可以。
smplesugar
2022-05-05 16:58:42 +08:00
@cco 还真的是。就是本地 host 上配了 github 的地址 导致无法访问 感谢
cco
2022-05-06 09:05:55 +08:00
@smplesugar 对于 clashx pro 的解决方法是:
修改~/.config/clash/proxyIgnoreList.plist
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>10.0.0.0/8</string>
<string>172.16.0.0/12</string>
<string>127.0.0.1</string>
<string>localhost</string>
<string>*.local</string>
<string>*.crashlytics.com</string>
<!-- 上面的不能删掉 -->
<string>*.baidu.com</string>
<string>*.irc.com</string>
</array>
</plist>
```
没有的话就创建,这个官方 readme 中有提到。
smplesugar
2022-05-06 09:39:41 +08:00
@cco get 谢谢
BUGer
2023-12-16 13:52:17 +08:00
可以试试 ssh 使用 443 端口

在 ~/.ssh/config 配置:

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

然后正常 clone 、pull 都可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/832742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX