基于 SSH 反向端口转发的服务器联网代理
349 字
2 分钟
基于 SSH 反向端口转发的服务器联网代理
需求描述
当前服务器本身无法直接访问互联网,但存在稳定的联网下载需求,主要包括以下两类场景:
- 使用
apt更新系统源、安装系统依赖; - 使用
uv安装 Python、安装项目依赖。
本机具备可用的代理环境,代理软件为 Clash Verge,代理端口为 7897 。因此目标是让服务器通过 SSH 隧道复用本机的代理出口访问互联网。
解决方案
整体流程
服务器 apt / uv ↓服务器 127.0.0.1:7897 ↓SSH 反向端口转发 ↓本机 Clash Verge 127.0.0.1:7897 ↓互联网建立 SSH 反向端口转发
在本机执行以下命令:
ssh -R 127.0.0.1:7897:127.0.0.1:7897 \ user@server_ip执行 expect 脚本:
#!/usr/bin/expect -f
set timeout -1
set SSH_USER "root"set HOST "10.130.10.166"set PORT "30412"set PASSWORD ""
spawn ssh \ -p $PORT \ -R 127.0.0.1:7897:127.0.0.1:7897 \ $SSH_USER@$HOST
expect { "*yes/no*" { send -- "yes\r" exp_continue } -re {.*assword.*} { send -- "$PASSWORD\r" }}
interact测试代理链路
建立隧道后,在服务器上测试代理是否可用:
curl -I -x http://127.0.0.1:7897 https://pypi.org配置 apt 代理
在服务器上创建或覆盖 apt 代理配置:
sudo tee /etc/apt/apt.conf.d/95proxy > /dev/null <<'EOF'Acquire::http::Proxy "http://127.0.0.1:7897";Acquire::https::Proxy "http://127.0.0.1:7897";EOF然后执行:
sudo apt update配置 uv 代理
uv 可以直接使用环境变量中的 HTTP/HTTPS 代理配置。建议写入服务器的 /etc/environment :
cat >> ~/.bashrc <<'EOF'
export HTTP_PROXY=http://127.0.0.1:7897export HTTPS_PROXY=http://127.0.0.1:7897export ALL_PROXY=http://127.0.0.1:7897export NO_PROXY=localhost,127.0.0.1,::1EOF然后执行
source ~/.bashrc文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
基于 SSH 反向端口转发的服务器联网代理
https://blog.elephantgris.space/posts/1512e01217fe64c7/相关文章智能推荐
1
Obsidian Kanban Bases View 卡片排序功能开发
开发Kanban Bases View 的拖动顺序只能隐式保存,无法写入笔记或供其他视图复用;新增可选 Card order 属性,按序号排序并在同列、跨列拖动后回写连续序号。
2
Firefly 文章 slug 自动生成功能开发
开发文章 slug 依赖标题拼音,标题变化后链接容易失配;新增随机 slug 模式,在开发阶段自动补全缺失值,并在新建文章时生成并校验唯一 slug。
3
Codex TRACE 日志写盘问题修复
开发Codex 桌面端持续写入大量 TRACE 日志,造成 SQLite WAL 频繁写盘;通过 BEFORE INSERT 触发器忽略 TRACE,保留其他级别日志并支持回滚。
4
Firefly 头像组件圆形旋转效果功能开发
开发侧边栏头像原为静态方形,缺少悬停反馈;通过正方形约束和圆形裁切统一外观,并为内部图片添加悬停旋转与移出归位动画。
5
Firefly Footer 组件页面置底布局功能开发
开发短页面的 Footer 会紧跟正文而无法贴近视口底部;通过逐层继承最小高度、调整响应式 Grid 行结构并恢复移动端 Grid 布局,使 Footer 在短页面置底、长页面随内容延伸。
随机文章随机推荐


