惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
D
DataBreaches.Net
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
Recent Announcements
Recent Announcements
The Register - Security
The Register - Security
S
Secure Thoughts
Y
Y Combinator Blog
The Last Watchdog
The Last Watchdog
L
LINUX DO - 最新话题
V2EX - 技术
V2EX - 技术
腾讯CDC
GbyAI
GbyAI
G
Google Developers Blog
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
Microsoft Security Blog
Microsoft Security Blog
Jina AI
Jina AI
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
Help Net Security
Help Net Security
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
AI
AI
MongoDB | Blog
MongoDB | Blog
Scott Helme
Scott Helme
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
H
Heimdal Security Blog
H
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
S
Security Affairs
TaoSecurity Blog
TaoSecurity Blog
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
Martin Fowler
Martin Fowler
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白? NAS折腾记(5):群晖硬盘休眠设置与分析 NAS折腾记(4): 20分钟手把手带你完美安装 DS918+ 黑群晖7.1.1 NAS折腾记(3):NAS 装机 NAS折腾记(2):B360-ITX 双M.2 双2.5G网口 6 SATA主版 开箱 NAS折腾记(1):328元的4盘位Nas机箱开箱 Openwrt + Clash 全局科学上网 Newifi3 刷入 OpenWrt 固件 v21.02 利用 Markdown 画一些流程图、时序图、甘特图等 Homelab(8): 搭建自用 Gitlab 与 Docker 仓库 Nginx Tcp 转发保留客户端真实 IP (PROXY Protocol) Homelab (7):IPSec VPN(基于证书认证)客户端设置 Homelab (6): 基于自签发证书的 IPSec VPN 搭建 Homelab (5): DDNS 动态域名解析 Homelab (4): Linux 服务器基础环境准备 Homelab (3): 整体网络与基础硬件介绍 Go学习笔记(十)老项目迁移 go module 大型灾难记录 Github Actions 初体验之自动化部署 Hexo 博客 记一次 Nginx DNS 缓存导致转发问题 Homelab (2): 电信悦me网关修改桥接模式,路由器拨号 Homelab (1):5分钟上手黑群晖 NAS 终极 Bash 脚本指南 Typora 自动上传图片到七牛云 Ubuntu 20.04 LTS 有线网卡驱动安装 折腾 Ubuntu 20.04 LTS 开发环境 Go学习笔记(九) 计时器的生命周期[译] 利用 git hook 规范你的代码与 commit message 规范 git commit message 与自动化版本控制 超详细 vim 配置 (with MacVim) Golang 中的 RESTful API 最佳实践 折腾服务器(开篇) 我的第一台个人服务器 Newifi3 实现低成本家庭级科学上网 Go学习笔记(八) | 使用 os/exec 执行命令 如何用 Go 调用 Windows API Mac OS 自动根据 WI-FI 名字改变网络位置 关于 Docker 清理 MIME Types 速查表 Go学习笔记(七) | 理解OAuth 2.0并实现一个客户端 我又又又把博客迁移了 Go学习笔记(六) | 使用swaggo自动生成Restful API文档 Go学习笔记(五) | 使用代码片段(snippets)提高编码效率 书单 - 2018 IPFS 初体验,利用 IPFS 托管你的静态网站 记一次 PostgreSQL LIKE 索引优化,联合字段 LIKE 查询优化。 Disqus 添加有趣的 Reactions 的功能 TLS 1.3 详解 (RFC 8446解读) gRPC在Go中的使用(三)gRPC实现TLS加密通信与流模式 gRPC在Go中的使用(二)gRPC实现简单通讯 gRPC在Go中的使用(一)Protocol Buffers语法与相关使用 CentOS 安装 tshark 抓包工具 Go学习笔记(四) | win上使用VSCode搭建Go开发环境 日常 Postgres 数据库点滴记录 简单了解 PKCS 规范 美食篇 | DIY戚风蛋糕(烤箱做蛋糕) Go学习笔记(三) | 怎么写Go基准测试(性能测试) TLS1.3正式更新,为Nginx添加TLS1.3的支持 一次诡异的数据库删除 GitHub Pages自定义域名开启HTTPS 证书透明度是什么?它是怎么工作的? Go学习笔记(二) | 我对 recover 的一点误解 搭建证书透明度(certificate-transparency)日志服务之从入门到放弃 修复远程登陆 Centos 时,出现 UTF-8 Warning HTTPS篇之SSL握手过程详解 Go学习笔记(一) | postgres与golang点点滴滴 AWS 命令行界面(aws-cli)从安装到快速上手 数字证书分类及怎么区分各类数字证书 常用 linux 命令小结(一)文件目录操作 云服务器搭建 hexo 博客,git hooks自动更新 SSH 免密登陆, SSH Config 配置 Golang CGO Mac 交叉编译 Windows 使用 goose 让数据库迁移更加轻松 开始使用Ghost
NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】
2023-02-10 · via Razeen`s Blog

在上一期中,我们搭建好了 NASTool, 可以在 NASTool 中开心的订阅搜索下载一条龙,这期我们更进一步,实现 NASTool 与微信的交互。让我们在微信上远程发指令给家中的 NASTool,实现消息推送和远程下载。

首先,我们看到 NASTool > 消息通知新增消息通知这边,看到微信主要需要6个配置项。

10-weixin-02

我们下面来配置这个6个选项。

准备工作

搭建 NASTool

前面的文章/视频中有完整的教程,可以参考 -> 群晖安装 NASTool 实现影音半自动化

注册企业微信

注册地址: work.weixin.qq.com.

输入相关信息,手机号获取验证码,同时用微信扫码,按提示操作就可以注册成功。

注册成功后,默认自己还没有加入组织(奇怪的设定),需要到“我的企业”中邀请自己加入。然后需要下载企业微信,在企业微信中确认加入组织。

这样企业微信就注册好了。

购买云服务器

云服务器选择有很多,如

各家云对于新用户也有一些优惠,这里就不做推荐。需要注意的是,国内的都需要实名认证。账户的注册就不多说,打开网站根据引导就能完成了。

然后就可以购买云服务器了,如果你是新用户,可以去选择一些优惠的服务器。我这里没新账号,我就做个常规购买的展示,分享一下选择配置时需要注意的几点。

如下图:

  1. 付费模式:长期用的话,一般包年包月比较划算;
  2. 地区:可以选择离自己比较近的,延迟会低点;
  3. 实例类型:按需选择CPU和内存大小,如果只是做代理,搭建内网穿透,最小的(1核512MB内存)就够了;
  4. 镜像:不懂的话,选CentOS7.9,好找资料==;

  1. 存储:按需选择,如果只是做代理,最小即可;

  1. 网络:选择默认设置就可以;
  2. 公网IP:这一定得勾上IPv4; 计费模式的选择取决于你流量大小。实际体验下来,如果流量不大,选择“按使用流量”计费,价格更优惠,一个月流量也就几毛钱。带宽按需选择;
  3. 安全组:可以勾选上22端口,方便一会SSH连接;一会后面设置的时候,还会涉及到安全组的修改;

  1. 登录凭证:如果你会设置SSH密钥,推荐使用密钥;这里为了演示方便,我先使用密码,选择root,设置好登陆密码,这个密码就会一会ssh登陆会用到,别忘记了!
  2. 实例名称:随意,可不修改;

后面点下一步,下一步,选择时长,付钱就好了。 最后在“云服务器 ECS”中就可以看到我们购买的机器,在IP地址那里,可以看到公网的IPv4地址已经分配好了。

等服务器初始化好,我们就可以SSH连接了。

到这里我们环境准备好了。我们继续配置。

配置前3个参数

进入企业微信,在我的企业 > 企业信息中,最下面可以看到企业ID, 这就是我们的第1个参数,企业ID

10-weixin-05

应用管理 > 自建创建应用,如下图:

10-weixin-03

logo,名字和介绍随便写,选择部门/成员把自己加进去。

10-weixin-04

创建成功后,点击打开应用,第2、3个参数,即应用ID应用Secret都有了。

10-weixin-06

应用Secret点击查看会提示发送到企业微信中, 点击发送,到企业微信App 中可以查看。

10-weixin-07

企业微信App中可以看到相关信息,查看即可获取。

10-weixin-08

10-weixin-09

这样前3个参数都有了。然而还不够。

NASTool 需要调用企业微信的 API,推送消息到企业微信,但由于企业微信有IP白名单的限制,我们需要有一个固定的公网IP去访问微信的API,这就需要我们搭建一个微信的API代理服务。

同时,如果想要完成交互,微信还需要向 NASTool 发送消息,这就需要让我们的 NASTool 在公网可以访问到,这就需要我们来搭建一个内网穿透服务。

接下来我们就来搭建这两个服务。

服务器安装

安装docker

可以参考官方的安装指导.

使用终端或着PuTTY软件连接到服务器上, 执行下面的命令。

# 先更新一下服务器
yum update -y

# 安装依赖
sudo yum install -y yum-utils

# 添加 docker 源
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装 docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 docker
sudo systemctl start docker

# 设置 docker 开机启动
sudo systemctl enable docker

这样我们的docker就安装好了。然后我们来启动服务。

启动服务

这里我用 docker-compose 来部署两个服务。分别将下面两个文件修改一下相关的参数后,放到服务器上的同一个文件夹下。

第一个文件 docker-compose.yaml, 这里我启动了两个服务,一个是微信代理wxapi,绑定的是9080端口,你可以修改成你想要的端口; 还有一个是 frp 服务端 frps, 网络模式直接使用的是host模式,这样不用再映射端口了。

version: '3'
services:
  wxapi:
    image: razeencheng/wxapiproxy:latest
    restart: always
    container_name: wxapi
    ports:
      - 9080:80
  frps:
    image: snowdreamtech/frps:0.46.0
    restart: always 
    container_name: frps
    network_mode: host
    volumes:
      - ./frps.ini:/etc/frp/frps.ini

第二文件是frps.ini, frp服务端的配置文件,放到上面的文件同一个文件夹里面即可。其中

  • bind_port: 客户端来连接的端口,可以不修改;
  • dashboard_port: 监控面板的访问端口,可以不修改;
  • dashboard_user,dashboard_pwd: 访问监控面板BasicAuth的用户名密码,建议修改;
  • token: 客户端连接鉴权用的,建议修改;
[common]
bind_port = 7000

# 开启面板
dashboard_port = 7500
dashboard_user = frpdash
dashboard_pwd = jr2ztqAEs3bdwKXdwN25

# token
token = 8wq5u36wYfvxBfbjKteo

两个文件都放在同一个文件夹后,在文件夹下执行

等待执行完成,docker ps 看一下状态,都正常(STATUS 中为UP)后,说明服务正常启动了。

安全组放行

如果你用的是国内的云,基本上自带了安全组,需要你到云服务器管理的页面上,找到安全组,修改安全组规则,将相关的端口放行。

需要放行下面这些端口:

  • 7000: frp 服务端口
  • 7500: frp 面板端口
  • 3003: nastool 访问端口
  • 5000: dsm 页面端口(可选,如果你想公网访问你的NAS)

如实例中的阿里云,就需要到“安全组”中去配置规则。

我们把相关的端口放行。

这样我们就可以从公网访问了。

微信代理可以访问了。 frp 面板也可以正常访问,输入配置中的用户(dashboard_user),密码(dashboard_pwd)就可以进入了。

客户端搭建

接下来,我们安装客户端。

进入 NAS, 进入套件中间,搜索安装frpc,并安装启动。

启动后,将下面的文件修改后,粘贴进去。

[common]
# 服务端IP&端口
server_addr = 你服务器的IP
server_port = 7000

# Token
token = 8wq5u36wYfvxBfbjKteo

[nastool]
type = tcp
local_ip = 127.0.0.1
local_port = 3003
remote_port = 3003

其中:

  • server_addr: 服务端的IP地址,修改成服务器的IP地址;
  • server_port: 服务端端口,与服务端的 bind_port 一样,如这里的 7000;
  • token: 鉴权 Token, 与服务端的token一致。
  • type: 代理类型,这里将本地的tcp端口代理到服务端;
  • local_ip,local_port: 本地的IP和端口,即需要代理的本地的服务的IP,端口;
  • remote_port: 代理到云端的端口,云端访问就用这个端口;不一定要与本地端口一致,只是一致好记一点;

如果你还想把 DSM 也穿透出去,可以加上如下内容,就把本地的NAS服务代理出去了。

[nas]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000

粘贴好后保存。

保存后,就生效了。在 frp 的面板中可以看到相关信息。

这样我们就可以用 公网IP+端口 访问这 DSM 和 NASTool 页面了。

另外3个参数配置

到企业微信网页,应用管理中进入刚刚创建的应用,看到“接收消息”这一栏,点击“设置API接收”。

随机获取下面两个值。

再回到 NASTool 设置,将上面的 TokenEncodingAESKey 填进去。

消息推送代理 中填写我们搭建的代理服务的地址。

然后直接“确认”保存。

访问一下 NASTool 微信交互的地址(http://ip:port/wechat)。如果出现如下的内容,说明我们的 NASTool 交互接口可以正常访问了。

回到企业微信,应用中的设置“API接收消息”,填入地址。然后保存生效。

再到应用中,设置企业可信IP, 点击配置,填入我们的服务器IP。

最后,我们再回到 NASTool 中,此时点击测试,就能成功通过了。

这时候我们就能在企业微信中接收到这条测试消息了。

这样我们的微信交互的流程就设置完成了。

微信菜单配置

进入企业微信,应用中,选择“自定义菜单”。

按照官方的说明添加成如下的样子

其中,主菜单就是“下载”,“同步”,“管理”。 菜单内容为“发送消息”, 消息的内容随意。

在微信中交互

在企业微信后台,“我的企业 > 微信插件 > 邀请关注” 中,用微信扫描这个二维码就可以了。

关注之后,在微信中就可以看到了。

这样,我们的微信交换就配置完成了,尽情使用吧。