家庭网络
家庭网络内网穿透实战:用 frp 自建隧道把 NAS、摄像头与内网站点安全暴露到公网
2026年10月21日
手把手用 frp 自建内网穿透,把 NAS 与摄像头安全映射到公网。
家庭网络内网穿透实战:用 frp 自建隧道把 NAS、摄像头与内网站点安全暴露到公网
摘要:没有公网 IP 或不想配置 VPN 时,frp 这种反向代理隧道是暴露家庭内网服务最轻量的方案之一。本文从架构、服务端部署、客户端映射、安全加固到带宽取舍,给出一套可落地的配置。
一、什么时候需要内网穿透,它和 VPN 有什么区别
很多家庭宽带是运营商 NAT 或 CGNAT,拿不到独立公网 IPv4;即便有 IPv6,手机在纯 IPv4 网络下也连不进来。此时有两条路:一是 Tailscale、WireGuard 这类 VPN(组网后像在同一局域网),二是 frp 这类"反向代理隧道"。
区别很关键:VPN 是"先连进局域网再访问",适合自己用、要访问很多设备;frp 是"把某一个端口映射出去",适合对外暴露单个服务,比如让朋友访问你的 Jellyfin、让监控 App 连家里的 RTSP。本文聚焦 frp,前提是你的服务端跑在一台有公网 IP 的云服务器(哪怕最便宜的 1 核 1G 轻量云即可)。
二、frp 的架构:frps 与 frpc
frp 分两端:
- frps(server):部署在公网服务器,监听一个控制端口(默认 7000)和你要对外开放的端口;
- frpc(client):部署在家里,比如 NAS 的 Docker 或一台 24 小时开机的树莓派/小主机,主动连到 frps,并把本地服务"反拉"出去。
流量路径是:手机 → 公网服务器 frps → 加密隧道 → 家里 frpc → 本地 NAS:5000。家里这边不需要公网 IP,只要能出网就行。
三、服务端 frps 配置(带 TLS 与鉴权)
下载 frp 二进制(github.com/fatedier/frp),服务端只用 frps。最小安全配置:
[common]
bind_port = 7000
token = 一段足够长的随机字符串
transport.tls.force = true
# 可选:Dashboard 监控
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 另一段强密码
要点:一定要设 token,否则别人能随意注册隧道;force TLS 避免明文;dashboard 不要直接暴露公网,建议用 SSH 隧道或反代加 Basic Auth 访问。防火墙只开放 7000 和你要映射出去的端口。
四、客户端 frpc 映射多个服务
家里 frpc 的配置文件按"服务名"分段,把不同本地端口映射出去:
[common]
server_addr = 你的服务器IP
server_port = 7000
token = 同上
tls_enable = true
[NAS-web]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 5000
[Camera-RTSP]
type = tcp
local_ip = 192.168.1.64
local_port = 554
remote_port = 8554
访问时就是 服务器IP:5000 进 NAS、服务器IP:8554 进摄像头。注意 RTSP over TCP 穿透后延迟取决于服务器带宽,外网看监控建议用 sub stream(子码流)降低码率。
五、用 stcp 做"私密代理"避免端口裸奔
上面的 tcp 模式等于把端口直接挂公网,任何人都能扫到。更安全的做法是 stcp(secret tcp):只有持有相同 sk(密钥)的访客端才能连。
服务端无需改,客户端两端都要配:家里 frpc 配 [xxx] type=stcp,你的笔记本上也跑一个 frpc 配 role=visitor,本地起一个端口转发。这样对外没有任何开放端口,安全性高一个量级。适合 SSH 管理、数据库这类不能暴露的服务。
六、带宽、延迟与稳定性取舍
frp 的所有流量都经过你的云服务器中转,所以瓶颈在服务器带宽。轻量云通常 3–5 Mbps,看 4K 会卡,建议只穿透管理端口或子码流;大流量需求(如远程看原画)还是回到 Tailscale/WireGuard P2P 直连更合适。
另外注意:frpc 掉线会导致服务短暂不可达,建议配 admin_addr 或进程守护(systemd / Docker restart: always),并开启 frps 的 log 排查。部分云厂商对长期大流量会限速,量力而行。
小结
frp 是家庭无公网 IP 场景下暴露单服务的利器:服务端一把 token+TLS,客户端按服务分段映射,敏感端口改用 stcp 私密代理。它和 VPN 互补——VPN 管"进网",frp 管"出服务"。但所有流量过服务器,带宽与安全都要算清楚,别把高风险端口裸奔上公网。