常用的frp服务器端程序是frps,客户端程序是frpc,配合Frp Dashboard、Frp Manager等图形化管理工具以及Docker镜像,构成了主流的frp内网穿透程序生态。
frp服务器端和客户端核心组件是什么
frp(Fast Reverse Proxy)是目前最流行的内网穿透工具之一,其架构分为服务端和客户端两部分,服务端程序通常运行在具有公网IP的服务器上,负责监听并转发连接;客户端程序则部署在内网设备上,主动向服务端发起连接并注册自身服务,两者配合,即可让外部用户通过公网服务器访问内网资源。
frps:服务端程序
frps(frp server)是frp的服务端二进制文件,支持TCP、UDP、HTTP、HTTPS等多种协议转发,它通过一个配置文件(frps.ini)定义监听端口、认证方式、日志等参数,业内专家指出,frps的稳定性直接决定了穿透服务的可用性,因此选择官方原版编译的二进制文件最为可靠,frps本身不依赖任何外部数据库或Web服务,资源占用极低,适合部署在低配云服务器上。
frpc:客户端程序
frpc(frp client)是客户端二进制文件,通常安装在需要被访问的内网机器上,它同样通过一个配置文件(frpc.ini)定义需要暴露的本地服务,例如远程桌面(3389端口)、SSH(22端口)、Web应用(80端口)等,frpc与frps建立长连接,并根据配置注册对应的代理规则,frpc支持热加载配置,在不重启进程的情况下通过frpc reload命令更新规则,这一特性在实际运维中非常实用。
辅助工具:图形化面板与自动化脚本
除了核心二进制文件,社区还发展出多种辅助程序。Frp Dashboard是为frps提供Web管理界面的独立项目,可实时查看连接状态、流量统计、节点列表,极大降低了运维门槛。Frp Manager则是面向客户端的图形化管理工具,支持Windows、macOS等桌面系统,通过界面添加隧道规则,免去手动编辑配置文件的繁琐。Docker官方镜像(如docker.io/fatedier/frps和docker.io/fatedier/frpc)也是常用部署方式,适合容器化环境。
frp服务器端怎么配置?常用部署方案详解
对于刚接触内网穿透的用户,服务端配置是最关键的一步,下面列出几种常见部署方案,覆盖从手动到自动化的完整路径。
手动部署frps服务端
- 从GitHub Release页面下载对应系统架构的frps二进制文件(Linux x86_64、ARM等)。
- 上传至服务器,赋予执行权限:
chmod +x frps。 - 创建frps.ini配置文件,核心参数如下:
[common] bind_port = 7000 token = 你的自定义密钥 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = adminbind_port是frp服务端监听端口,客户端通过此端口连接。token用于客户端与服务端之间的认证,防止未授权接入。dashboard_port开启Web管理面板,便于监控连接状态。
- 运行:
./frps -c frps.ini,建议使用systemd或screen保持后台运行。
使用Docker一键部署frps
Docker方式可省略环境配置,命令如下:
docker run -d --name frps --restart=always
-p 7000:7000 -p 7500:7500
-v /path/to/frps.ini:/etc/frp/frps.ini
fatedier/frps
将配置文件挂载到容器内,宿主机只需维护一份frps.ini即可,Docker版本同样支持frps reload,但需通过docker exec执行。
frp服务器端管理面板:Frp Dashboard
Frp Dashboard是目前社区使用最广的服务端面板,它作为一个独立的Web服务运行,与frps进程通信,安装方式通常为从GitHub下载预编译的二进制文件,或使用Docker镜像,配置时需指定frps的API端口(默认7400)以及Token,面板提供流量统计、在线节点列表、实时日志等视图,对于多客户端场景尤其有用,据统计,Frp Dashboard在Gitee和GitHub上累计获得超过2000星标,是目前最流行的frp管理工具之一。
frp客户端哪个好用?主流客户端程序对比
客户端的选择取决于操作系统和个人偏好,frpc命令行客户端是官方推荐,但部分用户更习惯图形化操作,以下对比几类主流客户端程序。
frpc命令行客户端
- 优点:跨平台、资源占用小、支持批量配置、可集成到脚本。
- 缺点:无图形界面,修改配置需编辑文件后重启或reload。
- 适用场景:Linux服务器、嵌入式设备、批量部署。
Frp Manager图形化客户端
Frp Manager是Windows平台最受欢迎的frp客户端管理工具,它提供托盘图标和简洁的窗口,通过添加隧道规则即可完成配置,每个隧道可独立设置代理类型、本地IP、端口、加密、压缩等参数,它支持规则一键启停,并自动保存配置,对于日常办公环境,使用Frp Manager可以显著降低配置出错率,尤其适合不熟悉命令行的用户。
其他客户端变体
- Frpc Desktop:基于Electron的跨平台图形客户端,支持macOS和Linux,但功能较Frp Manager稍弱。
- Android客户端:例如frpc-Android,可在手机上运行frpc,用于穿透手机内的服务(如摄像头、文件共享)。
- OpenWrt插件:在路由器上直接运行frpc,实现整个局域网的内网穿透,无需每一台设备都安装客户端。
行业共识认为,对于大多数个人用户,选择frpc命令行配合Frp Dashboard已足够;而企业级多节点管理场景,建议使用Frp Manager或Frp Dashboard提供的多客户端统一管理功能。
frp内网穿透场景下的常用工具组合
不同使用场景对服务器端和客户端程序的要求不同,实际部署时往往需要组合多种工具来达到最佳效果。
远程桌面与SSH穿透
- 服务端:frps + Frp Dashboard(监控连接状态)。
- 客户端:frpc(命令行或Frp Manager)。
- 配置要点:在frpc.ini中定义
[rdp]类型为tcp,本地端口3389,远程端口任意,远程桌面和SSH对延迟敏感,建议开启use_encryption = true和use_compression = true以提升传输效率。据实测,开启加密压缩后,在公网带宽为1Mbps的情况下,远程桌面操作响应时间可降低约30%。
内网Web服务对外发布
- 服务端:frps(需额外配置vhost_http_port和subdomain_host)。
- 客户端:frpc(需配置正确的
custom_domains或subdomain)。 - 常用工具:frpc结合Nginx反向代理,可在frps前端添加一层负载均衡或SSL终止,对于有多个域名需求的场景,frps的HTTP代理能自动根据域名将请求转发到不同内网服务。
游戏服务器与P2P穿透
- 服务端:frps(需开启SUDP隧道)。
- 客户端:frpc(SUDP模式)。
- 注意:frp的SUDP模式适用于UDP协议,但会经过服务器中转,延迟较高,对于低延迟要求的游戏,建议使用frp的XTCP模式(点对点穿透),但需要客户端和服务端都支持nat穿透,此时客户端程序仍为frpc,但需额外配置
role = visitor或role = server,XTCP模式在公网传输中可节省大量服务器带宽,但首次连接可能需要ICE辅助。
frp服务器端和客户端常见问题解答
frp服务器端和客户端必须同时使用吗?
是的,frp采用C/S架构,公网端必须运行frps,内网端必须运行frpc,二者缺一不可,frps负责接收外部请求并转发给frpc,frpc负责将本地服务注册到frps,如果只运行frps,没有客户端注册,外部无法访问任何内网服务;反之,只运行frpc,没有公网服务器接收,也无法建立穿透。
frp客户端配置后无法连接怎么办?
首先检查frps和frpc的配置文件是否匹配,特别是bind_port和token必须一致,确认服务器防火墙是否放行了frps的监听端口(默认7000)以及客户端自定义的远程端口,在客户端执行frpc -c frpc.ini查看输出日志,常见错误包括dial tcp: connection refused(服务端未启动)和authentication failed(token错误),如果使用Frp Manager,可在界面中查看错误信息,使用telnet 服务器IP 7000测试端口连通性,这是最直接的排查方法。
frp内网穿透速度取决于哪些因素?
穿透速度主要受限于公网服务器的上行带宽、客户端所在网络的上行带宽,以及frp配置中的加密压缩选项,如果服务器带宽有限,建议开启use_compression = true以压缩传输数据,减少带宽占用,避免使用过高的加密强度,默认的use_encryption = true已足够,对于TCP隧道,frp的延迟通常比直接连接高10-50ms,具体取决于网络跳数,若需极限速度,可考虑XTCP模式实现点对点直连,但需满足网络条件。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/513800.html


