whistle的安装与启动

whistle(是一个基于 Node.js 开发的跨平台网络代理工具,它可以用于网络抓包、模拟接口请求、修改请求和响应、监控网络流量等功能。通过使用 Whistle,你可以方便地查看和调试网络请求和响应,对网络流量进行分析,以及进行网络请求的定制和修改。

Whistle 提供了一个简单易用的 Web 界面来管理代理、查看网络请求详情和响应内容、设置规则和插件等。它还支持 HTTP/HTTPS 代理、WebSocket 支持、自定义规则配置等功能,非常适合用于开发、调试和测试阶段对网络请求和响应的分析和操作。

总的来说,Whistle 是一个强大的网络代理工具,适用于开发人员、测试人员和网络分析人员。它能够帮助用户更好地理解和调试网络请求和响应,提高网络开发和测试的效率。

本文主要介绍whistle的安装以及使用SwitchyOmega进行代理的代理的配置。

安装whistle

whistle支持v0.10.0以上版本的Node,因此安装whistle前,请先确认电脑已经安装了Node。可以通过在终端输入下面的命令来确认是否安装了Node,如果正确输入Node版本号,表明已经安装了Node。

PlainText 复制代码
$ node -v
v18.16.0

确认已经安装Node后,执行以下npm来安装whistle,如果提示权限不足则需要在命令前加上sudo。

PlainText 复制代码
$ npm install -g whistle

whistle安装完成后,执行命令 whistle helpw2 help,查看whistle的帮助信息。

PlainText 复制代码
$ Usage: w2 <command> [options]
  Commands:
    status      Show the running status
    add         Add rules from local js file (.whistle.js by default)
    ...

如果你在终端使用 Whistle 后出现 zsh: command not found: w2 的错误,可能是由于系统无法找到 Whistle 的执行文件。在这种情况下,你可能需要手动将 Whistle 的安装路径添加到你的系统 PATH 中。 例如在mac端,你可以按照以下步骤来尝试解决这个问题:

  1. 首先,确认你的 Whistle 是否已经成功安装。如果你是通过 npm 安装的,你可以使用以下命令来确认其安装路径:

    PlainText 复制代码
    npm bin -g

    这会输出全局安装包的路径,你可以找到其中 whistle 的安装位置。

  2. 一旦你找到了 Whistle 的安装路径,你需要将这个路径添加到你的系统 PATH 中。你可以通过编辑 ~/.zshrc 文件(如果你正在使用 zsh)来实现。使用以下命令打开 ~/.zshrc 文件并添加正确的路径:

    PlainText 复制代码
    nano ~/.zshrc

    在文件末尾添加类似以下行的内容(将 /path/to/whistle 替换为实际的 Whistle 安装路径):

    PlainText 复制代码
    export PATH="/path/to/whistle:$PATH"
  3. 保存文件并关闭编辑器。然后输入以下命令以重新加载环境变量:

    PlainText 复制代码
    source ~/.zshrc

在Windows端,同样可以采用配置系统path的方式解决该问题。

启动whistle

刚才通过w2 help命令我们已经看到了支持whistle的所有命令,常用的是以下几个。 启动whistle:

PlainText 复制代码
$ w2 start

Note: 如果要防止其他人访问配置页面,可以在启动时加上登录用户名和密码 -n yourusername -w yourpassword

重启whsitle:

PlainText 复制代码
$ w2 restart

停止whistle:

PlainText 复制代码
$ w2 stop

查看whistle当前运行状态:

PlainText 复制代码
$ w2 status

配置代理

接下来主要使用浏览器代理插件SwitchyOmega进行代理配置。我们主要使用的就是代理服务器和自动切换模式。

其中代理服务器是表示我们希望访问的网站,需要设置的包括代理服务器的地址、端口以及其他认证信息等,如下是whistle的设置内容。 自动切换模式则确定哪些网站或者IP地址需要使用代理,哪些不需要使用代理。这些规则可以根据网站的域名、URL路径或者IP地址段来定义。规则包括了匹配条件和操作两个部分:

  • 匹配条件:这里可以指定什么样的网站或者地址会匹配这条规则。您可以根据网址的域名、URL路径、IP地址、端口等信息来定义匹配条件。比如,您可以设置规则使得所有以 ".cn" 结尾的网站不使用代理。
  • 操作:操作部分用于定义匹配条件满足时的操作。您可以选择使用特定的代理配置、不使用代理、或者直接连接等。

举个例子,比如您要设置规则使得所有国内网站不使用代理,而访问国外网站使用代理,您可以添加一个规则,匹配条件为网址以".cn"结尾,操作为"直接连接"。另一个规则可以匹配除了 ".cn" 结尾的网址,操作为"使用代理配置"。

需要注意的是,规则的顺序很重要。SwitchyOmega 会按照规则的顺序依次匹配网址,当匹配到第一条符合条件的规则时,就会执行对应的操作。因此,可以根据实际需求调整规则的顺序。过定义规则,您可以根据实际需求对不同网址或者IP进行代理的自动切换,同时SwitchyOmega还支持切换规则的链式调用,以最大程度地满足您在不同网络环境下的需求。

访问配置页面

可以通过访问local.whistlejs.com/http://127.0.0.1:8899 来访问配置页面。

参考资料

相关推荐
信创DevOps先锋3 分钟前
本土化突围:Gitee如何重新定义企业级项目管理工具价值
前端·gitee·jquery
圣光SG15 分钟前
Java类与对象及面向对象基础核心详细笔记
java·前端·数据库
Jinuss23 分钟前
源码分析之React中的useImperativeHandle
开发语言·前端·javascript
ZC跨境爬虫36 分钟前
CSS核心知识点与定位实战全解析(结合Playwright爬虫案例)
前端·css·爬虫
Jinuss38 分钟前
源码分析之React中的forwardRef解读
前端·javascript·react.js
mengsi5540 分钟前
Antigravity IDE 在浏览器上 verify 成功但本地 IDE 没反应 “开启Tun依然无济于事” —— 解决方案
前端·ide·chrome·antigravity
Можно1 小时前
pages.json 和 manifest.json 有什么作用?uni-app 核心配置文件详解
前端·小程序·uni-app
hzhsec1 小时前
钓鱼邮件分析与排查
服务器·前端·安全·web安全·钓鱼邮件
#做一个清醒的人1 小时前
Electron 保活方案:用子进程彻底解决原生插件崩溃问题
前端·electron·node.js