1. 首页
  2. 科技数码

路由与NAS 篇二十:家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

写在前面

本文主要基于微信回调需求整理的 frp 内网穿透脚本。
最终效果就是通过一台带有公网 IP 的服务器实现通过在公网访问你的 Nas 上的应用
因为确实涉及到服务器配置、命令行操作,有一定的门槛,我会尽量以新手友好的方式来分享教程

本文大纲如下,可按需选择感兴趣部分查看:

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

微信回调

最初就是为了配置 NasTools 支持微信回调,实现微信搜索影片自动下载:

  • 回调是由微信的服务器发起,需要提供一个 NasTools 的公网访问入口

  • 目前使用的是移动宽带,只有公网 IPv6,没有提供公网 IPv4

  • 企业微信回调目前不支持 IPv6

那么最终就只能做利用内网穿透代理来暴露公网了
文章篇幅原因且企业微信回调支持通过 IP 访问,本文未涉及域名及Https配置

内网穿透

内网穿透软件,之前也有介绍过 ZeroTier

路由与NAS 篇十四:移动大内网搭建ZeroTier穿透访问Unraid详细教程写在前面本文字数2600+,配图25,预估阅读时间7~9分钟目前使用的是移动宽带,只有公网IPv6不提供公网IPv4虽然在现在IPv6普及度比较高,但确实存在某些场景下只有IPv4的情况,比如:出门时或去朋友家连接Wi-Fi时候只分配了IPv4在公司网络下只有IPv4同时,通过IPv6访问也是存在不丶Source| 39 评论25 收藏286查看详情

但 ZeroTier 更多是用于异地组网实现类似 VPN 的功能,不太适用于这个需求场景:

通过内网穿透,将 NasTools 的微信回调接口暴露到公网给企业微信应用发访问

而这恰恰是 frp 的目标场景,正如官网介绍的:

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

其工作流程如下:

  1. 外网机器无法访问到 Nas,但是 Nas 可以主动访问公网的 vps

  2. 在 Nas 运行 frpc 客户端主动与 vps 上的 frps 服务端建立连接

  3. 运行在公网 vps 的 frps 服务端将特定端口的请求转发给 Nas

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

通过在公网 vps 上进行内网穿透代理,最终实现了企业微信回调访问 NasTools

准备工作

在配置内网穿透前需要完成以下前提条件:

前提条件 作用
一台有公网 IPv4 的 vps 部署 frps 提供穿透代理
支持通过 ssh 登录到服务器的终端 登录 vps 进行命令行配置
内网穿透软件 本文选择了 frp 作为内网穿透工具

针对 vps 的选择,可以考虑:

  1. 国内的大厂提供的 vps,如腾讯云、阿里云、华为云等等

  2. 仅用于做内网穿透代理,使用最低配置即可,但必须要分配独占的公网 IP

  3. 不做其他用途的话,1Mbps 的带宽就足够提供回调访问了

  4. 选择 linux 系统,如 debian、ubuntu、centos 等

具体的 vps 购买及系统安装,厂商提供的教程已经非常全了,这里就不再展开细说

服务端配置

安全组开放端口

这里以目前我使用的腾讯云为例,仅列出关键步骤,完整操作见官网文档

完成 vps 购买及系统初始化后,需要规划服务器端口开放,有两种方式:

  • 放通所有端口,相当于不做任何访问控制

  • 放通自定义端口,仅开放指定的端口暴露公网,其他端口则不允许访问

嫌配置麻烦的话,可以选第一种,牺牲一定的安全性来换取便利

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

以腾讯云为例,新增一个安全组选择放通全部端口模版,然后关联 vps 实例即可
但更推荐按照最小权限开放来配置允许特定端口,也就是选择自定义模版

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

然后手动配置入站规则,也就是将需要暴露的端口开放访问,具体如下

端口用途 默认 推荐端口
ssh 登录端口 22 一般保持默认 22 端口即可
frps 服务端连接端口 5443 建议设置随机端口,如 44443
frps 仪表盘管理界面 6443 建议设置随机端口,如 44444
frps 穿透代理 NasTools 端口 建议设置随机端口,如 44445

本文场景下最终需要用到的就是上述 4 个端口,frps 其他端口不是必须的

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

在刚才新建的自定义安全组中修改安全规则,添加入站规则:

  • 来源 设置0.0.0.0/0表示允许所有来源 IP

  • 协议端口设置 TCP:22TCP44443-44445 开放上述提到的端口

  • 策略 选择允许

  • 备注 自己随便填,这里我填了ssh 、frp

