npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mux-proxy-manager

v0.6.6

Published

Manage muxProxy nodes and an authorized Daoway HTTPS inspection proxy

Downloads

509

Readme

mux-proxy-manager

轻量的代理服务管理后台,包含 muxProxy 多实例管理和 DaowayProxy HTTP/HTTPS 抓包模块。npm 包不包含 muxProxy 核心,DaowayProxy 随管理后台安装。

版本变更见 CHANGELOG.md

运行

要求 Node.js 22 或更高版本。

npx mux-proxy-manager start --port=8088

或全局安装:

npm install -g mux-proxy-manager
mux-proxy-manager start --port=8088

默认监听 0.0.0.0。浏览器可通过服务器 IP 访问 http://SERVER_IP:8088,默认账号和密码均为 admin

也可以直接从项目源码构建并启动,无需发布或全局安装 npm 包:

npm install
HOST=0.0.0.0 PORT=8088 MUX_ADMIN_PASSWORD='高强度密码' npm run server

HOST 默认是 0.0.0.0PORT 默认是 8088;命令行中的 --host--port 优先级更高。npm run server 会先构建前端和 Node.js 服务,再启动内置守护进程。后续仅启动已构建版本可使用 npm start -- --port=8088

Docker / Dokploy

仓库已包含多阶段 Dockerfile。在 Dokploy 中选择从仓库的 Dockerfile 构建,并配置:

PORT=8088
MUX_ADMIN_USER=admin
MUX_ADMIN_PASSWORD=请替换为高强度密码

将持久化卷挂载到 /data,管理后台容器端口设置为 8088。SOCKS5 凭据还需映射 11080-11090/TCP;使用 DaowayProxy 时映射 8888/TCP;MWS 和 TCPProxy 则按页面中设置的监听端口逐个映射。未映射的容器端口无法从公网访问。

muxProxy 实例的工作目录为 /data/logs,核心使用相对路径生成的日志会写入该持久化目录。

本地验证镜像:

docker build -t mux-proxy-manager .
docker run --rm -p 8088:8088 -p 11080-11090:11080-11090 \
  -e MUX_ADMIN_PASSWORD='高强度密码' \
  -v mux-proxy-data:/data \
  mux-proxy-manager

容器部署应通过 Dokploy 重新构建镜像完成升级,不要使用管理页面中的 npm 在线更新。

生产环境必须设置后台密码:

MUX_ADMIN_PASSWORD='高强度密码' mux-proxy-manager start --port=8088

在远程服务器上建议通过 SSH 隧道访问:

ssh -L 8088:127.0.0.1:8088 root@SERVER_IP

CLI

mux-proxy-manager start [选项]

--port, -port <端口>   管理后台端口,默认 8088
--host <地址>          管理后台地址,默认 0.0.0.0
--data-dir <目录>      配置与日志目录
--core-path <文件>     muxProxy 安装位置
--help                 显示帮助
--version              显示版本

默认数据目录:root 用户为 /var/lib/mux-proxy-manager,普通用户为 ~/.local/share/mux-proxy-manager

登录后的侧边栏包含三个独立页面:/overview 查看全部服务状态与资源,/muxproxy 管理现有 muxProxy 节点,/daoway 管理 DaowayProxy 抓包服务。

内置守护进程

普通的 start 命令会自动启动一个轻量守护进程,再由它运行管理后台,无需安装或配置其他服务:

MUX_ADMIN_PASSWORD='高强度后台密码' \
  mux-proxy-manager start --host=0.0.0.0 --port=10086

管理后台崩溃或完成 npm 更新后,守护进程会按最多 10 秒的退避间隔重新拉起后台。muxProxy 的期望运行状态保存在数据目录中,后台恢复后会自动恢复原有实例。页面服务控制卡会显示“内置守护进程运行中”。停止最外层 mux-proxy-manager 进程会同时停止后台和所有 muxProxy 实例。

内置守护负责本次进程生命周期和更新恢复,不负责操作系统重启后的开机自启;需要开机自启时仍可由服务器现有的 systemd、Docker 或云平台托管这一条 start 命令。

