在上一期中,我们搭建好了 NASTool, 可以在 NASTool 中开心的订阅搜索下载一条龙,这期我们更进一步,实现 NASTool 与微信的交互。让我们在微信上远程发指令给家中的 NASTool,实现消息推送和远程下载。
首先,我们看到 NASTool > 消息通知
,新增消息通知
这边,看到微信主要需要6个配置项。
我们下面来配置这个6个选项。
准备工作
搭建 NASTool
前面的文章/视频中有完整的教程,可以参考 -> 群晖安装 NASTool 实现影音半自动化
注册企业微信
注册地址: work.weixin.qq.com.
输入相关信息,手机号获取验证码,同时用微信扫码,按提示操作就可以注册成功。
注册成功后,默认自己还没有加入组织(奇怪的设定),需要到“我的企业”中邀请自己加入。然后需要下载企业微信,在企业微信中确认加入组织。
这样企业微信就注册好了。
购买云服务器
云服务器选择有很多,如
各家云对于新用户也有一些优惠,这里就不做推荐。需要注意的是,国内的都需要实名认证。账户的注册就不多说,打开网站根据引导就能完成了。
然后就可以购买云服务器了,如果你是新用户,可以去选择一些优惠的服务器。我这里没新账号,我就做个常规购买的展示,分享一下选择配置时需要注意的几点。
如下图:
- 付费模式:长期用的话,一般包年包月比较划算;
- 地区:可以选择离自己比较近的,延迟会低点;
- 实例类型:按需选择CPU和内存大小,如果只是做代理,搭建内网穿透,最小的(1核512MB内存)就够了;
- 镜像:不懂的话,选CentOS7.9,好找资料==;
- 存储:按需选择,如果只是做代理,最小即可;
- 网络:选择默认设置就可以;
- 公网IP:这一定得勾上IPv4; 计费模式的选择取决于你流量大小。实际体验下来,如果流量不大,选择“按使用流量”计费,价格更优惠,一个月流量也就几毛钱。带宽按需选择;
- 安全组:可以勾选上22端口,方便一会SSH连接;一会后面设置的时候,还会涉及到安全组的修改;
- 登录凭证:如果你会设置SSH密钥,推荐使用密钥;这里为了演示方便,我先使用密码,选择root,设置好登陆密码,这个密码就会一会ssh登陆会用到,别忘记了!
- 实例名称:随意,可不修改;
后面点下一步,下一步,选择时长,付钱就好了。 最后在“云服务器 ECS”中就可以看到我们购买的机器,在IP地址那里,可以看到公网的IPv4地址已经分配好了。
等服务器初始化好,我们就可以SSH连接了。
到这里我们环境准备好了。我们继续配置。
配置前3个参数
进入企业微信,在我的企业 > 企业信息
中,最下面可以看到企业ID
, 这就是我们的第1个参数,企业ID。
在应用管理 > 自建
中创建应用
,如下图:
logo,名字和介绍随便写,选择部门/成员
把自己加进去。
创建成功后,点击打开应用,第2、3个参数,即应用ID
和应用Secret
都有了。
应用Secret
点击查看会提示发送到企业微信中, 点击发送
,到企业微信
App 中可以查看。
企业微信
App中可以看到相关信息,查看即可获取。
这样前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 compose up -d
等待执行完成,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 设置,将上面的 Token
和 EncodingAESKey
填进去。
消息推送代理
中填写我们搭建的代理服务的地址。
然后直接“确认”保存。
访问一下 NASTool 微信交互的地址(http://ip:port/wechat)。如果出现如下的内容,说明我们的 NASTool 交互接口可以正常访问了。
回到企业微信,应用中的设置“API接收消息”,填入地址。然后保存生效。
再到应用中,设置企业可信IP
, 点击配置,填入我们的服务器IP。
最后,我们再回到 NASTool 中,此时点击测试,就能成功通过了。
这时候我们就能在企业微信
中接收到这条测试消息了。
这样我们的微信交互的流程就设置完成了。
微信菜单配置
进入企业微信,应用中,选择“自定义菜单”。
按照官方的说明添加成如下的样子
其中,主菜单就是“下载”,“同步”,“管理”。 菜单内容为“发送消息”, 消息的内容随意。
在微信中交互
在企业微信后台,“我的企业 > 微信插件 > 邀请关注” 中,用微信扫描这个二维码就可以了。
关注之后,在微信中就可以看到了。
这样,我们的微信交换就配置完成了,尽情使用吧。