convert / README.md
clash-linux's picture
Upload 5 files
fed9e59 verified
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 提供服务。这个项目解决了这个问题:

  1. 第一个 Space(Clash WebSocket 代理): 通过 WebSocket 隧道(/wsproxy)提供代理服务
  2. 这个 Space(代理转换器): 将 WebSocket 代理转换为标准 HTTP 代理

特点

  • 自动将 WebSocket 代理转换为标准 HTTP 代理
  • 支持在 Hugging Face Spaces 等平台上部署
  • 轻量级、安全和高性能
  • 基于 gost 实现,成熟稳定

部署指南

在 Hugging Face Space 上部署

  1. 创建一个新的 Space(选择 Docker 运行时)
  2. 上传这个目录中的所有文件
  3. 在 Space 的设置中添加一个密钥(Secret):
    • 名称: URL
    • 值: 第一个 Space 的 URL,例如 https://your-first-space.hf.space(脚本会自动处理路径和协议转换)
  4. 部署并等待构建完成

本地部署(测试用途)

# 设置目标 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 加密)。请勿通过此代理传输高度敏感数据,除非你信任相关网络环境。