用 SSH 给服务器网络加速

现在在服务器上,需要访问 github 或者 huggingface 这些资源,发现是上不去的。

那么需要给服务器挂梯子。

当然由于服务器没有 GUI,user 没有 root 权限,往往这是一件非常困难的事。

可以通过本地挂梯子,然后 SSH 反向代理来实现。

反向代理

反向代理就是在服务器上开一个端口,让这个端口把流量转发给本机的一个端口。

在 SSH 连接时,加入 -R 指令即可:

ssh -p <r> <username>@<server_ip> -R <server_port>:localhost:<local_port>

server_port 就是服务器上要转发流量的端口(7001〜8999之间,不要和已有的冲突即可)
local_port 就是本机梯子的端口(clash 一般是 7890)

注:用 clash 时一定要打开允许局域网

(我也不太清楚反向代理的原理,哎要是《网络原理》讲这些,而不是死背nt协议的就好了)

示例:

ssh -p 8000 hopen@mmlab -R 7890:localhost:7890

当然我们也可以改 .ssh/config 这个文件(这样 VScode 连接时方便)

Host gnode1
  HostName 0.0.0.0
  Port 8001
  User hdeng
  IdentityFile C:\Users\Cold_Chair\.ssh\id_rsa
  RemoteForward localhost:7890 localhost:7890

测试:

终端输入

curl -x localhost:7890 google.com

得到:

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

使用端口:

在终端里输入

export http_proxy=http://127.0.0.1:7890;
export https_proxy=http://127.0.0.1:7890;

这样服务器终端中运⾏的程序的所有HTTP、HTTPS流量都会由梯子转发。

此时我们测试一下 git clone,应该就没有问题了。

取消端口使用:

并不是所有下载都要用梯子,小心流量计费爆炸

unset http_proxy;
unset https_proxy;

可以用下面的指令看看:

echo $http_proxy;
echo $https_proxy;

google drive 下载:

https://zhuanlan.zhihu.com/p/614790111

posted @ 2024-03-03 18:40  Cold_Chair  阅读(794)  评论(0编辑  收藏  举报