首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >frp通过自定义域名访问内网的 Web 服务 frp 内网穿透、自定义域名访问、http代理、vhostHTTPPort、https代理

frp通过自定义域名访问内网的 Web 服务 frp 内网穿透、自定义域名访问、http代理、vhostHTTPPort、https代理

作者头像
代码简单说
发布2026-06-16 16:19:20
发布2026-06-16 16:19:20
200
举报
文章被收录于专栏:代码说代码说

frp通过自定义域名访问内网的 Web 服务

在写这篇文章之前,我先抛几个关键词:frp 内网穿透、自定义域名访问、http代理、vhostHTTPPort、https代理。这些问题在我日常开发和搭建测试环境的时候,经常会遇到,尤其是当你想把家里或者公司内网的一些 Web 服务,通过一个漂亮的域名暴露给外部访问时,frp 就成了非常好用的利器。

在这里插入图片描述
在这里插入图片描述

HTTP 类型的代理特别适合这种场景,它不仅能通过自定义域名将内网服务暴露出去,还支持端口复用,避免多个服务占用不同的端口。相比 TCP 类型代理,HTTP 代理更灵活,也能结合 HTTP 协议的特性做一些扩展。而如果是 HTTPS 服务,还需要额外注意 TLS 终止问题,frps 端并不会自动帮你做 TLS 解密,这点很多人第一次使用时会踩坑。这里可以通过 https2http 插件,让内网 HTTP 服务以 HTTPS 协议对外暴露。


使用步骤

1. 配置 frps.toml

首先需要配置服务端的 frps.toml,这里我指定了 HTTP 请求监听端口为 8080,同时服务端和客户端之间通信端口为 7000

代码语言:javascript
复制
bindPort = 7000
vhostHTTPPort = 8080

如果你有 HTTPS 代理需求,还可以加上:

代码语言:javascript
复制
vhostHTTPSPort = 8443

这样就能同时支持 HTTP 和 HTTPS。


2. 配置 frpc.toml

接下来是客户端配置文件 frpc.toml,重点在于指定服务端的 IP、本地 Web 服务端口,以及绑定的自定义域名:

代码语言:javascript
复制
serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["www.yourdomain.com"]

[[proxies]]
name = "web2"
type = "http"
localPort = 8080
customDomains = ["www.yourdomain2.com"]

这里我演示了两个服务:

  • web → 本地 80 端口绑定到 www.yourdomain.com
  • web2 → 本地 8080 端口绑定到 www.yourdomain2.com

3. 启动 frps 和 frpc

服务端运行:

代码语言:javascript
复制
./frps -c ./frps.toml

客户端运行:

代码语言:javascript
复制
./frpc -c ./frpc.toml

保证两个进程都正常启动。


4. 域名解析

这一步非常关键。要让浏览器能访问到服务,需要把域名解析到服务器的 IP 地址。

  • 如果使用 A 记录,配置:
    • www.yourdomain.com → x.x.x.x
    • www.yourdomain2.com → x.x.x.x
  • 如果你已有一个主域名,也可以用 CNAME 记录 指向已有域名。

甚至有些场景下,通过修改 HTTP 请求的 Host 字段,也能实现相同的效果。


5. 通过浏览器访问

配置完成后,直接用浏览器访问即可:

  • http://www.yourdomain.com:8080 → 内网 80 端口服务
  • http://www.yourdomain2.com:8080 → 内网 8080 端口服务

这样就实现了通过自定义域名,访问不同的内网服务。


总结

通过 HTTP 类型代理,frp 能够轻松把内网 Web 服务暴露到公网,并且还能支持多个自定义域名和端口复用,特别适合开发测试环境。如果想进一步提供 HTTPS 支持,可以结合 https2http 插件,或者直接让本地 Web 服务启用 HTTPS,然后在 frpc 里走 type = "https" 配置。

这套配置整体非常简单,但也有几个容易忽视的点:

  1. frpsfrpc 的端口一定要打通,服务器要开放对应防火墙规则。
  2. customDomains 必须和你解析的域名一致,否则访问时会出现 404。
  3. 如果想省去 :8080 端口,可以在服务器上用 Nginx 做反向代理,把 80 端口流量转发给 frp。

这样一来,不管你是要暴露内网的管理后台,还是本地测试项目,都能非常方便地实现外部访问。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • frp通过自定义域名访问内网的 Web 服务
    • 使用步骤
      • 1. 配置 frps.toml
      • 2. 配置 frpc.toml
      • 3. 启动 frps 和 frpc
      • 4. 域名解析
      • 5. 通过浏览器访问
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档