首次登录会进入安装引导,可从公网 HTTP/HTTPS URL 下载或从浏览器上传 muxProxy。安装器会检查 Linux ELF 格式、64 位架构和当前服务器 CPU 架构,然后以 0700 权限原子写入目标位置。

SOCKS5 模式中,每条连接凭据拥有独立监听端口和独立 muxProxy 进程。新凭据依次使用 11080-11090 中的空闲端口;已有凭据端口不会在升级时自动修改。客户端流量直接进入 muxProxy,Node.js 仅负责配置、进程生命周期和状态读取,不参与代理数据转发。启用或停用凭据会同步启动或停止对应实例;MWS 出口和中继模式仍使用单个 muxProxy 实例。请在服务器防火墙和云安全组中放行 11080-11090/TCP

客户端列表优先通过 Linux ss 读取当前 TCP 连接,并以 /proc/net/tcp* 作为兜底,按“公网 IP + 凭据”聚合。后台不保存历史流量、目标地址或请求内容。公网 IP 会由服务器发送给第三方服务 ipwho.is 获取城市、地区和国家,成功结果在内存中缓存 24 小时;介意该项外部查询时,不应使用此版本的定位功能。全局拓扑只展示本机 muxProxy 到 MWS 上游的延迟,点击在线客户端可查看完整代理链路。

每个已启用的连接凭据都可生成独立的 Clash YAML 订阅地址与二维码。订阅地址自动使用当前管理后台的访问地址;YAML 中的 SOCKS5 地址从订阅请求的 Host 提取。订阅地址包含 SOCKS5 密码,应视同密码保存;停用或删除凭据会让地址立即失效。

DaowayProxy

DaowayProxy 默认监听 0.0.0.0:8888,作为独立子进程由管理后台启停和恢复。客户端设置 HTTP 代理为服务器地址与该端口后,普通 HTTP 会直接转发;HTTPS 使用 CONNECT 建立隧道,并由本地 CA 动态签发目标站点证书完成解密和转发。

首次打开公开的 /cert 客户端页面时,会在数据目录的 daoway/certs/ 生成 ca.keyca.crt。页面会根据当前访问地址和 DaowayProxy 配置动态展示服务器、端口、证书信息与 iOS 安装步骤,证书文件由 /cert/ca.crt 下载。CA 私钥只保存在服务器,权限为 0600。只能在你拥有或明确获授权的设备及流量上使用该功能;启用前还需在防火墙和云安全组中放行配置的代理 TCP 端口。

只有 daoway.cn 及其子域名会写入 daoway/logs/capture-YYYY-MM-DD.jsonl,其他域名正常转发但不落盘。管理页读取最近三天、最多 5000 条记录,正文最多保留前 10000 字符,并支持 gzip、deflate 与 Brotli 解压。使用证书固定(certificate pinning)的 App 可能拒绝 MITM 证书,这是客户端安全策略的正常结果。

DaowayProxy 页面还提供按 dwid 维护附加参数的轻量表,数据保存在 daoway/logs/daoway_extras.json,可直接在页面新增、编辑和删除。

如需把核心安装到系统可执行目录:

sudo MUX_ADMIN_PASSWORD='高强度密码' \
  mux-proxy-manager start --port=8088 --core-path=/usr/local/bin/muxProxy

开发

npm install
npm run dev:mock
npm test
npm run build
npm pack

npm run dev:mock 会在 http://127.0.0.1:8088 启动后台,并用 macOS 可运行的本地 mock 替代 Linux muxProxy。登录后启动 SOCKS5 节点,再使用页面中的连接凭据测试:

curl --proxy 'socks5h://用户名:密码@127.0.0.1:1081' https://example.com

每条凭据都应使用自己在页面中配置的端口。刷新客户端列表可查看当前在线 IP、凭据和位置;mock 会直接连接目标,仅用于验证管理后台、认证和多实例生命周期,不模拟真实 MWS 链路。