cf 中转麻烦?我用 deno 写了个万能中转代理,一键部署,无需域名 - VEX
这篇文章介绍了基于 Deno 构建的轻量级代理工具 DenoProxy,用于解决国内访问受限或慢的问题。它支持动态设置代理目标 URL,并通过简单的 API 接口转发请求。工具使用方便,适合快速部署和集成。 2025-2-14 20:55:18 Author: v2ex.com(查看原文) 阅读量:36 收藏

前几天接触了 deno,发现挺不错的,刚好有几个 api 需要代理中转就写了这个小工具

用途:用于国内访问慢或者无法访问的服务的中转,如 opengpt,gemini,一些虚拟币 api 接口等等

优点:可以动态设置需要代理网站的地址,使用简单,无门槛

项目地址: https://github.com/pwh-pwh/DenoProxy

具体说明如下:

欢迎使用 Deno Proxy!🚀
这是一个轻量级的代理服务应用,使用 Deno 构建,旨在将请求转发到指定的目标 URL 。无论您需要通过代理访问网站,还是转发 API 请求,Deno Proxy 都能满足您的需求!

📦 特性

  • 代理请求: 将以 /proxy 开头的请求转发到指定的目标 URL 。
  • 设置代理 URL: 使用简单的 ?setUrl=TARGET_URL 查询参数轻松设置或更改代理目标 URL 。
  • 动态代理目标: 使用 /proxy 端点设置活动的代理目标。

🚀 快速开始

1. 克隆项目

通过以下命令克隆仓库并进入项目目录:

git clone https://github.com/pwh-pwh/DenoProxy.git
cd deno-proxy

2. 运行代理服务器

确保已安装 Deno。如果没有安装,可以从 deno.land 获取并安装。
然后,使用以下命令运行代理服务器:

deno run --allow-net --unstable proxy.ts

此命令会启动代理服务器并监听 8000 端口。

3. 部署应用

有两种方式实现部署

  1. 安装 deno 部署工具 deployctl deno install -A jsr:@deno/deployctl --global 项目目录执行 deployctl deploy
  2. fork 本项目,进入 deno 控制台 https://dash.deno.com/ 进行部署操作

4. 使用代理服务器

🌍 设置代理 URL

要设置代理目标,您需要将有效的 URL 传递给 setUrl 参数:

http://localhost:8000/?setUrl=https://example.com

🔄 使用代理

设置代理后,只需访问任何以 /proxy 开头的路径,请求将会转发到指定的目标 URL 。

例如:

http://localhost:8000/proxy/some/path

此请求将会被转发到 https://example.com/some/path,并返回目标网站的响应!

📚 API 参考

1. ?setUrl=TARGET_URL

使用此端点来设置或更改代理目标 URL 。所有访问 /proxy 的请求都会转发到此 URL 。

示例

http://localhost:8000/?setUrl=https://example.com

2. /proxy 路径

访问以 /proxy 开头的路径的请求将会转发到设置的目标 URL 。

示例

http://localhost:8000/proxy/some/path

这将会把请求转发到目标 URL ,并返回响应。

📁 项目结构

deno-proxy/
├── main.ts          # 代理服务器代码
├── README.md         # 这份超棒的文档!
└── ...

🛠️ 使用的技术

  • Deno: 一个用于 JavaScript 和 TypeScript 的安全运行时。
  • HTTP 服务器: Deno 的原生 HTTP 服务器处理请求。

🔑 权限

服务器需要以下权限:

  • --allow-net: 允许网络访问(用于转发请求)。
  • --unstable: 启用不稳定的 Deno API (用于使用 Deno.openKv())。

🤝 贡献

欢迎随时 fork 本仓库、提交问题或 Pull Request 。您的贡献是我们不断改进的动力!

📜 许可证

本项目使用 MIT 许可证 进行授权。


🖼️ 预览

一旦您运行了服务器,下面是如何操作的预览:

  1. 设置代理 URL

    在浏览器中输入以下 URL 来设置目标 URL:

    Set Proxy URL

  2. 使用代理

    然后,简单地调用 /proxy 端点:

    Proxy Request


文章来源: https://v2ex.com/t/1111353#reply12
如有侵权请联系:admin#unsafe.sh