Skip to content

jayli/block-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

750 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Socks5/HTTP 代理 + 反向隧道工具,支持 MITM 和二次开发。用于家庭网关限制小朋友上网,域名/地址/设备拦截,以及内网穿透场景。

  • HTTP 代理 + Socks5(可开启 TLS)代理 + 隧道代理
  • 域名拦截、URL 正则匹配、MAC 地址定向拦截
  • 按时间段和星期拦截
  • macOS 客户端,支持 SOCKS5/HTTP/隧道三种协议,内置 geosite/geoip 分流引擎

快速开始

方式一:npx 直接启动(无需安装)

npx block-proxy

方式二:全局安装后启动

全局安装:

npm install -g block-proxy

启动:

block-proxy

带规则启动

编写 rule.js(参考 example/rule.js),通过 -c 参数加载:

block-proxy -c rule.js

规则文件导出规则组对象,每个规则组包含一组拦截规则,支持 beforeSendRequestbeforeSendResponse 两种类型。

方式三:pm2 启动

先安装 pnpm install -g block-proxy

pm2 start block-proxy --interpreter bash

或者直接进项目目录:pm2 start npm --name "block-proxy" -- run start

首次启动后访问 http://代理IP:8004 进入后台配置面板。

端口说明

端口 说明 可否关闭
8001 HTTP 代理端口 不可
8002 Socks5 over TLS 代理端口
8003 隧道代理端口(TLS)
8004 后台配置面板

隧道代理

隧道代理是双向的,客户端通过隧道连服务端同样可以支持 MITM。

可以自定义隧道证书,通过两个参数配置

block-proxy --pubkey /path/to/fullchain.pem --privkey /path/to/privkey.pem

如果不传自定义证书,则会自生成证书,不影响功能

参数说明:

  • --pubkey:TLS 公钥证书路径(完整证书链)
  • --privkey:TLS 私钥路径

开发

pnpm i
npm run dev       # 开发模式(React HMR 端口 3000,Express 端口 8004)
npm run start     # 生产启动
npm run proxy     # 仅启动代理,不开后台面板

macOS 客户端

纯 Python(PyObjC)实现的状态栏代理客户端,支持三种连接协议:

协议 说明
SOCKS5 SOCKS5 over TLS,连接服务端 8002 端口
HTTP HTTP 代理直连服务端 8001 端口
隧道 隧道代理

更多文档

详见 Useage.md —— 服务端部署、HTTP/SOCKS5 代理配置、MITM 证书安装、拦截规则、macOS 客户端使用等完整用户手册。

License

MIT

About

MITM 代理服务端和客户端,限制小朋友上网

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors