系统实践
家庭 NAS 远程访问:从 FRP 旧方案到更安全的选择
这篇文章从 2017 年的群晖 FRP 实践出发,重新梳理 2026 年家庭 NAS 远程访问的选择、安全边界和 FRP 配置思路。

本文最初发布于 2017 年,记录了我用 FRP 访问群晖 DS416play 的过程。旧文累计超过 11 万次阅读。2026 年重写时,我保留了真实实践和问题判断,但不再照搬 FRP 0.12、INI 配置、裸露管理端口和
nohup命令。
先决定是否真的需要暴露 NAS
远程访问 NAS 的第一目标不应该是“从公网打开管理界面”,而应该是用尽可能小的暴露面完成具体任务。
可以先按这个顺序考虑:
- 只给自己的设备访问:优先考虑组网型方案,让设备像在同一局域网中通信。
- 需要临时分享文件:优先使用带有效期、权限和审计能力的分享机制。
- 必须发布某个 Web 服务:使用 HTTPS、独立域名、强认证和反向代理,不直接暴露 DSM 管理端口。
- 确实需要自建中转:再考虑 FRP,并接受 VPS 带宽、流量、安全维护和故障处理成本。
2017 年方案为什么不应原样复用
旧文章使用 FRP 0.12,通过公网服务器中转 NAS 的 22、80 和 5000 端口,再用 Nginx 隐藏 8080。这个思路在当时解决了无公网 IP 的现实问题,但现在有几个明显风险:
- FRP 已从旧 INI 走向 TOML、YAML 或 JSON,INI 虽仍兼容但不再推荐。
- NAS 管理界面和 SSH 不应该默认暴露到公网。
- Token、Dashboard 密码不能直接写进公开示例或仓库。
nohup只能让进程留在后台,不能提供可靠的重启、日志和故障恢复。- 中转视频和大文件会消耗 VPS 的上下行带宽与流量。
仍然选择 FRP 时的最小安全框架
当前 FRP 服务端配置使用 frps.toml。下面只展示结构,不提供可直接复制到生产的域名、密钥或管理端口:
# frps.toml
bindPort = 7000
auth.tokenSource.type = "file"
auth.tokenSource.file.path = "/etc/frp/server_token"
客户端使用相同 Token 文件,并只转发真正需要的内部服务:
# frpc.toml
serverAddr = "你的公网服务器"
serverPort = 7000
auth.tokenSource.type = "file"
auth.tokenSource.file.path = "/etc/frp/client_token"
[[proxies]]
name = "nas-web"
type = "tcp"
localIP = "192.168.1.10"
localPort = 443
remotePort = 你的受控端口
Token 文件权限至少应限制为运行 FRP 的用户可读:
sudo chmod 600 /etc/frp/server_token
sudo chmod 600 /etc/frp/client_token
FRP 官方文档目前支持 Token 和 OIDC;从 0.64.0 起可以从文件读取 Token,避免把凭据硬编码在配置中。
后台运行要交给服务管理器
Linux 服务器应使用 systemd 或其他服务管理器,而不是 nohup。它们负责开机启动、失败重启、依赖顺序和日志。
[Unit]
Description=frp server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=frp
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml
Restart=on-failure
RestartSec=5s
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
启用前先验证配置和文件路径,再执行:
sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo systemctl status frps
sudo journalctl -u frps -n 100 --no-pager
群晖 DSM 的启动任务应通过“控制面板 → 任务计划”管理,但不要再把程序放入 DSM 的系统默认目录。系统升级可能覆盖这些路径;更稳妥的做法是使用独立目录、普通运行用户和明确日志。
反向代理不是安全边界
用 Nginx 把 域名:8080 变成标准的 443 地址,只是改善入口,并不会自动让服务安全。至少还要做到:
- 全程 HTTPS,证书自动续期。
- Dashboard 仅绑定本机或管理网络。
- 防火墙只开放必要端口。
- NAS 管理账号启用多因素认证,禁用弱密码和默认账号。
- 对公网服务设置访问控制、速率限制和日志审计。
- 定期升级 FRP、反向代理和 NAS 系统。
我的结论
2017 年我选择 FRP,是因为它第一次配置就成功,也确实解决了外网访问群晖的问题。今天重新看这套方案,FRP 依然有价值,但它不应该成为“把整个家庭网络搬到公网”的快捷方式。
先缩小需求,再选择工具;先建立安全边界,再追求访问方便。这比隐藏一个端口更重要。

