Web / HTTP(S) 网站用 FRP 穿透
把家里或办公室的网站、管理后台、静态预览暴露到公网:在控制台创建 HTTP 隧道,用 frpc 指向本地 80 / 8080 / 5173 等端口即可。平台在 节点边缘终止 TLS,访问者用 https:// 打开,你这边不用上传证书。
HTTP 还是 HTTPS 隧道
| 协议 | TLS 在哪终止 | 什么时候选 |
|---|---|---|
| HTTP(推荐) | 节点 Caddy,平台托管证书 | 普通网站、WebSocket、开发预览 |
| HTTPS | 你的本地服务或 frpc https2http | 必须自备证书、端到端加密 |
| TCP | 不处理 HTTP | 非 HTTP 的端口转发 |
控制台里 HTTP 的说明是「托管 TLS」:对外同时能用 http:// 和 https://, 建议一律走 https://。HTTPS 协议是原始 TLS 透传,边缘不解密,本地必须自己 提供证书。
步骤
1. 启动本地网站
确认本机已经在监听,例如:
bash
curl -I http://127.0.0.1:8080frpc 只转发,不会替你启动 Nginx、Caddy 或 npm run dev。
2. 创建 HTTP 隧道
打开 控制台 → 隧道 → 创建隧道,协议选 HTTP。NiceFRP 会分配节点和主机名,形如:
text
https://<隧道ID>.us2.tunnel.nicefrp.com3. 连接本地端口
在隧道详情点 连接,填写:
- 本地服务地址:
127.0.0.1(或局域网 IP) - 本地服务端口:网站端口
下载配置后运行:
bash
frpc -c nicefrp-<tunnel-id>.toml出现 start proxy success 后,用控制台显示的 https:// 域名访问。
4. (可选)绑定自己的域名
付费套餐可以把 www.example.com 绑到同一条 HTTP 隧道,见 自定义域名。
WebSocket
同一条 HTTP 隧道即可升级 WebSocket,浏览器请使用 wss://。Vite HMR、 Socket.IO 的完整配置见 WebSocket 穿透。
本地反向代理注意
若本地还有一层 Nginx / Caddy 再转到应用,需要转发 Upgrade 头,否则页面能开、 WebSocket 会失败:
nginx
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;Caddy 的 reverse_proxy 默认已支持 WebSocket,一般不用额外配置。
常见问题
- 能打开 IP 或 http,https 证书报错 — 请用平台分配的主机名,不要用节点 IP 访问 HTTP 隧道;证书只签给
*.<节点>.tunnel.nicefrp.com。 - 502 / 空白页 — 本地服务没起来,或填错了端口。先在运行 frpc 的机器上
curl本地地址。 - 开发服务器 HMR 断连 — 见 WebSocket 穿透。
- 想用自己的证书 — 改用 HTTPS 隧道,并在本地提供证书(或 frpc
https2http插件)。