用 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 下载:
转载注意标注出处:
转自Cold_Chair的博客+原博客地址