SSH隧道帮助自闭服务器借助主机的clash连接外网

Monday, July 15, 2024
本文共476字
1分钟阅读时长

⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/posts/ssh%E9%9A%A7%E9%81%93%E5%B8%AE%E5%8A%A9%E8%87%AA%E9%97%AD%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%80%9F%E5%8A%A9%E4%B8%BB%E6%9C%BA%E7%9A%84clash%E8%BF%9E%E6%8E%A5%E5%A4%96%E7%BD%91/。商业转载请联系作者获得授权,非商业转载请注明出处!

引言

众所周知,当服务器连接不了外网的时候,下载各种资源都会极其麻烦,有一些服务器自闭到git,pip都有百分之七八十的报错率

这种糟糕的体验在你的用户没有sudo权限,无法下载新应用的时候达到了高潮。这时候就只能依托于一些自带的软件访问外网了,比如SSH(不要说没有SSH…)

本方法的核心是端口转发,让服务器的一个端口的消息转发到主机的clash绑定的端口上,从而服务器的那个端口就变成了它简洁的VPN。相当于这里是进行了一次中介。

方法

首先你的主机要保持clash的连接

开一个新的终端,输入以下命令,不要退出终端:

# user_name是远程服务器用户名
# remote_host是远程服务器IP
# 这里将服务器的1080端口映射到主机的7897端口
# -N表示不产生交互式会话,你如果想直接使用这个连接进行交互也可以去掉
# -R代表反向连接
ssh -N -R 1080:127.0.0.1:7897 user_name@remote_host

然后新开另一个ssh链接,用vscode和pycharm的终端也可以

导入环境变量

# 设置
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080
# 取消
unset http_proxy
unset https_proxy

然后就可以连接了

git可能需要特殊设置

# 设置
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
# 取消
git config --global --unset http.proxy
git config --global --unset https.proxy