SSH 反向隧道:快速解决服务器网络限制
当服务器因网络限制无法使用 pip
, git
, curl
等工具时,可使用 SSH 反向隧道将其网络流量通过你的个人电脑进行代理。
原理
在有外网的个人电脑上运行一个代理服务,然后建立一条 SSH 反向隧道,将服务器的某个端口(如 1080
)转发到个人电脑的代理端口。服务器上的程序通过访问自己的 127.0.0.1:1080
端口,流量就会经由你的个人电脑访问互联网。
操作步骤
第 1 步: 个人主机 - 启动代理
首先,让你的个人电脑具备代理功能。
安装
Bashproxy.py
:pip install proxy.py
启动代理服务 (此终端需保持运行):
Bashproxy --hostname 127.0.0.1 --port 8888
看到
Listening on 127.0.0.1:8888
即成功。
第 2 步: 个人主机 - 建立隧道
打开一个新终端,运行 SSH 命令建立隧道。
Bash
ssh -f -N -R 1080:127.0.0.1:8888 user@your-server-ip
-R 1080:127.0.0.1:8888
: 核心参数。将服务器的1080
端口流量,转发到本机的8888
端口。-f
: 后台运行。-N
: 只建立端口转发,不执行命令。
输入密码后,隧道即在后台建立。
第 3 步: 服务器 - 配置并使用代理
登录服务器。
设置代理环境变量:
Bashexport ALL_PROXY="http://127.0.0.1:1080" # 或者分别设置 # export http_proxy="http://127.0.0.1:1080" # export https_proxy="http://127.0.0.1:1080"
验证代理:
Bashcurl https://www.google.com
如能返回内容,说明代理成功。
执行你的命令:
Bashuv pip install vllm
要点
操作期间,第 1 步和第 2 步的两个终端窗口不能关闭。
使用完毕后,关闭个人主机上的终端,并在服务器上取消代理设置以恢复原状:
Bashunset ALL_PROXY # unset http_proxy # unset https_proxy