frp服务器和客户端怎么配置?frp内网穿透详细配置教程

FRP的核心原理是通过公网服务器中转内网流量,实现内网穿透,配置关键在于正确设置frps服务端与frpc客户端的配置文件,确保端口映射与认证令牌一致。

FRP服务器与客户端配置实战指南

在数字化转型的浪潮中,许多企业和个人开发者都面临着将内网服务暴露给公网的需求,无论是远程桌面控制、内网Web服务发布,还是IoT设备的数据回传,FRP(Fast Reverse Proxy)凭借其高性能和易用性,成为了业内共识认为的首选工具之一,配置FRP并非复杂的代码编写,而是一场关于网络拓扑与端口管理的精密配合。

frp内网穿透最新实践教程 从零开始详细步骤
加载中
frp内网穿透最新实践教程 从零开始详细步骤

服务端(frps)环境部署

服务端是FRP架构的大脑,负责接收来自客户端的连接请求并转发数据,选择一台拥有公网IP的云服务器(如简米云、酷番云或AWS)作为服务端是基础前提。

下载与解压

访问FRP的官方GitHub仓库,根据服务器操作系统(Linux/Windows)和架构(amd64/arm64)下载对应版本,以Linux为例,执行以下命令:


wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -xzvf frp_0.52.3_linux_amd64.tar.gz
cd frp_0.52.3_linux_amd64
核心配置文件frps.ini

配置文件是服务端行为的定义书,创建一个名为frps.ini的文件,填入以下基础配置:


[common]
# 绑定端口,默认7000,建议修改为非标准端口以增加安全性
bind_port = 7000
# 绑定地址,0.0.0.0表示监听所有网卡
bind_addr = 0.0.0.0
# 身份验证令牌,必须与客户端保持一致
token = your_strong_password
# Dashboard监控面板端口
dashboard_port = 7500
# 监控面板用户名和密码
dashboard_user = admin
dashboard_pwd = admin_password

业内专家指出,设置强密码的token是防止未授权访问的第一道防线,切勿使用默认值或简单字符串。

启动服务端

使用nohup命令后台运行,确保服务在终端关闭后依然存活:

frp服务器和客户端怎么配置?frp内网穿透详细配置教程


nohup ./frps -c ./frps.ini > frps.log 2>&1 &

你可以通过浏览器访问http://<服务器IP>:7500,输入预设的用户名和密码,查看实时连接状态和流量统计。

客户端(frpc)内网穿透配置

客户端部署在内网机器上,它负责监听本地服务,并通过加密隧道将流量转发给服务端。

下载与解压

在需要穿透的内网机器上下载相同版本的FRP客户端,解压后进入目录。

核心配置文件frpc.ini

创建frpc.ini文件,配置内容如下:


[common]
# 服务端地址
server_addr = <你的公网服务器IP>
# 服务端端口
server_port = 7000
# 身份验证令牌,必须与服务端一致
token = your_strong_password

示例1:远程桌面(RDP)穿透

[rdp]type = tcplocal_ip = 127.0.0.1local_port = 3389remote_port = 6000

示例2:Web服务穿透

[web]type = httplocal_ip = 127.0.0.1local_port = 80custom_domains = <你的域名>

这里需要特别注意,remote_port是公网访问时使用的端口,而local_port是内网服务实际监听的端口,对于Web服务,推荐使用HTTP类型,并绑定自定义域名,这样可以利用FRP的HTTP路由功能,实现基于域名的多服务分发。

启动客户端

同样使用后台运行命令:


nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &

FRP服务器和客户端配置常见问题排查

在实际操作中,连接失败是最常见的问题,以下是几种典型场景的解决方案。

连接被拒绝或超时

如果客户端启动后日志显示连接失败,首先检查防火墙,云服务器厂商(如简米云安全组、酷番云安全组)默认会拦截非标准端口,务必在控制台放行bind_port(如7000)和dashboard_port(如7500)对应的入方向规则。

Token认证失败

日志中出现authentication failed

frp服务器和客户端怎么配置?frp内网穿透详细配置教程

错误,通常是因为frps.ini和frpc.ini中的token字段不一致,请仔细比对,注意大小写和空格,建议将此字段设置为长随机字符串,避免使用特殊字符。

