发布日期:2026年5月22日
FRP穿透Web服务:让本地网站对外网用户可访问
Web服务穿透是FRP最常见的应用场景之一。无论是前端开发者需要临时暴露本地开发服务器供客户预览,还是个人用户想让家中的NAS博客、智能家居面板对外可访问,亦或是企业需要将内网的测试环境临时开放给外部合作伙伴,FRP的HTTP/HTTPS穿透功能都能轻松胜任。相比TCP穿透需要记忆端口号,HTTP穿透支持域名路由,使用体验更加友好。
一、HTTP穿透基础配置
首先确保frps配置了vhost_http_port参数(如80或8080)。在frpc.ini中添加HTTP穿透配置:[web] type=http local_ip=127.0.0.1 local_port=8080 custom_domains=dev.example.com。这里local_port指向本地Web服务的端口,custom_domains指定绑定的域名。域名DNS解析需要指向frps服务器的IP地址。配置完成后,访问http://dev.example.com(如果vhost_http_port是80)或http://dev.example.com:8080(如果vhost_http_port是8080)即可访问本地Web服务。
二、HTTPS穿透与证书配置
对于需要HTTPS的Web服务,有两种方案:方案一,本地Web服务本身已配置HTTPS,使用type=https穿透,FRP透传加密流量;方案二,在frps服务器上配置证书,由FRP负责TLS终止。方案二更常用,配置方法:在frps所在服务器上放置证书文件,在frpc.ini中配置plugin=https2http和相关证书路径参数,FRP会自动处理HTTPS解密和HTTP转发。证书可以使用Let's Encrypt免费获取,配合certbot工具实现自动续期。
三、本地开发环境暴露实践
前端开发者常用场景:本地运行npm run dev启动开发服务器(默认端口5173或3000),配置FRP穿透后,将生成的公网URL发送给客户或同事即可实时预览。相比每次修改后部署到测试服务器,这种方式效率大幅提升。建议为临时预览场景设置随机子域名(如dev-abc123.example.com),预览结束后停止frpc,避免开发环境长期暴露。也可以配合FRP的URL路由功能,在一个frpc实例上同时穿透多个本地服务(前端、后端API、Mock服务等)。