🗣 Wd提问: frp 虚拟主机
🤖 Ai回答: 以下是关于 FRP 虚拟主机 的详细解释和配置指南。
FRP (Fast Reverse Proxy) 是一款高性能的反向代理应用,主要用于将内网服务(如网站、SSH、远程桌面等)安全、便捷地暴露到公网上。FRP 虚拟主机 模式是其中一项非常常用的功能,它允许您在同一个公网服务器(FRPS)的同一个端口上,通过不同的域名来访问内网中多个不同的 Web 服务。
这非常类似于传统的 Web 服务器(如 Nginx, Apache)的虚拟主机 (Virtual Host) 功能。
一、核心概念与工作原理
假设你有两个内网网站:
* `site1.local` (运行在 `192.168.1.100:80`)
* `site2.local` (运行在 `192.168.1.101:8080`)
你只有一个公网服务器,IP 是 `1.2.3.4`。你想让用户通过:
* `www.domain1.com` 访问 `site1.local`
* `www.domain2.com` 访问 `site2.local`
传统方法:你需要为每个内网服务在 FRPS 上配置不同的远程端口,例如 `1.2.3.4:8081` 指向 site1,`1.2.3.4:8082` 指向 site2。这样既不优雅(端口难记),也可能遇到端口冲突或防火墙限制。
FRP 虚拟主机方法:
1、 将两个域名 `www.domain1.com` 和 `www.domain2.com` 的 DNS A 记录都解析到你的公网服务器 IP `1.2.3.4`。
2、 在 FRPS 端,只开启一个端口(例如 `80`)用于接收所有 Web 请求。
3、 在 FRPC(客户端)配置中,为每个内网服务指定一个 `custom_domains` 参数。
4、 当用户访问 `www.domain1.com:80` 时,FRPS 会根据 HTTP 请求头中的 `Host` 字段识别出这是 `www.domain1.com` 的请求,然后根据配置将其转发给对应的 FRPC 客户端,该客户端最终将请求送达内网的 `192.168.1.100:80`。
整个过程对用户是透明的,他们感觉就像直接访问了两个独立的公网网站。
二、配置步骤
1、准备公网服务器 (FRPS)
编辑 FRPS 的配置文件 `frps.ini`:
ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000 FRP 的控制端口,用于和客户端通信
虚拟主机关键配置:用于 HTTP 服务的端口
vhost_http_port = 80
如果你需要 HTTPS 虚拟主机,还可以开启以下端口
vhost_https_port = 443
可选:仪表板端口
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = your_password
认证令牌(建议设置,增强安全性)
token = your_secure_token_here
启动 FRPS 服务:
bash
frps -c ./frps.ini
2、准备内网机器 (FRPC)
为第一个网站(`site1.local`)配置 FRPC 客户端 `frpc-site1.ini`:
ini
[common]
server_addr = 1.2.3.4 你的公网服务器 IP
server_port = 7000 FRPS 的 bind_port
token = your_secure_token_here 必须和 FRPS 设置的 token 一致
定义第一个 Web 服务代理
[web-site1]
type = http 代理类型为 HTTP
local_ip = 192.168.1.100 内网网站的实际 IP
local_port = 80 内网网站的实际端口
custom_domains = www.domain1.com,domain1.com 绑定的域名,多个用英文逗号分隔
可选:如果你希望 URL 中带前缀(例如 http://domain.com/site1),可以配置 subdomain
但 subdomain 和 custom_domains 通常二选一
subdomain = site1
为第二个网站(`site2.local`)配置另一个 FRPC 客户端 `frpc-site2.ini`:
ini
[common]
server_addr = 1.2.3.4
server_port = 7000
token = your_secure_token_here
[web-site2]
type = http
local_ip = 192.168.1.101
local_port = 8080
custom_domains = www.domain2.com,domain2.com
启动两个 FRPC 客户端:
bash
frpc -c ./frpc-site1.ini
frpc -c ./frpc-site2.ini
3、DNS 设置
将你在 FRPC 配置中使用的所有域名(`www.domain1.com`, `domain1.com`, `www.domain2.com`, `domain2.com`)的 A 记录全部指向你的公网服务器 IP `1.2.3.4`。
等待 DNS 记录生效后,你就可以通过浏览器访问 `http://www.domain1.com` 和 `http://www.domain2.com` 来分别访问两个内网站点了。
三、高级用法与注意事项
1、 HTTPS 虚拟主机:
* 配置 FRPS 的 `vhost_https_port = 443`。
* 在 FRPC 配置中,将 `type` 改为 `https`: `type = https`。
* 注意:这种方式 FRPS 无法提供有效的 SSL 证书,会产生安全警告。更推荐的做法是:
* 在 FRPS 前端使用 Nginx 或 Caddy 等反向代理软件来终止 HTTPS(处理 SSL 证书),然后再将 HTTP 请求转发给 FRPS 的 `vhost_http_port`。
2、 身份验证:
* 务必设置 `token` 参数,防止未经授权的客户端连接。
3、 URL 路由 (subpath):
* 标准 HTTP 类型的代理不支持路径路由(如 `domain.com/path`)。如果你需要此功能,可以考虑:
* 在内网 Web 服务本身配置应用路由。
* 使用 `type = tcp` 代理到内网的 Nginx,由内网 Nginx 根据路径进行反向代理和负载均衡。
4、 权限与安全:
* 确保 FRPS 上的端口(如 `80`, `443`)已在防火墙中放行。
* 虚拟主机依赖 HTTP 请求头中的 `Host` 字段,确保你的内网 Web 服务配置了正确的域名(如果它需要识别域名的话)。
总结
| 组件 | 角色 | 关键配置 |
| : | : | : |
| FRPS (Server) | 公网入口 | `vhost_http_port`, `vhost_https_port` |
| FRPC (Client) | 内网代理 | `type = http/https`, `local_ip`, `local_port`, `custom_domains` |
| DNS | 域名解析 | 将所有域名 A 记录指向 FRPS 公网 IP |
FRP 的虚拟主机功能是一个非常强大且实用的特性,可以极大地节省公网 IP 和端口资源,让内网Web服务的发布变得更加简洁和管理。
📣 商家广告:





0
IP地址: 234.191.252.179
搜索次数: 0
提问时间: 2025-11-03 17:28:57
🛒 域名购买:
kt6.cn
w-t.cn
2.bj.cn
zf.gs
08.gold
al3.net
f.cq.cn
v.jl.cn
40.gold
gang.hk
❓️ 热门提问:
vps是与云服务器
域名价值评估贷款
程序PHP Symfony入门
东阳教育云空间
天行吧
的网站设计公司
链路追踪PHP扩展
云主机一个月多少钱
机房防雷工程
网址怎样保存到桌面
豌豆Ai站群搜索引擎系统
🌐 域名评估:
jz2.cn
kou.red
saweb.cn
vtolfair.net.cn
pufa.cn
evtol.jl.cn
yj.yn.cn
prhh.cn
zwej.cn
vtoltower.org.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
租赁云主机
贵州用友地址
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。