插图来源:Storyset
家里有台 NAS,想在公司访问;本地起了个开发服务,想给异地的同事看;但家里没有公网 IP——这就是内网穿透要解决的问题。frp 是这个领域最有名的开源工具,2024 年依然是入门首选。这篇科普原理和场景。
清单:frp 是什么#
- 全称:fast reverse proxy,高性能反向代理。
- 作用:把内网的服务"穿"出去,让外网能访问。
- 原理:一台有公网 IP 的服务器(frps 服务端)当中转,内网设备(frpc 客户端)主动连出去建隧道,外网访问服务器的端口,就转到了内网。
- 一句话:内网主动向外打洞,绕过没有公网 IP 的限制。
需要什么#
- 一台有公网 IP 的 VPS:当服务端,便宜的就行,带宽看需求。
- 内网设备:NAS、树莓派、旧电脑,跑 frpc 客户端。
- 半小时:改两个配置文件,frp 的上手难度中等。
常见用途清单#
- 访问家里 NAS:出差看家里的文件、照片。
- 远程桌面:内网电脑的 RDP/向日葵走 frp 穿出来。
- 开发联调:本地服务给异地同事/客户演示,不用部署到服务器。
- 个人博客/服务:家里旧电脑当服务器,博客跑在家里。
- 摄像头:老家的摄像头,外出也能看。
配置极简示例#
服务端(frps.ini):
[common]
bind_port = 7000客户端(frpc.ini):
[common]
server_addr = 你的服务器IP
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000这样,访问服务器的 6000 端口,就等于访问内网设备的 22 端口。举一反三,NAS 的 5000 端口、摄像头的端口都这么配。
完整配置:穿透 NAS 和远程桌面#
服务端 frps.ini(VPS 上):
[common]
bind_port = 7000
# 面板(可选)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 强密码
# token 鉴权
token = 自己设个复杂的客户端 frpc.ini(家里 NAS/电脑上):
[common]
server_addr = VPS的IP
server_port = 7000
token = 和服务端一致
[nas]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 6001
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6002这样,访问 VPS_IP:6001 就是家里的 NAS,VPS_IP:6002 就是远程桌面。举一反三,摄像头、博客都这么配。
安全加固:穿透了就要守住#
frp 把内网暴露出去,安全是第一位的:
- token 鉴权:服务端客户端都设 token,复杂度拉满,防止别人蹭你的 frps。
- 面板密码:dashboard 别用默认密码,端口也改掉。
- 防火墙:VPS 上只开放 7000 和用到的 remote_port,其他全关。
- 内网服务密码:NAS、路由器的密码全部设强,穿透出去的服务等于裸奔在公网。
- 日志监控:frps 日志开着,异常连接早发现。
frp vs nps:选哪个#
| frp | nps | |
|---|---|---|
| 热度 | 更高 | 小众 |
| 配置 | ini 文件 | Web 面板 |
| 功能 | 够用 | 更全(主机管理) |
| 2024 状态 | 持续更新 | 更新慢 |
新手选 frp,教程多、遇到问题好搜。要 Web 面板管理多台的,nps 也可以,但 2024 年更新不如 frp 勤快。
2024 年的替代方案#
frp 是经典,但 2024 年有了更省心的选择:
| 方案 | 难度 | 需要 VPS | 适合 |
|---|---|---|---|
| frp | 中等 | 要 | 爱折腾、要完全掌控 |
| Tailscale | 极简 | 不要 | 新手、家庭组网 |
| Cloudflare Tunnel | 简单 | 不要 | 建站、暴露 Web 服务 |
| ngrok | 极简 | 不要 | 临时演示 |
新手直接上 Tailscale,三分钟搞定(教程看异地组网 2024)。想建站的看 Cloudflare Tunnel,免费又稳定。
让 frp 开机自启#
frpc 挂了穿透就断了,设个开机自启+守护:
- Linux:写个 systemd service,
Restart=always,挂了自动拉起来。 - Windows:用 NSSM 把 frpc 注册成服务,后台运行。
- NAS:群晖/威联通的任务计划里加开机脚本。
别用 nohup 裸跑,VPS 重启就没了,自己还不知道。
FRP 高级玩法:2024 年#
TCP 映射:不只是 HTTP,SSH、RDP、数据库,都能映射。内网的任何 TCP 服务,FRP 都能穿透。
UDP 映射:游戏、语音,UDP 也能穿。2024 年,FRP 的 UDP 支持已经很稳定了。
多用户:FRPS 配多用户,每个用户独立认证、独立限速。给朋友开穿透,互不干扰。
Dashboard:FRP 自带 Web 面板,看连接数、流量,2024 年的版本更好用了。
P2P 模式:FRP 支持 P2P(点对点),打洞成功后不走服务器,速度起飞。但打洞成功率看网络,NAT 类型是关键。
2024 年,FRP 是"内网穿透"的代名词。别被"穿透"这个词吓到,FRP 的配置,比你想象的简单。
安全提醒#
- 穿透 = 暴露:穿出去的服务等于暴露在公网上,弱密码就是送人头,务必设强密码。
- 最小暴露:只穿透需要的端口,别把整个内网穿出去。
- 日志:frps 的日志定期看看,有异常连接早发现。
FRP 的 2024 年:穿透的未来#
2024 年,FRP 的趋势:
- 版本:2024 年,FRP 0.60+,配置格式变了(TOML),老用户注意迁移。
- 替代:2024 年,组网工具(Tailscale)抢了 FRP 的一部分场景。但对外服务,FRP 还是首选。
- 未来:2024 年,FRP 的定位清晰:对外服务用 FRP,对内组网用 Tailscale。分工明确,别用错。
2024 年,FRP 是"内网穿透"的代名词。2024 年 12 月,FRP 依然能打。对外服务用 FRP,对内组网用 Tailscale。记住:分工明确,工具选对,事半功倍。
一句话:2024 年学内网穿透,frp 是理解原理最好的教材,Tailscale 是解决问题的最快路径。先懂原理,再选工具。2024 年,FRP 和组网工具,各有分工,别用错。2024 年 12 月,内网穿透的格局清晰:对外 FRP,对内组网。记住这个分工,2024 年,穿透不再难。
2024 年 12 月:FRP 的配置技巧#
2024 年,FRP 好用,但要配对:
- token:frps 和 frpc 的 token 要一致,2024 年,安全第一。
- 端口:别用默认 7000,换个冷门的,2024 年,扫描器多。
- 日志:开日志,异常早发现,2024 年,安全靠细节。
- 备份:配置文件备份,换机器直接导入,2024 年,别重复造轮子。
2024 年 12 月,FRP 配置不难,细节决定成败。记住:安全、备份、日志。