lack-proxy

动态设置进程全局 HTTP 代理

Usage no npm install needed!

<script type="module">
  import lackProxy from 'https://cdn.skypack.dev/lack-proxy';
</script>

README

lack-proxy

NPM version node version npm download NPM count License

lack-proxy 用于给 Node 程序设置全局 HTTP 代理,可以将 Node 进程里面的指定 TCP 请求代理到 Whistle 等抓包调试代理。

安装

npm i --save-dev lack-proxy

使用

建议在程序入口设置

const lack = require('lack-proxy');
  1. 设置全局HTTP代理:
    lack.proxy({
        host: '127.0.0.1',
        port: '8899',
        // allowlist: ['ke.qq.com', '*.ke.qq.com'],
        // blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
        // filterRequest: (options, isSocket) => {
        //    return true || false;
        // }, // 可选,精确过滤请求
        // servername, // 可选,参见Node的HTTPS文档,设置SNI
        // headers, // 可选,设置代理请求头
    });
    

    程序里面的所有web请求(HTTP、HTTPS、WebSocket)都会代理到本地的 8899 端口的代理服务

  2. 根据请求参数动态设置
    lack.proxy((options) => {
        // 根据请求options动态设置代理
        return {
            host: '127.0.0.1',
            port: '8899',
            headers: options.headers,
            // allowlist: ['ke.qq.com', '*.ke.qq.com'],
            // blocklist: ['fudao.qq.com', '*.fudao.qq.com'],
            // filterRequest: (options, isSocket) => {
            //    return true || false;
            // }, // 可选,精确过滤请求
            // servername, // 可选,参见Node的HTTPS文档,设置SNI
        };
    });
    
  3. 有关例子可以参见测试用例