FRP客户端与服务端配置实现内网穿透

作者:linkyang
标签:
发布时间:2025年09月11日 22:49:53
更新时间:2025年09月11日 22:49:53

什么是FRP?

FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,可以帮助您轻松地将内网服务暴露到公网。无论您是想在外网访问家里的NAS,还是需要调试微信开发本地项目,FRP都能提供安全可靠的内网穿透解决方案。

基础概念

在开始配置前,先了解两个核心组件:

  • FRP服务端 (frps):部署在具有公网IP的服务器上,用于接收外部请求并转发到内网客户端
  • FRP客户端 (frpc):部署在内网环境中,用于注册服务并与服务端建立连接

服务端配置

1.编辑服务端配置文件(frps.toml):

sh
[common]
# 服务端监听端口
bindPort = 7000

# 认证令牌,确保客户端连接安全
token = your_secure_token_here

# 仪表板端口和认证信息
dashboardPort = 7500
dashboardPser = admin
dashboard_pwd = admin_password

# 日志设置
log_file = ./frps.log
log_level = info
log_max_days = 3
  1. 启动服务端

使用以下命令启动FRP服务端:

bash
./frps -c ./frps.toml

客户端配置

  1. 配置frpc.toml

编辑客户端配置文件:

sh
[common]
# 服务端地址和端口
serverAddr = your_server_ip
server_port = 7000

# 与服务端一致的认证令牌
token = your_secure_token_here

# 日志设置
log_file = ./frpc.log
log_level = info
log_max_days = 3

# 示例:Web服务穿透
[web]
type = tcp
localIp = 127.0.0.1
localPort = 80
remotePort = 8080

# 示例:SSH穿透
[ssh]
type = tcp
localIp = 127.0.0.1
localPort = 22
remotePort = 6000

# 示例:HTTP域名代理
[web2]
type = http
localPort = 8080
customDomains = your_domain.com

# 示例:HTTPS服务
[web3]
type = https
localPort = 443
customDomains = your_domain.com
  1. 启动客户端
bash
# Linux/Mac
./frpc -c ./frpc.toml

# Windows
frpc.exe -c frpc.toml

客户端每次启动太麻烦?我们可以创建一个批处理脚本文件快速启动

1.在客户端根目录创建一个run_frpc.bat的点bat文件。

图片

2.编辑文件在文件内输入以下内容

shell
@echo off
frpc.exe -c frpc.toml
pause

下次启动直接双击此文件即可。

安全注意事项

  1. 使用强token:避免使用简单token,建议使用随机生成的复杂字符串
  2. 限制端口访问:使用防火墙只开放必要的端口
  3. 定期更新:保持FRP版本最新,避免已知漏洞
  4. 监控日志:定期检查日志文件,发现异常连接尝试

常见问题解决

Q: 客户端无法连接服务端 A:检查服务器防火墙设置,确保bindPort端口已开放

Q: 服务无法访问 A:检查客户端本地服务是否正常运行,以及端口映射是否正确

Q: 连接不稳定 A:调整心跳配置,增加超时时间

sh
[common]
# 增加心跳超时时间
heartbeatTimeout = 90

FRP是一个强大而灵活的内网穿透工具,通过本文的配置指南,您应该能够成功搭建自己的内网穿透服务。无论是个人使用还是小型团队协作,FRP都能提供稳定可靠的解决方案。

记得在实际使用中根据您的具体需求调整配置,并始终将安全放在首位!!!


注意: FRP从v0.52.0版本开始,引入了对TOML(以及YAML和JSON)配置文件的支持,并逐渐弃用了旧的INI格式.本文基于FRP v0.52.3版本,不同版本配置可能略有差异,请以官方文档为准。

登录后可查看并参与评论

Gitee 登录

目录导航

什么是FRP?
服务端配置
客户端配置