【服务器使用和管理心得系列】(1) 代理
前言:在深度学习不同领域的探索中,服务器往往能满足我们对算力的要求。在这几年里使用服务器的过程中,从最早上手使用,到后来安装配置和管理,我踩过无数的坑。这个系列就是记录下我的一些心得,以供复习,也为广大服务器使用者们提供一种可能的使用/配置/管理方法。
注意:本系列已验证过的实操环境是 ubuntu20.04LTS/22.04LTS,其他版本或操作系统或许有不一样的地方。

介绍
在深度学习工作流中,不管是环境的安装(pip,conda)、版本的管理(github)还是与开源模型网站的交互(huggingface)等,绕不开的就是代理问题。这个问题一度困扰了我很久。
最早我们的解法是使用linux 版的 v2ray/clash,其中 clash 尝试了很多中版本,大多是类似 clash-for-linux 的版本。后来考虑到普通用户并不应该拥有 sudo 权限,我们又改用了 clash-for-linux-without-sudo 的一个版本。但服务器网络环境不好调试、对于普通用户而言配置安装难度大等特性使得这些方案一直不是很好的解法。
最近才发现的一个简易、稳定且好调试的方法给我的管理和使用都带来了极大的便利。其实这个方法在很多成熟的管理方案里很常见,其简单、稳定、安全且好调试的特性让代理这件事情不再带来困扰。这里予以记录和分享。
思路很简单:利用 SSH 进行代理转发,把终端机上的代理转发到服务器上。这样做的好处在于,首先不需要在服务器上直接配置代理软件,一定程度保证了服务器的安全;且调试、更换节点方便,直接在终端机上进行操作和测试;服务器代理状态和终端机代理状态一致,稳定性强。
操作方法
这里给出最简单也最安全的操作方法(此方法不区分普通用户和超级用户,因为不需要使用到 sudo 提权相关的命令)
转发
首先确定本地终端机使用的代理端口,根据每个人的代理软件而不同。对于 clash 一般是 7890 等,以7890 端口为例:
在使用 ssh与服务器建立连接的时候使用如下命令:
1 | ssh -R 7890:localhost:7891 username@remote_server |
这里的-R 表示将服务器上的 7891 端口转发到本地终端机的 7890 端口。相反,如果你希望本地机使用服务器上的端口,可以使用-L 的参数。一般情况下我们使用-R 命令就可以了。
在一些终端软件中也有类似的设置,比如我使用的终端tabby,在配置服务器连接的时候有显式的端口转发预设,直接使用也可以。
值得注意的是,对于服务器端来说,选择端口之前需要确认这个端口没有被使用,否则转发会失败。
应用代理
在转发了端口并建立连接了以后,首先可以测试这个代理是否可用
1 | curl -I -x http://127.0.0.1:7891 www.google.com |
如果显示 200ok 等字样,就说明可以使用了。
但为了方便我们使用,还是把代理写进环境变量。执行以下命令即可
1 | export http_proxy=http://127.0.0.1:7891 |
当然我喜欢把这个过程以函数的方式写进环境变量里,这样开关代理都方便
1 | # 以下内容写入 .bashrc 或.zshrc中 |
应用环境变量后以后每次进行代理只需要proxy_on 7891即可,关闭代理proxy_off
测试
使用如下命令可以实现每一秒检测一次当前ip
1 | watch -n 1 curl -s https://ifconfig.me |
在终端机上切换代理节点,可以看到稍微有点延迟之后,服务器上的ip会跟着发生变化。
注意
这个端口转发行为的生命周期和当前连接统一,也就是说转发行为会随着连接断开而断开,这一点是科学且安全的,你也不希望你的代理被别人白白的跑吧orz。
当然如果你想分享你的代理也很简单,对于端口来说是不分用户的,所有用户都可以监听到你转发的这个端口,直接把这个端口分享给别人就行。如果你不想被别人使用,建议把端口号设置的一般一点,不要让它看起来这么像代理OwO。
如果你希望端口转发行为不随着这个会话的消亡而消亡,在 ssh 的时候可以加入-f 的参数,这会把 ssh 放到服务器后台,要取消转发的话只能杀掉这个 ssh 进程。
在日常的使用中,随用随开就是很好的选择。
- Title: 【服务器使用和管理心得系列】(1) 代理
- Author: Chandery
- Created at : 2026-04-14 07:52:21
- Updated at : 2026-04-14 09:24:19
- Link: https://blog.chandery.org/2026/04/14/服务器使用和管理心得系列-1-代理/
- License: This work is licensed under CC BY-NC-SA 4.0.