--- title: "frp" type: entity tags: [networking, open-source, golang, tunneling, self-hosted] last_updated: 2026-04-03 --- # frp ## Overview **frp(Fast Reverse Proxy)** 是一款开源的高性能内网穿透工具,由 Go 语言编写,通过客户端-服务端架构(frps + frpc)建立反向隧道,使处于 NAT 或防火墙后的内网服务可以被公网访问。本 Wiki 使用 **frp v0.65.0**(INI 配置文件格式)。 ## Core Architecture ``` 公网用户 → VPS:7000(frps) ←——— 反向隧道 ←——— frpc(内网设备) ``` ## Components - **frps**(frp server):运行在公网 VPS,监听 7000 端口(默认),接收 frpc 连接,管理端口映射 - **frpc**(frp client):运行在内网设备,主动连接 frps,建立反向隧道 ## Supported Protocol Types | 类型 | 说明 | 适用场景 | |------|------|---------| | TCP | 原始 TCP 流量 | SSH、任意 TCP 端口 | | UDP | 原始 UDP 流量 | DNS、视频流 | | HTTP/HTTPS | 应用层代理 | Web 服务 | | STCP | 加密 TCP | 安全内网访问 | | SUDP | 加密 UDP | 安全数据传输 | | XTCP | P2P UDP | 穿越对称型 NAT | ## 在本 Wiki 中的应用 - [[通过VPS+内网反向代理实现域名访问内网穿透]]:完整实践指南(frps + Caddy + 阿里云 DNS) - [[ubuntu-安装-frp-0-65-0-x86-64-操作笔记]]:Ubuntu frpc 客户端安装配置 - [[mac-mini-安装-frp-0-65-0-arm64-操作笔记]]:Mac Mini ARM64 安装配置 - [[家庭监控方案-prometheus-grafana-node-exporter-cadvisor-blackbox]]:通过 frp 穿透 Grafana/Prometheus 端口 ## frpc 端口映射表(内网 Ubuntu 192.168.3.47) | 服务 | local_port | remote_port | |------|-----------|-------------| | n8n | 5678 | 15678 | | Transmission | 9091 | 19091 | | Grafana | 3000 | 13000 | | SSH | 22 | 60022 | ## SSH 穿透注意事项 SSH 穿透使用 `type = tcp`,不走 Caddy(Caddy 只处理 HTTP/HTTPS)。SSH 连接命令:`ssh -p 60022 user@ubuntu1.ishenwei.online` ## Troubleshooting 详见 [[通过VPS+内网反向代理实现域名访问内网穿透]] 故障排查章节: 1. 确认 frps 监听端口 `ss -lntup | grep frps` 2. 确认 token 与 frpc 一致 `journalctl -u frps -n 100` 3. 确认防火墙放行 7000 端口 4. telnet 诊断确认连接是否到达 frps 5. 强制重启 frps + frpc ## Related Entities - [[RackNerd]]:托管 frps 的 VPS 提供商(IP: 192.227.222.142) - [[VPS]]:运行 frps 的公网服务器 ## Related Concepts - [[内网穿透]]:frp 是实现内网穿透的工具 - [[反向代理]]:Caddy 在 frp 上层提供 HTTPS 访问 - [[TCP隧道]]:frp 的 TCP 类型映射建立 TCP 隧道 ## References - GitHub: https://github.com/fatedier/frp - 文档: https://github.com/fatedier/frp#configuration