# sok5 **Repository Path**: iutils/sok5 ## Basic Information - **Project Name**: sok5 - **Description**: socket5代理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SOK5 - SOCKS5 代理服务器 轻量级 SOCKS5 代理服务器,基于 Python `asyncio` 实现,零外部依赖,遵循 [RFC 1928](https://www.rfc-editor.org/rfc/rfc1928)。 ## 功能 - 无认证 / 用户名密码认证(RFC 1929) - CONNECT 命令(TCP 隧道,支持 HTTPS) - BIND 命令(FTP 主动模式等) - UDP ASSOCIATE 命令 - IPv4 / IPv6 / 域名 地址解析 - 异步 IO,高并发连接处理 ## 环境要求 - Python >= 3.11 - 无需安装任何第三方依赖 ## 快速开始 ```bash # 克隆项目 git clone && cd sok5 # 启动代理(默认 0.0.0.0:1080,无认证) python3 socks5_server.py ``` ## 配置 编辑 `config.json`: ```json { "host": "0.0.0.0", "port": 1080, "users": {}, "log_level": "INFO", "buffer_size": 8192, "connection_timeout": 30.0 } ``` | 字段 | 说明 | |------|------| | `host` | 监听地址,`0.0.0.0` 表示所有网卡 | | `port` | 监听端口 | | `users` | 用户列表,空 `{}` 为无认证;`{"user": "pass"}` 启用认证 | | `log_level` | 日志级别:`DEBUG` / `INFO` / `WARNING` / `ERROR` | | `buffer_size` | 数据转发缓冲区大小(字节) | | `connection_timeout` | 连接目标服务器超时时间(秒) | ### 指定配置文件 ```bash python3 socks5_server.py /path/to/custom_config.json ``` ### 认证模式示例 ```json { "users": { "alice": "secret123", "bob": "password456" } } ``` ## 使用代理 ### 命令行(curl) ```bash # 无认证 curl -x socks5://127.0.0.1:1080 https://httpbin.org/ip # 用户名密码认证 curl -x socks5://alice:secret123@127.0.0.1:1080 https://httpbin.org/ip ``` ### 浏览器 Chrome / Edge 启动时指定代理: ```bash # macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --proxy-server="socks5://127.0.0.1:1080" \ --user-data-dir=/tmp/chrome-proxy ``` ### 系统级代理(macOS) 系统偏好设置 → 网络 → 高级 → 代理 → SOCKS 代理 → 填入 `127.0.0.1:1080` ## 协议流程 ``` 客户端 SOCKS5 服务器 目标服务器 │ │ │ │──── 1. 协商认证方法 ────────────→│ │ │←─── 选择认证方法 ────────────────│ │ │──── 2. 认证(可选)─────────────→│ │ │←─── 认证结果 ───────────────────│ │ │──── 3. 请求(CONNECT host:port)→│ │ │ │──── TCP 连接 ────────────────→│ │←─── 4. 响应(成功/失败)────────│ │ │════ 5. 双向数据转发 ════════════════════════════════════════════│ ``` ## 许可 MIT