Web服务无法访问

对于HTTP类型的穿透,如果绑定域名后无法访问,需确保:

  1. 域名已解析到公网服务器IP。
  2. 服务器防火墙放行了80/443端口(如果使用默认HTTP端口)。
  3. 在frpc.ini中正确配置了custom_domains。

FRP与Ngrok对比及选型建议

许多用户在开始时会纠结于选择FRP还是Ngrok,这两种工具各有优劣,适用于不同场景。

特性 FRP Ngrok
部署方式 需自建服务端,完全掌控 主要使用官方公共服务器,也可自建
安全性 高,数据完全私有 中等,使用公共服务器时数据经过第三方
成本 仅需服务器费用,无额外订阅费 免费额度有限,高级功能需付费订阅
稳定性 取决于自建服务器性能 官方服务稳定,但国内访问速度可能受限
适用人群 有服务器资源、注重隐私和长期稳定性的开发者 快速测试、临时分享、无服务器资源的用户

据工信部数据,近年来国内对数据安全的监管日益严格,自建FRP服务因其数据不经过第三方平台,成为企业内网穿透的主流选择,对于个人开发者而言,如果仅用于临时调试,Ngrok的便捷性无可替代;但若涉及生产环境或敏感数据,FRP是更稳妥的方案。

FRP服务器和客户端配置进阶优化

当基础配置完成后,可以通过以下优化提升体验。

使用HTTPS加密

在frpc.ini的HTTP代理配置中,可以指定

frp服务器和客户端怎么配置?frp内网穿透详细配置教程

tls_enable = true,FRP会自动处理TLS握手,但这需要服务端配置SSL证书,或者使用支持SNI的域名解析。

多服务复用端口

通过HTTP类型的custom_domains,你可以在同一个remote_port(如80)下映射多个不同的内网服务,只需为每个服务绑定不同的域名即可,这大大节省了公网端口资源。

日志轮转与监控

建议配置日志轮转策略,避免日志文件无限增长占用磁盘空间,可以使用log_max_days参数限制日志保留天数,定期监控Dashboard的流量使用情况,及时发现异常连接。

Q&A:FRP服务器和客户端配置常见疑问

FRP支持UDP协议穿透吗?

支持,在frpc.ini中,将type设置为udp即可,穿透DNS服务或某些游戏服务器,配置方式与TCP类似,只需指定local_port和remote_port,需要注意的是,UDP是无连接的,因此不适合需要保持长连接的场景,且防火墙对UDP的拦截策略可能与TCP不同,需单独检查。

FRP配置中local_port和remote_port有什么区别?

local_port是内网机器上实际运行服务的端口,例如你本地搭建的Web服务监听在8080端口,那么local_port就是8080。remote_port是公网访问时使用的端口,例如你希望公网用户通过http://<IP>:8080访问,那么remote_port就是8080,两者可以相同,也可以不同,取决于你的网络规划和端口占用情况。

FRP客户端掉线后如何自动重连?

FRP客户端默认支持断线重连,在frpc.ini中,server_port和server_addr保持不变的情况下,客户端会在后台尝试重新连接服务端,如果配置了start参数,可以指定启动时自动连接,对于生产环境,建议使用systemd或supervisor等进程管理工具托管frpc进程,确保服务在崩溃或重启后能自动拉起。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/473532.html

赞 (0)
如何搭建股票数据仓库?股票数据仓库搭建步骤详解
上一篇 2026年7月8日 21:56
CDN加速原理是什么,CDN加速
下一篇 2026年7月8日 21:58

