群晖配置 FRP 进行内网穿透

正文索引 [隐藏]

前言

虽然有家里有公网IP,但因为群晖的自带的DDNS服务使用的都是未备案的域名,所以直接通过公网将群晖的服务(主页、Webdav服务等)暴露出去也是不合规的。
最安全的方式还是通过内网穿透将服务从有公网 IP 可以备案的服务器上对外开放。

本文使用了 Frp 进行内网穿透,所有服务使用Http的方式传输,最终在公网IP 服务器上由 Caddy2 统一加上 Https。

Frp 文件下载地址:Frp Release

后文讲述了 Frp 如何与 Caddy2 对接达到自动给网站添加小绿锁的目的:

Frps 配置

在 VPS 中建立 /etc/frp 目录统一存放 Frp 相关文件,方便后期更新与修改。

FRPS

frps 文件下载到此文件夹下。

配置文件

再次文件夹下建立 frps.ini 文件,并写入以下内容。

因为 Frp 后面还是用 Caddy2 作为 Web 服务器,故 Http 端口设定为 8080 以供 Caddy2 进行对接。如果直接使用 Frps 作为 Web 服务器,可以将 Http 端口设定为 80,并且打开Https端口,设定为 443 。

访问 IP:7500 可以访问 Frps 的数据面板,查看现在运行的服务情况。

配置完服务器端程序后,记得将 VPS 的 7000,7500 的 TCP 打开,7000, 7001 的 UDP 打开。

配置系统服务

在本目录下建立 frps.service 文件并写入以下内容。

然后创建一个硬连接将其同步到系统文件中。

Frpc 配置

配置文件

在群晖中任意位置建立一个 frpc.ini 配置文件,例如我就在 docker/frp/ 目录下建立的,方便后期查找和管理。

使用一个泛域名将群晖中运行在 8080 端口下的所有 Web 服务穿透到 VPS 上。

因为群晖的管理面板在5000端口,而 Photo 程序运行在 80 端口,故需要通过 locations 进行区分,分别转发到群晖中的不同端口。

最终在配置文件中写入以下内容。

新建 Docker 容器

在 Docker 套件中搜索并下载 stilleshan/frpc,也就是 Frpc Docker

新建容器,将我们之前配置好的 frp.ini 文件映射到 Docker 镜像内部。

卷设定
并让 Frpc 程序运行在 Nas 的网络中,设定网络为 Host 模式。

网络设定
运行容器即可。