convert / README.md
clash-linux's picture
Upload 5 files
fed9e59 verified
---
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 加密)。请勿通过此代理传输高度敏感数据,除非你信任相关网络环境。