相关推荐

  • 服务器端跳转和客户端跳转的例子是什么?不同跳转方式的区别

    服务器端跳转(如301/302)由服务器直接响应,速度快且利于SEO权重传递;客户端跳转(如Meta刷新或JS重定向)由浏览器执行,延迟高且可能丢失权重,建议优先使用服务器端方案,在Web开发的日常实践中,页面跳转看似只是简单的“换个地址”,实则涉及底层协议交互、用户体验以及搜索引擎优化(SEO)的深层逻辑,很……

    2026年7月5日
    16400
  • 负载均衡RDS是什么?RDS负载均衡配置方法

    “负载均衡 RDS” 这个表述在技术语境中通常存在概念上的混淆,因为 负载均衡(Load Balancer) 和 RDS(Relational Database Service,关系型数据库服务) 属于云计算架构中不同层级的组件,它们的功能和交互方式有明确区分,下面我将为你详细解释这两者的关系、常见误区以及正确……

    2026年7月11日
    8300
  • Ollama如何与FastGPT配合?Ollama接入FastGPT教程

    Ollama与FastGPT配合的核心在于将本地大模型作为FastGPT的后端推理引擎,通过API接口实现数据隐私保护与低成本私有化部署,无需购买昂贵的云端算力,这种组合方案解决了企业和个人用户对数据敏感度高、预算有限以及需要离线运行的痛点,FastGPT提供强大的工作流编排和知识库管理界面,而Ollama负责……

    2026年6月19日
    2100
  • 服务器与虚拟主机有什么区别?,哪个更适合网站?

    服务器和虚拟主机最本质的区别在于资源分配方式,虚拟主机是多个用户共享一台服务器的硬件资源,而服务器则让用户独享整台机器的计算能力,如果你的网站流量不大、预算有限,虚拟主机是经济的选择;如果对性能、安全和控制有较高要求,独立服务器或云服务器更合适,虚拟主机和服务器哪个好?先看它们的工作原理要回答“虚拟主机和服务器……

    2026年7月25日
    1800
  • 大模型推理显存怎么算?大模型推理显存占用公式详解

    大模型推理的显存占用主要由模型权重、KV缓存和激活值三部分构成,其中KV缓存随序列长度线性增长,是长文本场景下显存爆炸的核心元凶,很多开发者在部署大模型时,常遇到“明明显存够大,却跑不起来”的尴尬局面,这通常是因为只计算了模型权重,而忽略了推理过程中的动态显存开销,理解显存占用的底层逻辑,不仅是优化性能的关键……

    2026年6月22日
    2200
  • IDEA配置Tomcat测试?,Tomcat常用配置有哪些?

    在IntelliJ IDEA中配置Tomcat服务器并测试,只需在Run/Debug Configurations中添加本地Tomcat Server,指定Tomcat主目录,然后部署Web Artifact即可启动,Tomcat的常用配置需掌握端口修改、内存分配和日志设置等核心操作,IDEA配置Tomcat服……

    2026年8月1日
    1100
  • 如何实现IP遍历域名和域名摘除IP,具体步骤是什么?

    域名摘除IP操作是DNS管理中最关键的技能之一,它能让你在几秒内切断某个域名对所有特定IP的访问,解决迁移、故障隔离或安全防护等痛点,为什么域名摘除IP是刚需?真实场景全解析在线上业务的生命周期里,IP地址变动几乎是常态,无论是服务器维护、云资源迁移,还是应对DDoS攻击,快速摘除域名与IP的绑定关系都是运维人……

    2026年8月6日
    500
  • 如何做好idc机房维护管理,机房日常巡检包括哪些内容?

    IDC机房维护的核心在于预防性巡检与标准化流程,而机房管理则需结合智能化监控与系统化运维,才能确保数据中心稳定高效运行,近年来,随着企业数字化转型加速,机房运维的复杂性日益增加,不少运维团队在面对设备老化、环境波动或突发故障时,往往因缺乏系统化的管理手段而陷入被动,无论是自建机房还是托管机房,维护与管理的核心逻……

    2026年8月6日
    1100
  • info域名注册怎么选?,域名注册哪家好?

    对于寻找性价比高、含义明确的域名后缀的用户,info域名注册是一个值得认真考虑的选项,尤其适合信息类网站和个人项目,但在做出决定前,需要了解其注册价格、适用场景以及与主流后缀的差异,info域名注册价格与性价比分析很多人刚接触info域名时,第一反应就是问info域名注册价格贵不贵,从市场整体来看,info域名……

    2026年8月17日
    300
  • form表单验证怎么实现?form表单验证必填项

    前端表单验证是确保用户输入数据合法性和完整性的关键步骤,以下是一个使用 HTML、CSS 和 JavaScript 实现简单表单验证的示例:HTML 结构<!DOCTYPE html><html lang="zh-CN"><head> <meta c……

    2026年7月12日
    9600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注