欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

Charles

Charles — 一个跨平台HTTP抓包调试工具,帮你轻松看清网络请求的来龙去脉。

平时写代码、调接口、排查线上问题,最怕的就是“明明代码没毛病,但数据就是不对”。服务端说“我发了”,客户端说“我没收到”,两边扯皮半天,最后发现是某个中间环节的请求被篡改或丢失了。这时候你就需要 Charles——一个能让你“偷看”所有网络流量的抓包工具。

Charles 本质上是一个 HTTP/HTTPS 代理服务器。你把它装在电脑上,然后把手机的代理指向它,所有进出设备的网络请求都会经过 Charles 过一遍。你能看到请求的 URL、Headers、Body,甚至连 HTTPS 加密后的内容也能解密查看。它不只是抓包,还能断点修改请求或响应、模拟慢网速、重发请求测试,甚至把线上接口的响应映射到本地文件来做 Mock 数据。

下载

Charles 有 Windows、macOS 和 Linux 三个版本,全部从官网下载最安全:

Charles 官网下载

官网下载页面会自动识别你的操作系统,推荐对应的安装包。如果你需要旧版本,页面底部也有历史版本链接。注意:Charles 是收费软件(约 50 美元),但提供 30 天全功能试用。试用期结束后每次启动会强制等待 10 秒,但不影响功能。如果你只是偶尔用一下,这个“等待”完全可以接受。

安装方法

macOS

下载 .dmg 文件,双击打开,把 Charles 图标拖进 Applications 文件夹就行。首次打开会提示“无法验证开发者”,去系统设置 - 隐私与安全性里点“仍要打开”即可。

Windows

下载 .exe 安装包,一路 Next 安装完。注意安装过程中有个“Install Certificate”的选项,默认勾选就行,这会在系统里安装 Charles 的根证书,后面抓 HTTPS 包会用到。

Linux

官网提供的是 .tar.gz 压缩包,解压后运行 charles/bin/charles 脚本。或者你也可以用 sudo apt install charles-proxy(Ubuntu 用户),但版本可能比较老。

基础使用教程

1. 抓取电脑上的 HTTP/HTTPS 请求

安装完后直接打开 Charles,默认就会开启代理(端口 8888)。你会看到一个分栏窗口:左侧是请求列表,右侧分为上下两部分,上面是请求详情,下面是响应详情。

随便打开一个网页(比如百度),左侧列表就会开始刷刷刷地出现请求。这就是 Charles 抓到的所有网络流量。你可以点击某个请求,看它的 Headers、Cookies、Params,以及服务器返回的状态码和 Body。

2. 抓取手机上的请求(最常用)

这是 Charles 的核心场景——调试手机 App 的接口。

步骤:

  1. 电脑上打开 Charles,点击菜单栏 Proxy -> Proxy Settings,确保 HTTP Proxy 端口是 8888,并勾选“Enable transparent HTTP proxying”。
  2. 查看电脑的局域网 IP(macOS 在系统偏好设置里看,Windows 用 ipconfig 命令)。
  3. 手机连接同一个 WiFi,进入 WiFi 设置,把代理设为“手动”,填入电脑的 IP 和端口 8888。
  4. 此时手机上任何 App 发起的网络请求都会出现在 Charles 里。首次连接时 Charles 会弹窗询问“是否允许该设备连接”,点击 Allow。

3. 抓取 HTTPS 请求

默认 Charles 只能抓 HTTP,HTTPS 会显示为乱码。要抓 HTTPS,需要安装 Charles 的 SSL 根证书。

电脑端:

  • 点击 Help -> SSL Proxying -> Install Charles Root Certificate,按提示安装到系统信任的证书列表。macOS 需要额外在钥匙串里双击证书,展开“信任”并选择“始终信任”。

手机端(以 iOS 为例):

  1. 手机设置好代理后,用 Safari 打开 http://chls.pro/ssl,会自动下载证书描述文件。
  2. 去设置 -> 通用 -> 描述文件,安装该证书。
  3. 再去设置 -> 通用 -> 关于本机 -> 证书信任设置,打开对 Charles 证书的开关。

