NAS + 反向代理服务设置及其他
IOIOX 上有一系列完整的教程……
- IOIOX Synology 专栏 https://www.ioiox.com/synology.html
- IOIOX FRP 内网穿透 专栏 https://www.ioiox.com/frp.html
- 大佬专门的 FRP 网站的教程页 https://freefrp.net/docs.html;
- FRP 的官网在 https://gofrp.org/ TODO
关于 SSL 证书
原理有待学习。 IOIOX 上有 腾讯云的免费申请教程;当然直接进其后台有更为简洁的方案。 问题是腾讯云只支持 单域名的证书;而泛域名(例如所有的二级有域名 *.example.com
)都是要收费的;网站上另外的 免费申请Let's Encrypt泛域名SSL证书教程 教程好像失效了。
反向代理+内网穿透 实现无端口访问
主要参考:群晖NAS反向代理 + 内网穿透 = 无需端口访问内网所有服务无需端口
基本原理
http
协议标准端口为80
,https
协议标准端口为443
. 一个网站或者 web 服务是同时支持
http 和 https 两种协议,目前已经慢慢普及 https 的加密协议,本文不再详细介绍,请自行搜索研究.
反向代理
群晖反向代理服务器 首先占用群晖NAS的80/443
端口,使用任何域名无端口访问(上面提到过无端口即是用 80/443 端口),都会访问到反向代理服务器,由它根据来访域名再次转发给本机或者内网其他的服务. 例如普遍的VPS服务器安装的 nginx 就是反向代理服务器,所以一个服务器是可以配置多个网站同时使用 80/443 端口的,群晖中的 Web Station 和 反向代理服务器 都是使用的 nginx.
内网穿透
前言已经明确家庭宽带是没有80/443
端口的,那么上文提到反向代理服务器是使用80/443
端口,外网是无法访问到的,那么就需要配合内网穿透服务来使外网能够访问到群晖的反向代理服务器的80/443
端口.
内网穿透需要一台拥有 公网IP
和 80/443
端口的服务器,一般云服务商提供的VPS服务都可以满足需求,并部署 frps 服务器端.下文简称为frp服务器
.所以当你想访问内网的网站,实际上是先访问到 frp服务器的80/443端口
, 在由frp 服务器
转发到内网的群晖反向代理服务器
的 80/443
端口, 在由群晖反向代理服务器
转发给 5000/5001/3001/80
等端口.
由此可见,其实内网穿透 frp 服务器
本身也是一个反向代理服务器,高级用户完全可以无需使用群晖的反向代理服务器,直接在frpc.ini
中配置各个域名和内网端口即可实现.
但是我发现很多新手用户对 frpc
的使用并不熟悉,而且部分服务例如本文提到的人人影视
以及本站推荐的Bitwarden
密码管理服务都没有原生提供https
支持, 虽然frpc
是可以配置证书的, 但对于新手来说更加复杂, 所以才有了本文这种以群晖反向代理为核心的方案:
- 内网穿透
frp服务器
提供80/443
端口穿透. - 群晖反向代理服务器提供
https
及SSL 证书
支持,并提供反向代理到内网各设备和服务.
基本配置
准备frp 服务器信息
,本站已提供免费服务.详情参考:FRP内网穿透专栏.
获取服务器地址
,端口
,Token
.
- 服务器地址: free.frp.ioiox.com
- 端口: 7007
- Token: <www.ioiox.com>
配置例如*.ioiox.com
的泛域名,CNAME
指向frp 服务器地址
.其含义是指访问任何二级域名都是访问到frp 服务器
, 由frp 服务器
转发到内网群晖反向代理服务器.
配置内网穿透
内网穿透客户端frpc
的安装参考FRP内网穿透专栏一文中的客户端 frpc 安装教程汇总, 推荐使用docker
方式安装. 【下文有摘录】
配置frpc.ini
如下:
1 | [common] |
配置群晖反向代理
控制面板 - 应用程序门户 - 反向代理服务器
你可以根据需求自行在此配置更多反向代理设置,可以代理内网的任何设备,例如群晖NAS,路由器,虚拟机,树莓派等等.同时反向代理服务器还可以为不提供 https 支持的服务提供https
及SSL 证书
. 【注意】可直接对于 https 的地址配置为本地的 http 地址,这一点非常方便。
配置证书
配置完成后在 安全性 - 证书 中把新增的反向代理配置相应的证书.
Synology 用 Docker 安装 frpc 内网穿透
参考 群晖NAS使用Docker安装配置frpc内网穿透教程
配置域名解析
首先将需要使用的域名在域名解析服务商控制台设置CNAME指向 frp 服务器地址. 例如,按照下面的配置,可设置一条类型为 CNAME
的主机记录为 nas.ioiox.com
记录为 frp.freefrp.net
的解析条目。
配置 Docker
在 Docker 中搜索下载 stilleshan/frpc
配置 frpc.ini
。上面一节中,是将整个泛域名都交给群晖自带的反向代理服务去执行了;下例中直接在这个文件中进行配置,例如这里是 DSM。
1 | [common] |
「勾选使用高权限执行容器」 在高级设置中: 【文件映射】装载路径为 /frp/frpc.ini
【网络】「勾选使用与Docker Host相同的网络」
群晖NAS内网穿透各套件独立门户
参见 群晖NAS内网穿透各套件独立门户。
有了上面两节的基础之后,就很简单了。 事实上,仅需要在 「控制面板-应用程序门户-File Station」 中进行简单配置即可。