最后记得关联到云服务器 vps 生效,具体操作见官网文档

SSH登录服务器

这里主要介绍 windows 下的登录场景,如果是 macOS 可使用 iterm2 命令行登录

因为 frp 服务端需要登录到 vps 服务器上配置,因此需要一款 ssh 登录软件
这里以 putty 为例,其他还有 xshell 甚至 windows wsl 自带的 ssh client,自行选择

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

进入 putty官网 后点击 Download PuTTY 跳转到下载页面

  1. 找到 Alternative binary files 下载免安装版本

  2. 目前大部分 Windows 都是 64 位版本了,因此下载 64-bit x86 版本

下载后双击运行,进入 putty 配置页面准备登录服务器

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

运行之后开始登录服务器:

  • Host Name 部分输入你的 vps 分配的 IP

  • Port 保持默认的 22 端口,除非你有修改过 ssh 服务的端口

  • 最后点击 Open 按钮开始登录

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

因为是第一次连接到这台 vps 服务器,所以会有这个提示,点击 ACCEPT 即可

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

之后就是输入你 vps 的登录用户及密码完成登录配置

因为我主要是使用 macOS 因此下面的涉及到命令行操作都是在 iterm2 中完成

配置 frps 服务端

通过 ssh 登录服务器之后,使用一键配置脚本来部署 frps,复制以下命令执行:

wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O /tmp/install-frps.sh
bash /tmp/install-frps.sh install

首先会自动进行基础环境的检查,并安装相关的依赖软件,然后就开始进入配置页面

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

如上图提示是希望从哪里下载 frps 服务端软件:

这里保持默认阿里云即可,接下来设置 frps 服务端的监听端口,我使用44443端口:

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

仪表盘信息部分也需要进行调整:

  1. 仪表盘端口调整为随机端口,这里我使用44444端口

  2. 仪表盘登录的用户密码按需进行修改

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

其他参数全部保持默认,一直按回车就行,Token 建议保持随机字符串
最后会输出最终详情,记得保存下来方便后续使用

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

配置完成后,再通过以下命令来确定 frps 已经正常运行:frps status

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

之后访问 dashboard 并输入用户名密码登录,能看到这个页面就是已经配置完成

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

客户端配置

因为我们的目标是将 NasTools 的回调接口,那么 frpc 客户端可选择就有:

  • 运行在路由器上,并配置代理到 Nas 上的 Nastools 入口

  • 运行 Nas 上,并代理到本机的 NasTools 入口

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

可以根据自己实际情况来选择对应方案,下文会分别介绍具体的配置方式

Openwrt 部署 frpc

以 openwrt 为例,目前大部分的 op 固件会内置 frp 内网穿透
如果你的固件没有内置,也可自行下载安装:系统 - 软件包 - 过滤器 输入 frpc

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

需要安装以下两个软件包(如果没有搜到的话,需要刷新一下列表)

  • frpc 二进制可执行文件

  • luci-app-frpc 在 openwrt 提供 frpc 配置页面,这样就不需要进入命令行配置

尽量选择与你部署的 frps 服务端相同或接近的版本,版本想差太多无法保证功能可用

之后就可以在 openwrt 管理后台 服务 页面下找到 frp 内网穿透进行配置:

  • 勾选 启用

  • 填入服务器端口

  • 令牌 则是我们生成的 Token

  • 其他参数保持默认即可

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

接下来拉到服务列表点击添加按钮开始将 NasTools 暴露到公网:

  • Enable State 设置为启用

  • 使用 TCP 类型即可,VPS 暴露端口为 44445,这个端口已经开放了安全组

  • 内网设置到 NasTools 的入口,我的是10.0.0.2:3000按照你自己的修改

  • 服务备注名 设置一个唯一标识,当你同时通过 frp 暴露多个服务时需要区分开来

  • 建议开启数据加密,以保证 vps 到路由器之间的数据传输安全

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

配置完成后点击保存&应用,回到 frp 主页还需要在点击一次保存&应用

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

至此,路由器配置 frpc 完成

Nas 部署 frpc

如果是在 Nas 上,则建议通过 docker 来部署 frpc
我使用的镜像是 snowdreamtech/frpc,如果是通过 docker 命令启动,可参考:

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

但在如果是 Unraid 的话,建议使用我的模版仓库shuosiw/unraid,使用方式见