Android 类似,但不同版本路径略有差异。装完证书后,在 Charles 里右键某个 HTTPS 请求,选择 SSL Proxying -> Enable SSL Proxying for this host,之后就能看到明文内容了。

4. 过滤请求

请求一多,列表里全是图片、CSS 等静态资源,找接口很费劲。Charles 提供了多种过滤方式:

  • 底部 Filter 输入框:直接输入关键词,比如 api,只会显示包含该词的请求。
  • 左侧 Structure 视图:按域名分组,点击某个域名只看它的请求。
  • 右键屏蔽:在某个请求上右键 -> Focus,只关注这个域名;或者右键 -> Block,直接屏蔽掉不关心的域名。

进阶技巧

1. Map Local — 把线上接口换成本地文件

这是 Mock 数据的神器。比如你正在开发一个页面,接口还没写好,或者你想测试某个特定返回值的 UI 表现。

操作:右键请求 -> Map Local -> 选择一个本地 JSON 或文本文件。之后 Charles 只要抓到匹配这个 URL 的请求,就会直接返回你指定的本地文件内容,完全不发请求到服务器。修改本地文件后,刷新页面就能看到新效果,非常适合前端调试。

2. Map Remote — 重定向请求到另一个服务器

比如你想把线上的 api.example.com 指向测试环境的 test-api.example.com。右键请求 -> Map Remote,填上目标 URL 即可。这样你本地代码里写的接口地址不用改,Charles 会自动帮你转发。

3. Breakpoints — 断点修改请求或响应

在请求上右键 -> Breakpoints,当 Charles 捕获到这个请求时,会弹出一个编辑窗口,你可以手动修改请求的 Headers、Body,或者修改服务器返回的响应内容。比如你想测试 App 对某个错误码的处理,就可以在响应里把 200 改成 500。改完后点击“Execute”继续传输。

4. Throttle — 模拟慢网速

在 Proxy -> Throttle Settings 里,可以设置带宽、延迟、丢包率。预设了 3G、4G、DSL 等场景,也可以自定义。调试弱网环境下的加载体验或超时逻辑时特别有用。

5. Rewrite — 自动批量修改请求

如果你有大量请求需要统一修改(比如把所有请求的 User-Agent 改成某个特定值),用 Rewrite 功能比手动改快得多。在 Tools -> Rewrite 里添加规则,可以匹配 URL 模式,然后自动修改 Headers、Body 或 URL 参数。

6. Auto Save — 自动保存会话

Charles 默认会把所有请求记录在内存里,关闭软件就没了。如果你需要长期记录调试过程,可以在 Preferences -> Recording 里开启自动保存,指定保存路径和文件大小限制。这样即使 Charles 崩溃,之前的请求记录也不会丢。

一些踩坑提醒

  • 手机连不上 Charles:检查防火墙是否拦截了 8888 端口,或者手机和电脑是否在同一个网段(比如公司网络有 VLAN 隔离)。
  • HTTPS 抓不到:大概率是证书没装好。iOS 用户记得在“关于本机”里手动开启证书信任,Android 7.0 以上系统默认不信任用户证书,需要把 App 配置为 network_security_config.xml 信任用户证书,或者 root 后把证书移到系统目录。
  • Charles 太卡:如果请求量巨大(比如视频流),可以关闭 Charles 的“Recording”功能,只抓你关注的特定域名。

Charles 是我用过最顺手的抓包工具,没有之一。它不像 Wireshark 那样底层,也不像 Fiddler 那样 Windows 独占,跨平台、界面简洁、功能恰到好处。无论你是前端、后端、App 开发者,还是只想搞清楚某个 App 到底在偷偷上传什么数据,Charles 都能帮上大忙。

最后说一句:别拿它干坏事,抓包别人的 App 接口属于逆向工程,法律风险自担。用在正经调试上,它就是你的网络调试瑞士军刀。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消