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.inifrpc.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_portremote_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_portserver_addr保持不变的情况下,客户端会在后台尝试重新连接服务端,如果配置了start参数,可以指定启动时自动连接,对于生产环境,建议使用systemd或supervisor等进程管理工具托管frpc进程,确保服务在崩溃或重启后能自动拉起。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/473532.html

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

相关推荐

  • 如何用FreeBSD搭建web主机?FreeBSD搭建web主机详细教程

    FreeBSD搭建Web主机的核心优势在于其极致的系统稳定性与网络安全性能,适合对服务器 uptime 有极高要求且具备一定Linux基础的技术人员,通过Ports集合可灵活编译出轻量级且无冗余服务的Web环境,在云计算和容器技术盛行的今天,选择FreeBSD作为Web服务器操作系统似乎有些“复古”,但业内专家……

    2026年7月3日
    200
  • AI编程大模型哪个好用?2026主流AI编程工具对比

    2026年AI编程大模型对比显示,GitHub Copilot在生态集成上仍占优势,但通义灵码和Cursor在代码生成准确率与本地隐私保护上已形成差异化竞争力,具体选择需根据团队技术栈与预算决定,主流AI编程工具核心能力横向测评在2026年的开发环境中,开发者不再单纯追求“能写代码”,而是关注“能否无缝融入工作……

    2026年6月13日
    5600
  • 服务器和客户端究竟有何区别?服务器与客户端的区别

    服务器是提供资源和服务的“大脑”,客户端是发起请求和展示内容的“手脚”,两者通过网络协议协作,共同完成数据交互与业务处理,服务器与客户端的核心定义及角色差异在理解两者区别之前,我们需要先厘清它们在数字世界中的基本定位,业内专家指出,这种分工模式是现代互联网架构的基石,服务器:资源的守护者与分发者服务器(Serv……

    2026年7月4日
    14100
  • 大模型的贪心解码是什么?大模型解码算法有哪些

    大模型的贪心解码(Greedy Decoding)是一种在每一步生成时,直接从概率分布中选取最高概率词元作为输出的确定性策略,其核心特征是速度快、逻辑单一,但容易陷入重复或局部最优,贪心解码的核心机制与工作原理想象你在玩一个填字游戏,规则是每次只能填一个格子,且必须填那个“看起来最正确”的字,贪心解码就是这种思……

    2026年6月22日
    2310
  • AI大模型能力进化有多强?AI大模型发展趋势

    AI大模型正在从单纯的“对话工具”进化为具备深度推理、多模态交互及自主执行能力的“智能体”,其核心价值已从信息获取转向复杂任务的自动化解决,从“问答机器”到“自主智能体”的范式转移早期的AI模型主要扮演“百科全书”的角色,用户提问,模型检索并生成答案,这种交互模式虽然高效,但局限于单次、孤立的指令执行,2026……

    2026年6月14日
    4000
  • 大模型全参数微调数据集怎么准备?如何构建高质量训练数据

    准备大模型全参数微调数据集的核心在于构建高质量、高纯度且领域垂直的结构化数据,通过清洗去重、格式对齐与指令增强,确保模型能精准学习特定任务的逻辑与风格,全参数微调(Full Fine-Tuning)不同于参数高效微调,它需要更新模型的所有权重,这意味着数据的质量直接决定了模型的“智商”上限,如果数据像垃圾食品……

    2026年6月17日
    3600
  • 服务器怎么用键盘重启?服务器键盘重启快捷键

    在服务器无法通过图形界面响应时,最直接的键盘重启方式是使用组合键发送硬件级信号,或登录控制台执行系统级重启命令,具体操作取决于服务器类型及远程管理权限,服务器重启并非简单的按下电源键,而是一场涉及硬件指令、操作系统内核以及远程管理通道的精密协作,许多运维新手在面对黑屏或卡顿的服务器时,第一反应是寻找物理电源键……

    2026年7月3日
    13800
  • 服务器连接客户端Qt失败怎么办?Qt网络编程教程

    服务器与客户端基于Qt框架连接的核心在于利用TCP/IP协议建立稳定通道,并通过信号与槽机制实现高效的数据交互,关键在于处理好网络异步性与界面线程安全的平衡,在2026年的物联网与分布式系统开发语境下,Qt依然是跨平台应用开发的基石,许多开发者在面对“qt服务器客户端通信延迟”这一痛点时,往往忽略了底层协议选型……

    2026年7月7日
    20000
  • 非结构化数据库mysql是什么?mysql非结构化数据存储方案

    MySQL并非原生非结构化数据库,而是关系型数据库,但通过JSON数据类型及索引优化,它能高效处理半结构化数据,成为许多企业在2026年应对复杂业务场景的首选方案,在2026年的技术选型讨论中,经常有人问起MySQL能不能搞定非结构化数据,直接给结论:MySQL本身是关系型的,但它通过强大的JSON支持,已经能……

    2026年7月1日
    600
  • 图灵ai大模型下载不了怎么办?如何免费获取最新安装包

    图灵AI大模型目前并未提供面向个人用户的直接“下载”安装包,其核心能力主要通过API接口或云端平台调用,企业用户可通过官方渠道申请私有化部署方案,在2026年的技术语境下,许多开发者和技术决策者仍习惯性地寻找类似传统软件那样的.exe或.dmg文件来安装AI模型,这种认知偏差源于对生成式人工智能架构的误解,现代……

    2026年6月14日
    3400

发表回复

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