群晖配置 FRP 进行内网穿透
前言
虽然有家里有公网IP,但因为群晖的自带的DDNS服务使用的都是未备案的域名,所以直接通过公网将群晖的服务(主页、Webdav服务等)暴露出去也是不合规的。
最安全的方式还是通过内网穿透将服务从有公网 IP 可以备案的服务器上对外开放。
本文使用了 Frp 进行内网穿透,所有服务使用Http的方式传输,最终在公网IP 服务器上由 Caddy2 统一加上 Https。
Frp 文件下载地址:Frp Release
后文讲述了 Frp 如何与 Caddy2 对接达到自动给网站添加小绿锁的目的:
Frps 配置
在 VPS 中建立 /etc/frp
目录统一存放 Frp 相关文件,方便后期更新与修改。
FRPS
将 frps
文件下载到此文件夹下。
配置文件
再次文件夹下建立 frps.ini
文件,并写入以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 7001 kcp_bind_port = 7000 # 将 Http 端口设定在 8080 vhost_http_port = 8080 # 数据面板设定 dashboard_addr = 0.0.0.0 dashboard_port = 7500 dashboard_user = 登录用户名 dashboard_pwd = 登录密码 enable_prometheus = true # 日志设定 log_file = /etc/frp/frps.log log_level = info log_max_days = 3 # 其他设定 token = Token,用于验证 Frpc 的合法性 max_pool_count = 64 |
因为 Frp 后面还是用 Caddy2 作为 Web 服务器,故 Http 端口设定为 8080 以供 Caddy2 进行对接。如果直接使用 Frps 作为 Web 服务器,可以将 Http 端口设定为 80,并且打开Https端口,设定为 443 。
访问 IP:7500
可以访问 Frps 的数据面板,查看现在运行的服务情况。
配置完服务器端程序后,记得将 VPS 的 7000,7500 的 TCP 打开,7000, 7001 的 UDP 打开。
配置系统服务
在本目录下建立 frps.service
文件并写入以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[Unit] Description=Frp Server Service After=network.target [Service] Type=simple Restart=on-failure RestartSec=5s ExecStart=/etc/frp/frps -c /etc/frp/frps.ini [Install] WantedBy=multi-user.target |
然后创建一个硬连接将其同步到系统文件中。
1 2 |
ln /etc/frp/frps.service /etc/systemd/system/frps.service |
Frpc 配置
配置文件
在群晖中任意位置建立一个 frpc.ini
配置文件,例如我就在 docker/frp/
目录下建立的,方便后期查找和管理。
使用一个泛域名将群晖中运行在 8080 端口下的所有 Web 服务穿透到 VPS 上。
因为群晖的管理面板在5000端口,而 Photo 程序运行在 80 端口,故需要通过 locations 进行区分,分别转发到群晖中的不同端口。
最终在配置文件中写入以下内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[common] token = 验证 Token server_addr = VPS公网IP server_port = 7000 protocol = kcp pool_count = 8 [Common-HTTP] # 泛域名穿透内网服务 type = http local_ip = 127.0.0.1 local_port = 8080 custom_domains = *.example.com use_encryption = true use_compression = true [Synology] type = http local_ip = 127.0.0.1 local_port = 5000 custom_domains = nas.example.com use_encryption = true use_compression = true locations = / [Synology-Photo] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = nas.example.com use_encryption = true use_compression = true locations = /photo |
新建 Docker 容器
在 Docker 套件中搜索并下载 stilleshan/frpc
,也就是 Frpc Docker 。
新建容器,将我们之前配置好的 frp.ini
文件映射到 Docker 镜像内部。



原文链接:群晖配置 FRP 进行内网穿透
WNJXYKの博客 版权所有,转载请注明出处。