--- 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](https://github.com/ginuerzh/gost) 实现,成熟稳定 ## 部署指南 ### 在 Hugging Face Space 上部署 1. 创建一个新的 Space(选择 Docker 运行时) 2. 上传这个目录中的所有文件 3. 在 Space 的设置中添加一个密钥(Secret): - 名称: `URL` - 值: 第一个 Space 的 URL,例如 `https://your-first-space.hf.space`(脚本会自动处理路径和协议转换) 4. 部署并等待构建完成 ### 本地部署(测试用途) ```bash # 设置目标 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 文档](https://github.com/ginuerzh/gost/blob/master/README_en.md)。 ## 安全注意事项 这种代理转换不提供端到端的加密(仅在客户端到转换器 Space 和转换器 Space 到原始 Space 的 WebSocket 连接上可能有 TLS 加密)。请勿通过此代理传输高度敏感数据,除非你信任相关网络环境。