一大早赶去上第一节课, 想起好像很久都没有升级过手机上的 LineageOS 了, 可以刷一波。 于是拿起手机打开 Termux, 像往常一样 ssh 回寝室电脑, 输入 systemctl start [email protected]
, 按下回车输入密码, 连上教育网准备更新 aosp 镜像和 linea……
喵喵喵? 怎么 ssh 突然卡死了?
原因
还以为自己断网了。
半天才反应过来是 OpenVPN 加了一条 0.0.0.0/1
的路由, 把几乎所有流量转发到了 OpenVPN Server, 当然也包括到我手机 IP 的流量, ssh 自然也就断了。
那还能怎么办呢?
想起寝室里还有个路由器是不受电脑上运行的 OpenVPN 影响的。 然后电脑上还有一个对路由器以及路由器子网的路由, 所以估计能从路由器连回去。
试了试 ssh route
, 果然连上了路由器, 也能从路由器 ping 通电脑。 但是路由器上并没有连上电脑所需的私钥, 还得想想办法才能连上去。
解决
ssh 本身也有代理功能, 先使用 ssh 建立一个到寝室路由器的 socks5 代理。
ssh -N -D 127.0.0.1:23333 route
打开另一个终端, ssh 虽然不直接提供通过代理连接的命令行选项。 但可以在 -o
选项中指定 ProxyCommand
, 指定一个支持代理的软件进行连接, nc 就是个不错的选择。
然后就可以通过刚刚建立的 socks5 代理连回寝室电脑了!
ssh dorm -o "ProxyCommand nc --proxy 127.0.0.1:23333 --proxy-type socks5 %h %p"
又看到了熟悉的 prompt, 长舒一口气……
然后呢?
当然是给自己加条路由啦 😂。