发布日期:2026年6月13日
FRP TCP穿透详解:任意TCP服务穿透配置指南
TCP是互联网最基础的传输协议,绝大多数网络服务都基于TCP构建——SSH、数据库、Web服务器、游戏服务器、消息队列等。FRP的TCP穿透功能可以将任意基于TCP的内网服务暴露到公网,是最通用、最灵活的穿透类型。本文将详细介绍TCP穿透的原理、配置方法和典型应用场景。
一、TCP穿透工作原理
TCP穿透的核心是端口映射:frps在公网服务器上监听指定的remote_port端口,当外部用户连接该端口时,frps通过已建立的反向隧道将连接转发给frpc,frpc再连接本地服务的local_port端口,形成完整的转发链路。与HTTP穿透通过域名路由不同,TCP穿透通过端口号区分不同的穿透服务——每个TCP穿透服务占用frps上的一个独立端口。这意味着TCP穿透需要为每个服务分配端口,端口管理是TCP穿透的重要考量。
二、TCP穿透基础配置
基础配置格式:[service_name] type=tcp local_ip=127.0.0.1 local_port=本地端口 remote_port=公网端口。local_ip通常设置为127.0.0.1(本机),也可以设置为内网其他机器的IP实现代理转发。local_port是内网服务监听的端口。remote_port是frps上开放的端口,外部用户通过frps的IP和此端口连接穿透服务。建议为不同类型的服务使用不同的端口段,便于管理:如SSH用6000-6099,数据库用7000-7099,游戏服务器用8000-8099。
三、典型TCP服务穿透案例
SSH穿透:[ssh] type=tcp local_port=22 remote_port=6000,连接命令ssh -p 6000 user@frps_ip。MySQL穿透:[mysql] type=tcp local_port=3306 remote_port=33060,连接命令mysql -h frps_ip -P 33060 -u user -p。Redis穿透:[redis] type=tcp local_port=6379 remote_port=63790。游戏服务器穿透(如Minecraft):[minecraft] type=tcp local_port=25565 remote_port=25565,玩家连接frps_ip:25565即可进入服务器。RDP远程桌面穿透:[rdp] type=tcp local_port=3389 remote_port=33890,使用远程桌面客户端连接frps_ip:33890。