上一版的服务器内命令行代理办法仍然有效,但是由于该软件使用的 Clash 内核在 23 年因不可抗力停止更新维护,导致现阶段较新的代理协议不受支持。
此外,由于许多代理软件较为依赖 Linux 的图形化界面,在服务器上部署不便。因此,本文提供了一个简洁的、将本地电脑作为访问外部网站跳板的操作手册,希望对广大服务器用户、学术研究者有帮助。

使用 SSH 软件进行代理

需要配备的软件

PS: 如果不想下载 Termius,请参考后文的 “使用终端进行代理” 章节。

操作步骤

本地代理设置

在本地电脑中打开 Clash Verge Rev,确保打开系统代理,允许局域网连接,并记下端口设置中的端口号(此处示例为 7897,后面会用到)。

配置 Termius 端口转发

在本地电脑中打开 Termius,点击左侧的 Port Forwarding,随后选择 New Forwarding 来新建一个端口转发。

在右侧的配置栏中,选用 Remote,用于将远程的端口在本地转发,随后点击 Continue

选择需要转发的 Host 主机,然后参照下图填写信息,填写完毕后点击 Done 保存。

  • Remote port number: 填写和之前查询到的端口 7897 一样的端口号,以免混淆。
  • Destination address: 填写 localhost,即 127.0.0.1,表示通过本地机器转发。
  • Destination port number: 填写之前查询到的端口 7897,因为这个端口开启了代理。
  • Label: 填写方便自己记忆的一个标签。

启动端口转发

保存后,列表中会新增一个配置。双击该图标,当该图标变蓝时,端口转发已开启。

测试连接(未开启代理时)

登录服务器,尝试访问 Hugging Face,此时通常是无法连接的。

curl -vI https://huggingface.co
# 结果:Connection failed / Network is unreachable

开启代理并验证

在服务器终端输入以下命令,将 HTTP/HTTPS 流量指向刚才配置的转发端口(7897):

export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897

再次尝试访问,即可成功!

curl -vI https://huggingface.co
# 结果:HTTP/1.1 200 Connection established

使用终端进行代理

需要配备的软件

操作步骤

本地代理设置

同样需要在本地电脑打开 Clash Verge Rev,开启 系统代理局域网连接,确认端口号(例如 7897)。

SSH 远程转发连接

打开本地终端,使用 ssh -R 命令连接服务器。这会将服务器的 7897 端口流量转发回本地的 7897 端口。

# 语法格式:ssh -R 远程端口:127.0.0.1:本地端口 用户名@服务器IP -p SSH端口
ssh -R 7897:127.0.0.1:7897 username@IP -p 22

开启代理

连接成功后,在服务器终端执行 export 命令:

export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897

测试访问即可成功。

注意事项

  1. 持久化设置:export 命令仅在当前终端窗口生效。
  • 方案一:写入 ~/.bashrc(对所有会话生效,不推荐,除非你一直开着隧道)。
  • 方案二(推荐):使用 tmuxscreen 新建一个专用窗口,只在该窗口内执行 export。需要下载模型或 pip 安装时,就来这个窗口操作。
  1. 多用户冲突:如果多人同时在同一台服务器上使用此方法且都绑定到 7897 端口,可能会冲突。如有冲突,可以更换服务器上的端口,保持本机端口不变。