路由与NAS 篇十七:Nas资源自动下载刮削整理一体化平台——快速上手NasTools(上)写在前面本文字数3200+,配图31张,预估阅读时间8~10分钟Nas媒体资源下载整理一体化平台,近期确实是一个非常热门的话题跟一起玩Nas的朋友了解下来,我最终选择了NasTools:开源化的运作模式,代码透明,迭代也比较快在issue以及微信群有跟项目的负责人打过交道,整体感觉很不错目前我对于N丶Source| 27 评论35 收藏220查看详情

添加模版之后,点击 ADD CONTAINER 并选择 frpc 模版即可

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

如无特殊需求使用默认参数即可,之后点击下方的 APPLY 按钮启用
但回到 Docker 页面还是处于 stop 状态,这是因为没有配置文件,需要手动添加

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

在 unraid 上创建/mnt/user/appdata/frp/frpc.ini文件并写入如下配置:

[common]
token=JwxXzxTTLbvKY2mn
server_addr=xx.xx.xx.xx
server_port=44443
user=Unraid
log_level=info
protocol=tcp
admin_addr=0.0.0.0
admin_port=7400
tcp_mux=true
login_fail_exit=true

[Nastool-Wechat]
type=tcp
remote_port=44445
local_ip=10.0.0.2
local_port=3000
use_encryption=true
use_compression=true

其中 common 部分有 3 个配置项需要按照实际情况调整:

  • token 替换为你部署 frps 服务端时候设置或自动生成 Token

  • server_addr 替换为你 vps 的公网 IP

  • server_port 替换为你部署 frps 设置的服务端端口,也就是 bind_port

Nastool-Wechat也有 3 个需要按照实际情况调整:

  • remote_port 替换为你最终在 vps 映射 NasTools 的端口

  • local_ip 替换为你的 Nas IP

  • local_port 替换为你的 NasTools 映射端口

如果你熟悉命令行操作,可通过 unraid 管理后台 Terminal 进入网页版终端修改,
或者先在电脑上通过文件编辑器写好之后,再上传到 /mnt/user/appdata/frp/目录下

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

注意文件名一定要为 frpc.ini,否则容器进程启动后会因为找不到配置文件而报错退出

之后回到 Unraid 容器管理界面点击 Start 启动 frpc 容器,此时可正常启动
接下来在 Unraid 上 frpc 应用点击 WebUI 即可访问

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

或者使用 Nas IP + 7400 端口访问就可以看到主界面,比如我的是:10.0.0.2:7400

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

可以看到配置的应用已经启动了,后续有调整的话,也可以直接在 Configure 页面修改配置

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

验证穿透效果

如果一切配置无误你就已经可以通过 VPS 的公网 IP 及 NasTools 映射端口来访问了

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

在我这次配置中,我分配了44445端口给到 NasTools 穿透代理映射
浏览器会提示不安全,这是因为没有使用 https 加密,这是正常的提示

家用宽带无公网IP怎么在外访问Nas——Frp内网穿透暴露公网访问及微信回调简明教程

重新打开 frps 服务端的仪表盘页面,也可以看到刚才配置的穿透应用流量情况
那么接下里就是将你的 vps 公网穿透代理 NasTools 入口添加到企业微信回调接口即可

路由与NAS 篇十八:你还在手动搜索下载、刮削整理海报墙?——微信回调及豆瓣对接自动化之NasTools(下)写在前面上一篇文章分享了NasTools的基础配置,包括安装、目录配置及基础的自动刮削功能本文主要介绍如何简化资源的搜索下载及定期查询,主要分为两大类:定时方式:在豆瓣上将对应电影添加到想看,NasTools定时同步并搜索下载实时方式:通过微信回调,交互式地进行实时搜索下载,效果如下老惯例,文章大纲丶Source| 71 评论53 收藏558查看详情

之前的文章已经介绍得非常详细了,这里就不展开说了

写在后面

写这篇文章时候有点无从下手的感觉,因为确实涉及到较多的命令行操作

smzdm 对命令指令的编辑及展示并不算太友好且有些值友对命令行操作也不是很熟悉

纠结了许久,最终效果就是这样了,也想了解一下值友对本文的易读性感觉如何。码字不易,多多点赞收藏,如果有任何疑问,可以评论我会定期回复。后续的一些优化,比如配置域名、ddns 以及设置微信回调白名单等等,可以考虑再出一些文章,如果你们有比较感兴趣的也可以评论回复。

原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/47586.html