No project description provided
Project description
SOCKS5/HTTP WebSocket 代理
基于 WebSocket 的高性能代理工具,支持 SOCKS5 和 HTTP CONNECT 协议,用于网络穿透和流量转发。
原理
本地应用 <--SOCKS5/HTTP--> 客户端 <--WebSocket--> 服务端 <--TCP--> 目标服务器
- 客户端:在本地启动代理服务器(支持 SOCKS5 和 HTTP CONNECT),将流量通过 WebSocket 转发到远程服务端
- 服务端:接收 WebSocket 连接,代理访问目标服务器
- 单端口自动识别协议类型(SOCKS5 / HTTP CONNECT)
- 使用 WebSocket 连接池,提升并发性能
- 通过密码和消息签名保证连接安全
与v2ray性能对比
测试环境:同一服务器节点(跨洋线路(RTT ~260ms))
延迟对比
| 测试目标 | wsocks | v2ray | 结果 |
|---|---|---|---|
| 654 ms | 661 ms | 快 7 ms | |
| YouTube | 995 ms | 1101 ms | 快 106 ms |
| 平均延迟 | 825 ms | 881 ms | 快 56 ms |
下载速度对比
| 指标 | wsocks | v2ray |
|---|---|---|
| 平均速度 | 0.47 MB/s | 0.43 MB/s |
| 峰值速度 | 0.76 MB/s | 0.49 MB/s |
测试脚本和测试数据参考 speed_test 目录
安装
pip install wsocks
如安装过程中提示 uvloop 安装失败,可以跳过 uvloop:
pip install 'wsocks[no-uvloop]'
使用方法
1. 服务端配置
编辑 config_server.json:
{
"server": {
"host": "0.0.0.0",
"port": 8888,
"path": "/ws",
"password": "your-password-here"
},
"log_level": "INFO"
}
2. 启动服务端
在有公网 IP 的服务器上运行:
wsocks_server -c config_server.json
3. 客户端配置
编辑 config_client.json:
{
"server": {
"url": "ws://your-server.com:8888/ws",
"password": "your-password-here",
"compression": false,
"ws_pool_size": 8,
"heartbeat_enabled": true,
"heartbeat_min": 20,
"heartbeat_max": 50,
"use_fingerprint": false,
"impersonate": "chrome124"
},
"local": {
"host": "127.0.0.1",
"port": 1080
},
"udp": {
"enabled": false,
"timeout": 60
},
"log_level": "INFO"
}
TLS 指纹伪装说明:
use_fingerprint: 设置为true启用 TLS 指纹伪装(需要 Python 3.10+ 和curl_cffi==0.14.0,pip install curl_cffi==0.14.0)impersonate: 指定浏览器指纹,支持 Chrome、Safari、Firefox、Edge, 支持的浏览器指纹列表- 开发阶段,可能不稳定,如不需要此功能,保持
use_fingerprint: false即可,无需安装额外依赖
正式使用务必自行配置使用wss
4. 启动客户端
wsocks_client -c config_client.json
5. 配置代理
支持两种代理方式(同一端口自动识别):
SOCKS5 代理:
- 服务器:
127.0.0.1 - 端口:
1080
HTTP 代理:
- 服务器:
http://127.0.0.1:1080
配置参数说明
服务端参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| host | 监听地址 | 0.0.0.0 |
| port | 监听端口 | 8888 |
| password | 连接密码 | - |
| timeout | 连接超时(秒) | 30 |
| max_connections | 最大并发连接数 | 1000 |
客户端参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| server.url | 服务端地址 | - |
| server.password | 连接密码 | - |
| server.compression | 启用数据压缩 | false |
| server.ws_pool_size | WebSocket 连接池大小 | 8 |
| server.heartbeat_enabled | 启用应用层随机心跳 | true |
| server.heartbeat_min | 心跳最小间隔(秒) | 20 |
| server.heartbeat_max | 心跳最大间隔(秒) | 50 |
| server.use_fingerprint | 启用 TLS 指纹伪装 | false |
| server.impersonate | 浏览器指纹(chrome99-136/safari153-260/firefox133,135) | chrome124 |
| local.port | 本地代理端口(支持 SOCKS5 / HTTP) | 1080 |
| udp.enabled | 启用 UDP 转发(SOCKS5 UDP Associate) | false |
| udp.timeout | UDP 会话超时时间(秒) | 60 |
支持的浏览器指纹列表
| Browser | Open Source | Pro version |
|---|---|---|
| Chrome | chrome99, chrome100, chrome101, chrome104, chrome107, chrome110, chrome116[1], chrome119[1], chrome120[1], chrome123[3], chrome124[3], chrome131[4], chrome133a[5][6], chrome136[6] | chrome132, chrome134, chrome135 |
| Chrome Android | chrome99_android, chrome131_android [4] | chrome132_android, chrome133_android, chrome134_android, chrome135_android |
| Chrome iOS | N/A | coming soon |
| Safari [7] | safari153 [2], safari155 [2], safari170 [1], safari180 [4], safari184 [6], safari260 [8] | coming soon |
| Safari iOS [7] | safari172_ios[1], safari180_ios[4], safari184_ios [6], safari260_ios [8] | coming soon |
| Firefox | firefox133[5], firefox135[7] | coming soon |
| Firefox Android | N/A | firefox135_android |
| Tor | tor145 [7] | coming soon |
| Edge | edge99, edge101 | edge133, edge135 |
| Opera | N/A | coming soon |
| Brave | N/A | coming soon |
常见问题
无法连接服务端
- 检查服务端是否运行
- 确认防火墙端口已开放
- 验证密码是否一致
上传速度慢
- 增加
ws_pool_size(建议 8-32)
连接频繁断开
- 调整
ping_interval和ping_timeout - 增加服务端
timeout值
安全建议
- 修改默认密码,使用强密码
- 务必使用 WSS(WebSocket over TLS)
- 配置防火墙限制访问 IP
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wsocks-1.1.1.tar.gz.
File metadata
- Download URL: wsocks-1.1.1.tar.gz
- Upload date:
- Size: 38.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fd7637161c90711d063dc7a8be40bc9513c25c9b6335ced41039332f96a0e55
|
|
| MD5 |
2fba2bf90da82e1f9c1a25bc2c01deb4
|
|
| BLAKE2b-256 |
56711bea0c6eb692993b1f57e76264ab72fad4946d7d9d8778a0dd01cf188aec
|
File details
Details for the file wsocks-1.1.1-py3-none-any.whl.
File metadata
- Download URL: wsocks-1.1.1-py3-none-any.whl
- Upload date:
- Size: 47.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cf303f0d6bdebf54b1dfbea407618e2591041650e071eeb2b1d6b555c4c8fc4
|
|
| MD5 |
7967407ffb77814a854e112641c22fc1
|
|
| BLAKE2b-256 |
74ce69d1cda60acf320e1cf14038b6a624a29e58ffbc80403fb1bd68353c9ca5
|