File size: 3,279 Bytes
fed9e59
 
 
 
 
 
 
 
 
 
 
 
a13ede0
 
fed9e59
a13ede0
 
 
fed9e59
a13ede0
 
fed9e59
a13ede0
 
 
fed9e59
a13ede0
 
 
 
 
 
 
 
fed9e59
a13ede0
 
fed9e59
 
a13ede0
 
 
 
 
 
fed9e59
a13ede0
 
 
fed9e59
 
a13ede0
 
 
 
fed9e59
 
 
 
 
 
 
a13ede0
fed9e59
 
 
 
 
a13ede0
fed9e59
 
a13ede0
 
 
fed9e59
 
 
a13ede0
 
 
fed9e59
a13ede0
 
 
fed9e59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
---

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