前言

在本地调试过程中通常我们会在调试阶段通过 proxy 代理到服务端进行联调。不过也有一些情况我们只能通过服务端的 ip 进行联调,比方说暂时没有申请域名只有同一个 ip 地址能够携带 cookie 身份信息的情况。那么就需要我们能够在本地访问服务端 ip 联调接口,而将其他所有请求都代理到本地的能力。

这里我们使用 switchyOmega 来做代理, whistle 来做转发,因为其基于浏览器,跨平台,mac 端用 charles 应该也可以做。

本文参考: whistle配置


1. 安装whistle

  1. tnpm i whistle -g

安装成功后运行启动命令:

  1. w2 start

一些别的命令:

  1. # 关闭命令:
  2. w2 stop
  3. # 重启命令:
  4. w2 restart
  5. # whistle默认端口是8899,修改端口号命令:
  6. w2 start -p 8008
  7. # 帮助命令:
  8. w2 help

启动后命令行中如下所示:
image.png
会开启一个本机地址的服务,打开链接页面,如下:
image.png
如果需要抓取 https 请求,点击 HTTPS 选项,下载安装一下https证书,证书安装到受信任的根证书下。
image.png


2. 浏览器配置代理

可以使用 chrome 浏览器扩展程序 Proxy switchyOmega,switchyOmega 安装方式:

  1. 直接打开 chrome 网上应用商店下载安装(能访问外网)
  2. https://github.com/FelisCatus/SwitchyOmega/releases

Snipaste_2021-01-28_11-17-42.png
下载后改下文件后缀名解压, chrome浏览器打开扩展程序 chrome://extensions/,打开开发者模式开关,加载解压后的 switchyOmega包,如果无法安装尝试另存为.zip,然后再拖进去。如下图:
Snipaste_2021-01-28_11-19-57.png
配置 switchyOmega,端口为wshitle 启动的端口:
Snipaste_2021-01-28_11-24-21.png
这个时候打开whsitle页面控制台,可以看到已经能抓取请求了。
Snipaste_2021-01-28_11-27-16.png

3. 配置转发规则

为方便我们后续配置规则,我们先本地起服务:

  1. tnpm run devs

image.png
比方说我们本地的地址是 8000端口。

这里假设我们的服务端 ip ,我们需要配置转发规则为:

  • 只有 /api/开头(即接口)的请求转发到服务器 ip ,其他需要转发的前缀看业务情况配置。
  • 其他请求一律转发到本机地址。

效果就是访问远程 ip 就和访问本地一样,不同的是接口都转发到远端。一个典型配置如下:
image.png

然后访问服务端 ip,将 switchyOmega 的对应 ip 的配置设置为 proxy,如果不想走代理可以切换到直连。
image.png
这样就能够代理到本地了,如果不确定是否真的连到本地,可以在本地改些东西确认一下是否变化。


参考文章