限时福利领取


背景与痛点

在开发实时应用(如在线聊天、实时监控)时,WebSocket 是常见协议。但本地开发环境通常位于 NAT 或防火墙后,外部无法直接访问。传统方案需要公网服务器或复杂网络配置,而 FRP(Fast Reverse Proxy)通过轻量级反向代理解决这一问题。

内网穿透示意图

技术选型:FRP vs 其他方案

  • FRP 优势
  • 开源免费,配置灵活
  • 支持 TCP/UDP/HTTP/WebSocket 多种协议
  • 流量可加密(TLS)
  • 资源占用低

  • 对比 ngrok

  • ngrok 提供即用型服务但免费版限制多
  • FRP 需自建服务器但可控性更强

核心实现步骤

  1. 准备公网服务器
  2. 安装 FRP 服务端(frps)
  3. 开放所需端口(默认 7000)

  4. 配置服务端(frps.ini)

    [common]
    bind_port = 7000  # 服务端监听端口
    token = your_secure_token  # 认证密钥
  5. 配置客户端(frpc.ini)

    [common]
    server_addr = your_server_ip
    server_port = 7000
    token = your_secure_token
    
    [websocket_app]
    type = ws
    local_port = 8080  # 本地WebSocket服务端口
    custom_domain = ws.yourdomain.com  # 绑定域名

配置流程

性能优化技巧

  • 心跳检测:增加 heartbeat_timeout 防止连接断开
  • 多路复用:启用 pool_count 提升并发能力
  • 压缩传输:设置 use_compression = true 减少带宽

避坑指南

  • 连接超时:检查防火墙是否放行端口
  • 证书错误:WebSocket over TLS 需正确配置证书路径
  • 域名解析:确保 DNS 已指向 FRP 服务器 IP

安全建议

  1. 强制使用 TLS 加密
    [common]
    tls_enable = true
  2. IP 白名单限制
    allow_ports = 7000,8080

实践建议

动手尝试时,建议先用测试环境验证基础功能,再逐步添加安全配置。对于生产环境,可结合 Nginx 做负载均衡,并通过日志监控连接状态。

Logo

音视频技术社区,一个全球开发者共同探讨、分享、学习音视频技术的平台,加入我们,与全球开发者一起创造更加优秀的音视频产品!

更多推荐