frp:一款开源内网穿透工具,支持 TCP、UDP、HTTP 转发与 P2P 直连,内网服务轻松上公网
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
你大概也遇到过这种憋屈事:公司内网的服务,回家连不上;家里的 NAS,出了门就是个摆设;本地跑的 demo 想给别人看看,没公网地址没法演示;调微信这类平台的回调,人家只认公网 URL,干瞪眼。 买个云服务器,一年几百块就为个端口转发,有点浪费;用公共穿透服务,免费版限速、随机域名、高峰掉线,正经东西谁敢挂上面。说白了这不是技术难题,就是缺一条自己能完全掌控的隧道。 那有没有一个工具,找台便宜 VPS 就能自己搭,速度自己说了算,想映射什么就映射什么?还真有,就是今天要聊的 frp。 先介绍一下这项目frp,全称 Fast Reverse Proxy,Go 写的高性能反向代理,主打内网穿透。从 2015 年迭代到现在的 v0.70.1,GitHub 挂着 109K+ Star,不少公司拿它跑生产环境。 它干的事一句话能讲清:在内网机器和一台有公网 IP 的服务器之间打条隧道,让内网服务能被公网访问。TCP、UDP、HTTP、HTTPS 都能转发,还支持 P2P 直连。 ![]() 特点协议覆盖全。SSH、远程桌面、数据库、摄像头流这类 TCP/UDP 服务直接转发;网站类服务走 HTTP 代理,能绑域名、加鉴权、改 Header。 传输够快。两端通信支持 KCP、QUIC、Websocket 等底层协议,TCP 连接做了流式复用,单连接承载更多请求,省掉握手延迟。 安全上没糊弄。两端之间走 TLS 加密;不想直接挂公网的,用 STCP 类型,访问方持密钥才能连;代理组自带负载均衡和健康检查。 P2P 是个亮点。XTCP 模式下两端打洞,成功后数据在家宽之间直连,带宽不走服务器,跑满自家宽带的上下行。 技术架构经典 C/S 架构:frps 是服务端,部署在有公网 IP 的机器上;frpc 是客户端,跑在内网机器上。 流程不复杂:frpc 主动向 frps 建长连接,内网机器不用开端口、不动路由器;公网访问 frps 的端口,流量顺着隧道转进内网。配置用 TOML,一端一个文件,改完重启生效。 部署方式门槛基本没有。Go 编译出来就是单个二进制,无依赖,Linux、Windows、macOS、ARM 都有包,NAS、路由器也能跑。 常见玩法三种:解压直接运行、配成 systemd 开机自启、Docker 拉起来。整个过程就是装好、改配置、启动,十分钟的事。 ![]() 前端自带 Web Dashboard,服务端客户端都有,页面直接打进二进制里,不用单独部署前端工程。frps 面板能看代理列表、连接数、流量曲线,frpc 也有本地管理页。排查"通没通",看一眼面板比翻日志快得多。 后端核心是 Go 写的两个进程:frps 管中转,frpc 管本地转发。扩展性留得足:客户端内置静态文件、HTTPS 转 HTTP、SOCKS5 代理等插件;服务端有插件系统,通过 HTTP 回调把认证、限流接进自己的业务。新版还在加东西,比如 v0.68 的 VirtualNet,能给设备分虚拟 IP 组网。 开源协议遵循 Apache-2.0 协议,对商用友好:使用、修改、分发都没问题,集成进公司项目也不用顾虑。 留意两点:分发时保留版权声明和许可文本,修改过的文件带上变更说明。 即刻体验一波来个常见场景: 在家 SSH 连公司内网的机器。 公网服务器上,frps.toml 一行搞定: 公司机器的 frpc.toml: 两边启动,回家一条命令直达工位: 想让本地 web 项目有个公网地址,把 type 换成 http、绑上域名,也是几行配置的事。面板上看着流量曲线爬起来,比啥都实在。 还支持更多的功能待你来探索。 ![]() 结语配置简单、协议够全、社区成熟,frp 属于装上就不用惦记的工具,个人折腾 NAS、公司搭调试环境都吃得开。 平时我见到好用的东西会随手记下来,这篇算其中一件,下次挖到宝,照旧写给你。 源码:https://github.com/fatedier/frp 文档:https://gofrp.org/zh-cn/docs/ 了解更多内网穿透、frp、反向代理、远程访问、SSH 远程连接、NAS 远程访问、P2P 直连、开源项目、Go 开源工具 阅读原文:点击这里 该文章在 2026/8/31 15:00:14 编辑过 |
关键字查询
相关文章
正在查询... |