Spaces:
Paused
Paused
metadata
title: WebSocket代理转换器
emoji: 🔄
colorFrom: blue
colorTo: indigo
sdk: docker
sdk_version: latest
app_file: app.py
app_port: 7860
pinned: false
WebSocket 代理转换器
这个项目提供了一个简单的代理中转服务,将 WebSocket 代理转换为标准的 HTTP 代理,使其更容易被普通应用程序使用。
背景
许多云平台(如 Hugging Face Spaces)不允许直接暴露代理端口,但允许通过 WebSocket 提供服务。这个项目解决了这个问题:
- 第一个 Space(Clash WebSocket 代理): 通过 WebSocket 隧道(
/wsproxy)提供代理服务 - 这个 Space(代理转换器): 将 WebSocket 代理转换为标准 HTTP 代理
特点
- 自动将 WebSocket 代理转换为标准 HTTP 代理
- 支持在 Hugging Face Spaces 等平台上部署
- 轻量级、安全和高性能
- 基于 gost 实现,成熟稳定
部署指南
在 Hugging Face Space 上部署
- 创建一个新的 Space(选择 Docker 运行时)
- 上传这个目录中的所有文件
- 在 Space 的设置中添加一个密钥(Secret):
- 名称:
URL - 值: 第一个 Space 的 URL,例如
https://your-first-space.hf.space(脚本会自动处理路径和协议转换)
- 名称:
- 部署并等待构建完成
本地部署(测试用途)
# 设置目标 WebSocket 代理 URL
export URL="https://your-first-space.hf.space"
# 运行 Docker 容器
docker build -t proxy-converter .
docker run -p 8080:7860 -e URL=$URL proxy-converter
# 然后配置 HTTP 代理为 http://localhost:8080
使用方法
部署完成后,你可以使用以下 HTTP 代理 设置:
推荐 (HTTPS):
- 主机/服务器:
your-converter-space.hf.space - 端口:
443 - URL (如果需要):
https://your-converter-space.hf.space - 类型: HTTP / HTTPS (客户端到代理服务器的连接是加密的)
- 主机/服务器:
备选 (HTTP):
- 主机/服务器:
your-converter-space.hf.space - 端口:
80 - URL (如果需要):
http://your-converter-space.hf.space - 类型: HTTP (客户端到代理服务器的连接是未加密的)
- 主机/服务器:
SOCKS5 代理(如果修改了
start.sh配置):- 需要客户端支持通过 HTTP CONNECT 或其他隧道方式连接 SOCKS5。不推荐在 Hugging Face 上直接使用。
故障排除
- 无法连接:确保
URL密钥指向正确的第一个 Space 的地址,并且两个 Space 都在运行。 - 连接失败:检查第一个 Space 的日志,确认
/wsproxy是否正常工作。 - 性能问题:Hugging Face 对免费 Spaces 有带宽和计算限制,请考虑升级或使用其他平台。
自定义
修改 start.sh 中的配置可以自定义代理类型(改回 SOCKS5)、添加认证等。详细请参考 gost 文档。
安全注意事项
这种代理转换不提供端到端的加密(仅在客户端到转换器 Space 和转换器 Space 到原始 Space 的 WebSocket 连接上可能有 TLS 加密)。请勿通过此代理传输高度敏感数据,除非你信任相关网络环境。