# socks5-python **Repository Path**: liucz25/socks5-python ## Basic Information - **Project Name**: socks5-python - **Description**: socks5-python基于Python3实现,支持标准的 SOCKS5 正向、 反向代理功能; - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-04 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # socks5代理 ### 正向代理流程图(浏览器为例) > 正向代理只需要服务器即可,只负责转发数据 > > 解决的问题: > > a -> b : a想访问b,但是不想直接访问b。但其实呢,a是可以直接访问b的。 > > 所以做了代理: > > a -> socks5服务器 -> b ‍ ```mermaid sequenceDiagram participant browser participant socks participant target browser->>socks: 发送协商数据包 socks->>browser: 返回协商数据包 browser->>socks: 发送账号/密码校验 socks->>browser: 返回账号/密码校验结果 browser->>socks: 发送目标地址 socks->> target: 连接目标地址 socks-->>browser: 连接目标地址失败 browser-->>browser:结束 socks->>browser: 连接目标地址成功 browser->>socks: 发送代理的数据请求 socks->> target: (目标句柄)转发代理的数据请求 socks->>browser: 转发结果返回 ``` ‍ ‍ ### 反向代理流程图(浏览器为例) > 反向代理需要有一个客户端连接到socks服务器建立一个自己的通道。 > > 解决的问题: > > a -> b : a想访问b,但是a直接访问不了b,他们直接网络不通。 > > 所以做了代理: > > a -> socks5服务器 -> clinet客户端 -> b > > socks5服务器是a和clinet能访问,相当于socks5服务器为一个公网IP。 ‍ ```mermaid sequenceDiagram participant browser participant socks participant client participant target client->>socks: 发送自定义协商数据包 socks->>socks: 保存client句柄通道 browser->>socks: 发送协商数据包 socks->>browser: 返回协商数据包 browser->>socks: 发送账号/密码校验 socks->>browser: 返回账号/密码校验结果 browser->>socks: 发送目标地址 socks->> client: (client句柄通道)转发此次连接并生成UID发送 client-->>socks: 创建UID新通道 socks-->>socks: 保存UID通道 client->>target: 连接目标地址 client->> socks: (client句柄通道)返回UID socks->>browser: 连接目标地址的结果 browser->>socks: 发送代理的请求 socks->> client: 认证成功转发数据请求通过UID新通道转发代理的请求 client->>target: 转发代理的请求 client->> socks: 连接目标地址的结果 socks->>browser: 转发结果返回 ``` ‍ ### 正向代理 ##### 1. 需要修改 `server.py`** IS_REVERSE = False ### 反向代理 ##### 1. 需要修改 `server.py`** IS_REVERSE = True ##### 2. 运行 `client.py`** ### 检验代理是否成功 > curl --socks5 username:password@127.0.0.1:1088 http://baidu.com