Skip to content

game-turn-over-skill-group/LocalProxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LocalProxy

本地代理服务器 - 单端口同时支持 SOCKS4/4a/5 + HTTP 代理

特性

  • 单端口自动识别 HTTP / SOCKS4 / SOCKS4a / SOCKS5
  • 支持 IPv4 / IPv6 双栈
  • 支持监听 127.0.0.1 / 0.0.0.0 / :: / ::1
  • HTTP 代理:CONNECT(HTTPS) + 普通 HTTP
  • SOCKS5:TCP CONNECT + UDP ASSOCIATE
  • SOCKS4/4a:TCP CONNECT(兼容)
  • UDP:每发送 N 个包后轮换本地绑定端口,支持顺序/随机模式
  • HTTP:可选使用端口范围进行请求

使用示例

HTTP 代理

curl -4 -x http://127.0.0.1:1080 https://www.baidu.com -v --tlsv1.2 --insecure
curl -x http://[::1]:1080 https://ipv6.baidu.com -v --tlsv1.2 --insecure

SOCKS5 代理

curl -4 --socks5 127.0.0.1:1080 https://www.baidu.com -v --tlsv1.2 --insecure
curl --socks5 [::1]:1080 https://ipv6.baidu.com -v --tlsv1.2 --insecure

启动方式

node proxy-server.js

默认:HTTP+SOCKS5 合并监听 127.0.0.1:1080

命令行参数

监听地址配置

# 监听所有 IPv4 接口
node proxy-server.js --host=0.0.0.0 --port=1080

# 监听所有 IPv6 接口
node proxy-server.js --host=::

# 本机 IPv4+IPv6 双栈(默认)
node proxy-server.js --host=dual

# 局域网 IPv4+IPv6 全开
node proxy-server.js --host=dual-all

# 仅 IPv4 本机
node proxy-server.js --host=127.0.0.1

# 仅 IPv6 本机
node proxy-server.js --host=::1

端口配置

# 自定义监听端口(默认 1080)
node proxy-server.js --port=1080

# 设置首次连接代理通信端口(relay socket)
node proxy-server.js --connect-port=7888           # 固定端口
node proxy-server.js --connect-port=7888-7999     # 端口范围
node proxy-server.js --connect-port=""            # 随机分配(默认)

UDP/HTTP 端口范围配置

# 设置出口端口范围(默认 6811-6922)
node proxy-server.js --udp-min=6811 --udp-max=6922

# 每 N 个包轮换端口(默认 5)
node proxy-server.js --udp-rotate=5

# 旧端口延迟关闭时间(毫秒,默认 5000)
node proxy-server.js --udp-stale-timeout=5000

# HTTP 代理使用端口范围
node proxy-server.js --http-use-port-range=true

端口分配模式

# 顺序模式(默认):按顺序使用端口范围内的端口
node proxy-server.js --port-mode=sequential

# 随机模式:随机选择端口范围内的端口
node proxy-server.js --port-mode=random

调试模式

# 开启调试日志
node proxy-server.js --debug

# 关闭调试日志(默认)
node proxy-server.js --no-debug

参数说明

参数 默认值 说明
--host dual 监听地址
--port 1080 监听端口
--connect-port "" (随机) 首次连接端口:""=随机, "7888"=固定, "7888-7999"=范围
--udp-min 6811 出口端口最小值
--udp-max 6922 出口端口最大值
--udp-rotate 5 每 N 个包轮换端口
--port-mode sequential 端口分配模式:sequential=顺序, random=随机
--udp-stale-timeout 5000 旧端口延迟关闭时间(毫秒)
--http-use-port-range false HTTP 代理是否使用端口范围
--debug false 是否开启调试模式

核心设计

功能 实现
IPv4/IPv6 双栈 监听地址支持 127.0.0.1 / 0.0.0.0 / :: / ::1,自动适配
HTTP 代理 支持普通 HTTP(PIPE 转发)和 HTTPS(CONNECT 隧道),可选使用端口范围
SOCKS5 TCP 完整握手,支持 IPv4/IPv6/域名三种地址类型,自动 DNS 解析
SOCKS5 UDP 创建中继 socket 接收客户端 UDP 包,每发送 N 个包后重新绑定新端口,支持顺序/随机模式,每个目标 IP 独立使用端口
TCP 控制 绑定 UDP ASSOCIATE 的 TCP 控制连接断开时,自动清理所有 UDP socket
端口模式 顺序模式按顺序使用端口,随机模式随机选择,支持 UDP 和 HTTP 共用
累计统计 日志显示连接次数 [#N] 和累计发包次数 [^N]

日志格式

SOCKS5 UDP  127.0.0.1 [#1][^1] → 192.168.2.1:666 (0.0.0.0:6811)
SOCKS5 UDP  127.0.0.1 [#1][^2] → 192.168.2.1:666 (0.0.0.0:6811)
HTTP GET     127.0.0.1 → 192.168.2.1:888 (0.0.0.0:6812)
  • [#N]:当前连接次数(会话 ID)
  • [^N]:累计发包次数(全局共享)
  • (0.0.0.0:6811):本地使用的出口端口

项目信息

项目发起人:rer
项目协作者:豆包、claude、deepseek、Trae(solo)

About

『node.js』本地http+socks代理、支持udp轮询

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors