--- title: "TCP隧道" type: concept tags: [networking, tunnel, tcp, ssh, frp] last_updated: 2026-04-03 --- ## Aliases - TCP Tunnel - TCP 隧道 ## Definition TCP 隧道(TCP Tunnel)是一种通过已建立的连接传输 TCP 数据包的技术,允许将本地 TCP 端口的流量通过隧道传输到远程位置。常见实现方式包括 SSH 隧道(`ssh -L` / `ssh -R`)和 frp 的 TCP 类型映射。TCP 隧道与 HTTP 代理不同,它传输的是原始 TCP 数据,不解析应用层协议。 ## SSH 隧道 ```bash # 本地端口转发(Local Port Forwarding):将远程端口映射到本地 ssh -L local_port:remote_host:remote_port user@gateway # 反向端口转发(Reverse Port Forwarding):将本地端口映射到远程 ssh -R remote_port:local_host:local_port user@gateway ``` ### SSH 反向隧道限制 - 需要保持 SSH 连接持续活跃(可用 `autossh` 自动重连) - 不适合多客户端并发访问 - 无 Web 管理界面 - 不支持 UDP ## frp TCP 隧道 详见 [[frp]] ## 在本 Wiki 中的应用 - [[通过VPS+内网反向代理实现域名访问内网穿透]]: - frp TCP 映射 NAS 端口(5000→15000) - frp TCP 映射 Ubuntu 端口(5678→15678, 9091→19091, 3000→13000) - frp TCP 映射 SSH(22→60022) - SSH 穿透不走 Caddy(纯 TCP),Caddy 只处理 HTTP/HTTPS ## Related Concepts - [[内网穿透]]:TCP 隧道是内网穿透的底层实现机制 - [[反向代理]]:HTTP/HTTPS 流量在 TCP 隧道之上还需要反向代理层(Caddy) - [[frp]]:frp 支持 TCP/UDP/HTTP/WebSocket 等多种隧道类型 ## References - SSH tunneling: `man ssh`(搜索 "SSH_PORT_FORWARDING" 或 "-L/-R") - frp TCP 类型: https://github.com/fatedier/frp#configuration