Yufelix's Blog

Yufelix

【技术方案分享】一文搞定内网穿透 (3)

Nas
21
2025-02-25

WeChat2NPM 是一个用于将 企业微信Telegram 与 Nginx Proxy Manager (NPM) 集成的工具,允许用户通过企业微信应用或 Telegram Bot 远程控制 NPM 的流状态(开启或关闭代理)。通过简单的配置,用户可以在企业微信或 Telegram 中一键开启或关闭 NPM 的代理服务,方便管理内网穿透。

功能特性

  • 企业微信集成:通过企业微信应用实现远程控制 NPM 的流状态。
  • Telegram 集成:通过 Telegram Bot 实现远程控制 NPM 的流状态。
  • Nginx Proxy Manager 支持:与 NPM 无缝集成,支持通过 API 控制代理状态。
  • Docker 支持:通过 Docker 容器化部署,简化安装和配置过程。
  • 自定义菜单:支持在企业微信中创建自定义菜单,方便用户操作。
  • 日志记录:支持不同级别的日志记录,便于调试和监控。

快速开始

1. 安装 Docker 和 Docker Compose

确保你已经安装了 Docker 和 Docker Compose。如果尚未安装,请参考以下链接进行安装:

2. 配置环境变量

配置 app.env 环境变量:

wget https://raw.githubusercontent.com/getyufelix/wechat2npm/refs/heads/main/app.env

vi app.env

3. 启动服务

使用以下命令启动服务:

wget https://raw.githubusercontent.com/getyufelix/wechat2npm/refs/heads/main/docker-compose.yml

vi docker-compose.yaml # 【可选】

docker compose up -d

企业微信配置

1. 创建企业微信应用

  1. 登录企业微信管理后台,创建一个新的应用。
  2. 获取以下信息并填写到 app.env 文件中:
    • 企业 ID (WECHAT_CORP_ID)
    • 应用 Secret (WECHAT_CORP_SECRET)
    • 回调 Token (WECHAT_TOKEN)
    • 回调 EncodingAESKey (WECHAT_ENCODING_AES_KEY)

2. 配置回调 URL

在企业微信应用设置中,配置回调 URL 为 https://<你的服务器地址>/api/v1/message/?token=<WECHAT_TOKEN>

3. 创建自定义菜单

在企业微信中创建自定义菜单,允许用户通过菜单项开启或关闭 NPM 代理。你可以使用以下 Python 脚本创建菜单:

create_menu.py

Telegram 配置

1. 创建 Telegram Bot

  1. 打开 Telegram,搜索 @BotFather
  2. 发送 /newbot,按照提示创建你的 Bot。
  3. 创建完成后,BotFather 会提供一个 Token,将其保存到 app.env 文件中,作为 TELEGRAM_TOKEN 的值。

2. 设置 Bot 命令

为了让 Bot 更易用,可以设置自定义命令菜单:

  1. @BotFather 发送 /setcommands

  2. 按照提示发送以下内容:

    enable - 开启NPM代理
    disable - 关闭NPM代理
    

使用方法

通过企业微信控制 NPM

  1. 在企业微信中打开配置的应用。
  2. 点击自定义菜单中的“Enable”或“Disable”按钮,即可开启或关闭 NPM 的代理服务。

通过 Telegram 控制 NPM

  1. 在 Telegram 中打开你的 Bot。
  2. 发送 /enable 开启 NPM 代理。
  3. 发送 /disable 关闭 NPM 代理。

注意事项

  • 安全性:确保你的 NPM 管理界面和 API 接口受到保护,避免未经授权的访问。
  • 资源管理:在不使用 NPM 代理时,请务必关闭代理服务,以避免不必要的资源消耗。
  • 日志监控:定期检查日志文件,确保系统运行正常。