Windows 通过 SSH 反向隧道向 Ubuntu 转发代理

1. Ubuntu 开启 SSH

bash 复制代码
sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
systemctl status ssh
hostname -I

确认 SSH 状态为 active (running),记录 Ubuntu 的局域网 IP。若启用了 UFW:

bash 复制代码
sudo ufw allow ssh

2. Windows 连接 Ubuntu

在 Windows PowerShell 中执行:

powershell 复制代码
ssh Ubuntu用户名@Ubuntu_IP

例如:

powershell 复制代码
ssh jack@192.168.1.105

若连接失败,可检查 Ubuntu 的 SSH 端口:

bash 复制代码
sudo ss -tlnp | grep :22

并在 Windows 测试:

powershell 复制代码
Test-NetConnection 192.168.1.105 -Port 22

3. 建立 SSH 反向端口转发

假设 Windows 上的 HTTP 代理监听在 127.0.0.1:7890。在 Windows PowerShell 中执行:

powershell 复制代码
ssh -N -R 7890:127.0.0.1:7890 jack@192.168.1.105

保持该 SSH 窗口运行。隧道建立后,Ubuntu 上的 127.0.0.1:7890 会转发到 Windows 的 127.0.0.1:7890。

4. 在 Ubuntu 测试代理

bash 复制代码
curl -x http://127.0.0.1:7890 https://api.openai.com

也可以测试:

bash 复制代码
curl -x http://127.0.0.1:7890 https://www.google.com

5. Pi Coding Agent 使用代理

启动 Pi 时设置代理环境变量:

bash 复制代码
HTTPS_PROXY=http://127.0.0.1:7890 \
HTTP_PROXY=http://127.0.0.1:7890 \
pi

如果只希望某个 provider 使用代理,可在 provider 配置中指定 proxy:

json 复制代码
{
  "providers": [
    {
      "name": "overseas",
      "baseUrl": "https://api.example.com/v1",
      "apiKey": "$MY_API_KEY",
      "proxy": "http://127.0.0.1:7890",
      "models": ["my-model"]
    }
  ]
}

这样可为指定 provider 配置代理;未单独设置时,可使用 HTTP_PROXY 和 HTTPS_PROXY 环境变量。

参考文档:

相关推荐
事圆则缓1 小时前
Kotlin 集合与序列:给页面一份清楚的数据
开发语言·windows·kotlin
乔旭伟1 小时前
CentOS 停更迁移实战:vault 源配置、目标选型与迁移工程清单
linux·运维·centos
遇印记1 小时前
应用层,网络管理
运维·网络·windows·学习·安全
鬼手点金1 小时前
ReAct 循环
linux·服务器·前端·javascript·react.js·前端框架
皓月盈江1 小时前
Linux Debian下STM32CubeProgrammer串口连接失败解决方案
linux·stm32·debian·串口下载·stm32f103c8t6·usb转ttl·stm32cubepro
EterNity_TiMe_2 小时前
Docker服务越装越多记不住端口?我用Fenrus把NAS里的常用入口整理成一个导航页
运维·人工智能·docker·ai·容器·cpolar
远方16093 小时前
108-ORA-00600 [kdsgrp1-qetlbr] 内部错误排查与 RMAN 块级恢复
大数据·linux·数据库·oracle
IT大白鼠3 小时前
AI SSH 运维助手 V13.0内部版七项私有新特性全解
运维·人工智能·ssh
yunwei373 小时前
eBPF 实例教程:BPF 动态指针处理可变长度数据
linux·后端·性能优化