UNPKG

catproxy

Version:

a node proxy or host change tools

1 lines 10.9 kB
{"./":{"url":"./","title":"Read Me","keywords":"","body":"catproxy 在工作中是否经常遇到这种情况,需要将cdn的host切换成本地测试,或者线上出现bug,需要修复时候需要将前端文件映射到本地,这个时候通常会用到代理工具 fiddler或charles。 无论charles或者fiddler都可以切换host,但是都只能将一个host完整的切换过去,并不能按照目录区分切换 catproxy为解决这些问题而出 主要功能 完成页面资源从本地和服务器端映射 针对不同的资源做不同的ip映射 提供ui界面去修改映射关系 支持https的映射 支持对请求数据的监控 支持weinre的注入 可做代理服务器使用 原理 将host配置成127.0.0.1或者设置当前设备的代理为catproxy的http服务器(包括端口和ip) 设置后所有请求都会被catproxy接管,catproxy会根据配置文件去请求响应配置的数据,实现对请求的代理 说明文档 \b版本更新 License MIT "},"docs/install.html":{"url":"docs/install.html","title":"安装","keywords":"","body":"安装说明 安装nodejs 全局安装 npm install catproxy -g 运行命令 catproxy, 默认端口80、443,如果启动需要sudo权限,端口可以修改 将需要映射到本地的host改成127.0.0.1 如 127.0.0.1 baidu.com https请求需要生成证书并安装,具体请看https帮助 打开管理界面 "},"docs/cmd.html":{"url":"docs/cmd.html","title":"命令说明","keywords":"","body":"命令说明 catproxy -h 帮助命令,主要是查看帮助 catproxy -v 查看当前版本号码 catproxy -l 日志基本修改,日志级别有error, warn, info, verbose, debug, silly catproxy -t 服务器启动类别修改,默认服务器类别http,类别有http,https,all all 表示http和https同时开启 catproxy -p 服务器端口修改, 默认端口http是80,https是443 端口用,分割,一个表示http端口,第二个表示https端口 catproxy -u 服务器ui端口修改 catproxy --autoOpen 是否在开启后自动打开ui页面 true|false catproxy --weinrePort weinre调试工具的端口号码 catproxy -c 证书生成命令,证书相关请看https catproxy -b 是否拦截https请求,注意如果不拦截https请求,该工具将只是转发https请求,将不会做任何的操作 catproxy -s 是否使用nodejs的sni,1表示使用,2表示多台服务器 "},"docs/manager.html":{"url":"docs/manager.html","title":"ui配置界面说明","keywords":"","body":"管理界面说明 整体界面主要由 左侧分组菜单 顶部导航菜单 中间的操作菜单 分组菜单主要是标记当前项目的分组 顶部导航菜单主要是一些导航功能 中间操作菜单主要是一些基础操作 导航区域 下载host文件,即host的配置文件 导入host配置文件,下载后得配置文件可以通过整个导入 下载证书文件 证书文件二维码,即可扫二维码去下载证书文件 帮助 分组区域 分组区域是一个二级树列表,一级表示分组,二级表示分组下地host配置,可以通过操作菜单中得 新建 创建新的分组 分组在鼠标悬浮状态下,会有三个图标按钮分别表示删除、禁止使用、编辑 编辑将会编辑当前分组的名称,禁止使用将会禁止当前分组下的所有规则, 删除将会删除当前分组 点击二级host配置菜单,将会在右侧的host列表区域显示当前分组列表下地host配置,可以进行设置 操作菜单 操作菜单主要有新建分组、禁止所有分组、禁止缓存的功能 禁止所有分组 即将所有分组都禁止,这个时候所有的资源将会定位到在线 禁止缓存所有请求 将会去掉缓存 新建分组 新建一个分组菜单,可以选择一个分组的名称,和二级分组的名称,如下图所示 所有修改必须点击保存,才能生效 host列表区域 host列表区域可以设置具体的规则 通过新建按钮可以新建一个规则 所有得规则源地址可以是一个正则表达式,也可以是一个 url 规则的执行请看 规则配置说明 "},"docs/rule.html":{"url":"docs/rule.html","title":"规则配置说明","keywords":"","body":"规则配置说明 规则类型总共有7个类型 host 即将一个host地址指定到一个固定的ip下 如 源地址填写http://163.com/test,目标地址填写86.86.86.86将会将163.com/test目录下地都指定到86.86.86.86的ip下,其他目录下还是会访问原来得地址 这里如果写协议就会强制使用http协议,如果不写就是HTTP和https都管用 如图 本地文件 如源地址填写http://163.com/test.js, 目标地址填写d:\\\\test\\\\test.js, 将会将http://163.com/test.js定位到本地test的文件夹下 test.js将会映射到http://163.com/test.js 如图 本地目录 如源地址填写http://pimg1.126.net/cnd1/ 目标地址填写d:\\\\test将会在本地磁盘,test目录下寻找cdn1路径下对应的资源文件 这里有个虚拟路径字段,指的是在url中的路径中的开头有文件中不存在的路径,所以加个虚拟路径,会自动将这个路径去掉,并匹配上 如图 远程文件 如源地址填写http://163.com/test.js目标地址填写http://126.net/test.js,将会将地址http://126.net/test.js的内容加载到 http://163.com/test.js下 如图 重定向 如源地址填写http://qq.com目标地址填写http://163.com将会将qq.com重定向到163.com 如图 weinre 选择正则替换后将会在源地址中插入weinre的script,并且开启weinre服务器,weinre服务器的url会在控制台打印 如图 正则替换 源地址的正则的子匹配,目标地址可以通过$1-$9取到并进行替换 如图 "},"docs/moniter.html":{"url":"docs/moniter.html","title":"ui监控界面说明","keywords":"","body":"监控界面说明 开启catproxy后浏览器输入 http:127.0.0.1:8001/c/m将会打开监控页面 如下 该界面类似chrome的调试工具 主要分成2个功能区域 导航区域 启动按钮,可以启动或者停止监控 清空按钮可以清空当前请求列表的请求 过滤按钮可以控制过滤工具的显示隐藏 缓存按钮可以控制是否启用缓存 证书列表可以生成证书 规则配置则是返回规则配置的页面 请求列表区域 监控也类似chrome,通过一个列表显示请求,单击请求会显示请求的详细信息在右侧 如 动图演示 "},"docs/https.html":{"url":"docs/https.html","title":"https说明","keywords":"","body":"https使用说明 https 采用加密的通道传输数据,需要用到证书,客户端必须要安装证书,才能够正确地代理请求 证书生成 采用命令 catproxy -c 生成证书,生成后会有日志打印出目录,在目录中可以找到日志文件,也可以通过ui界面找到配置文件 打开https破解 用命令catproxy -b true打开https得破解 mac 安装证书 双击证书文件 进入钥匙串app,找到catproxy, 双击catproxy,使用此证书时选择始终信任 图形说明 win安装证书 双击证书文件 选择在指定目录安装证书 选择受信用的根目录证书 图形说明 firefox 安装证书 由于firefox不认系统的证书,需要单独安装证书 打开firefox的设置 选择高级 选择 tab中的证书选项 选择查看证书 选择 tab中得 证书机构 选择导入证书,将根证书导入,根证书可以通过 ui界面下载得到 图形说明 android 安装证书 设置android手机解锁方式为密码解锁(android手机要安装证书必须设置开机密码并且开机密码必须是数字类型) 在catproxy下打开证书二维码,用手机扫描 (注意此时打开管理页面必须是本机的ip并且手机在同一个局域网内,本机ip不能是127.0.0.1或者localhost) 图文说明 ios 安装证书 直接扫描证书二维码 点击install安装证书 ios10.3以上的浏览器需要在 设置->通用->关于下打开安装得证书 "},"docs/updateInfo.html":{"url":"docs/updateInfo.html","title":"更新日志","keywords":"","body":"更新日志 V0.0.1版本 (2016年08月26日) 首个版本发布 V0.0.2版本 (2016年09月07日) 错误处理修改 修改发布脚本 修改编码问题 证书缓存 V0.0.3版本 (2016年09月20日) 修改https判断 增加超时处理 证书目录修改,增加日志,证书增加二维码链接 修改启动日志 修复前端禁止缓存按钮的bug 增加排除,选项,排除的则不解编码 修改规则解析 exec在没配置协议的情况下,使用原始url的协议 breakHttps增加可针对某些不想破解的https跳过 V0.0.4版本 (2016年09月21日) 细节优化,代理服务器socket关闭 V0.0.5版本 (2016年09月21日) 增加 .use方法,可以提前拦截请求 代码jslint检测增加 前端代码性能优化 修复下载链接bug V0.0.6版本 (2016年09月23日) use方法优化 修复promise作用链的bug V0.0.7版本 (2016年09月29日) 解压出错后,直接返回原数据 增加说明文档 V1.0.0版本 (2016年10月31日) 增加 catproxy --autoOpen false 参数可以默认不打开管理界面 增加 catproxy -e \"baidu.com\" 可以在打开 破解https请求的时候,匹配的url不破解 修改默认配置,在不配置协议的情况下,2种协议(http, https)都支持 修改 config初始化位置 增加远程上传配置文件的功能 对ws和wss请求做转发处理 增加 catproxy -s 1 (值可以是1或者2),表示是采用多台服务器代理https请求还是用sni代理 修改CatProxy的构造函数 catproxy 增加onBeforeReq, onAfterRes, onBeforeRes , onPipeRequest事件 增加进程消息函数,认识数据格式 {type: \"config\", result: \"配置函数\"}V1.1.0版本 (2016年11月16日) catproxy对象初始化后增加方法 setServerType , setHttpPort, setHttpsPort, setUiPort, setSniType, setBreakHttps, setExcludeHttps V1.1.1版本 (2016年11月18日) 增强数据保存时候的校验 升级 react V1.2.0版本 (2017年01月10日) 增加监控界面 优化一些bug 增加weinre调试 增加新的正则规则 V1.2.2版本 (2017年01月10日) 修改依赖关系 修改log 修改样式 V1.2.3版本 (2017年02月28日) 修改文字 修改weinre添加后content-length不对的问题 修改tools中得sendErr方法 修改忽略目录 V1.2.4版本 (2017年04月11日) 修改tools中得error方法 修改npm发布忽略文件 更新fs-extra版本 V1.2.5版本 (2017年04月18日) 修改filecache的缓存文件位置 优化本地文件匹配 增加缓存修改功能 V1.2.6版本 (2017年04月18日) \b去掉prompt 细节修改 V1.2.7版本 (2017年05月15日) \b增加证书扩展 V1.2.8版本 (2017年05月22日) \b去掉证书生成的时候的一些字段 V1.2.9版本 (2017年05月22日) \b继续去掉证书上的一些字段 修复weinre插入后,下面得规则不启用的bug 修复刷新缓存被启用后,content-length不对的问题 V1.2.10版本 (2017年05月25日) 增加pfx证书生成密码123456 "}}