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 来访问配置页面。

参考资料

相关推荐
阿成学长_Cain7 分钟前
Linux talk 命令详解:经典终端实时聊天工具,无需图形界面即可对话
linux·运维·前端
lichenyang45319 分钟前
从零开始写 HarmonyOS Web 容器:先让 ArkWeb 加载本地 H5
前端
kyriewen26 分钟前
一个看不见的撇号,让Claude Code追踪了中国开发者三个月
前端·ai编程·claude
莫生灬灬31 分钟前
DY联系人聊天Web面板支持获取联系人/聊天记录/发送消息
前端·chrome·websocket·c#
郑州光合科技余经理39 分钟前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php
一tiao咸鱼1 小时前
前端转 agent # 02 - FastAPI 框架入门与原理
前端·python
wanghowie1 小时前
LangGraph4j 落地(二)— ReAct 多步工具与 trace 扩展
前端·react.js·前端框架
大家的林语冰1 小时前
Rust 再次打败 Go,Astro 7 首发,什么叫“万物皆可锈化“!
前端·javascript·性能优化
lichenyang4531 小时前
H5 如何调用 ArkTS:JavaScriptProxy、requestId 和 Promise 回调
前端
lichenyang4531 小时前
我在 HarmonyOS 上写了一个轻量级小程序运行时:从 Web 容器到 JSBridge
前端