惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
AWS News Blog
AWS News Blog
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
F
Full Disclosure
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
About on SuperTechFans
J
Java Code Geeks
Jina AI
Jina AI
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
美团技术团队
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Latest news
Latest news
Vercel News
Vercel News
博客园 - 【当耐特】
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
V
Vulnerabilities – Threatpost
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
D
Docker
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
S
Securelist
WordPress大学
WordPress大学
S
Secure Thoughts
博客园 - 聂微东
Cloudbric
Cloudbric
Help Net Security
Help Net Security
腾讯CDC
T
Threat Research - Cisco Blogs
T
Tor Project blog
L
LINUX DO - 热门话题
Project Zero
Project Zero
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
N
Netflix TechBlog - Medium
小众软件
小众软件
Cyberwarzone
Cyberwarzone
量子位
MyScale Blog
MyScale Blog
W
WeLiveSecurity
MongoDB | Blog
MongoDB | Blog
I
InfoQ
M
MIT News - Artificial intelligence

皮普的数字花园

懒猫微服 - 用 UpSnap 实现远程群晖NAS 开机 使用 Surge Ponte 轻松实现外网访问家里设备&服务 在飞牛OS挂载本地的Unraid文件夹 群晖NAS挂载Unraid文件夹 如何更安全地访问Homelab服务 2024 - 向阳而生,逆光前行 私有化部署LobeChat的数据库版本 电信收回了我的公网ipv4,如何外网访问群晖NAS?Frp 内网穿透!效果媲美直连! Adobe photoshop运行弹窗This non-genuine Adobe app has been disabled,解决办法 2023 年终总结 My Default App 2023 我的默认应用 2023 腾讯云域名转移到Cloudflare 黑群晖升级到正版白群(全程记录) 买了一张美国原生实体手机卡:PAYGO卡 如何做行业调查 Debian ssh安全设置 Debian系统常用命令 买了1张0月租的英国手机卡:GiffGaff卡 关于NAS RAID的解释【白话版】【小白也能懂】
弄懂FRP内网穿透的 HTTP 类型代理
Pipu · 2025-04-07 · via 皮普的数字花园

850

前言

Frp支持多种代理类型:tcp、udp、http、https、stcp、tcpmux、stcp、sudp。

为了更好地使用FRP,同时提升安全性,本文主要阐述如何使用Frp的http类型代理以及实现原理。

其实内网的Web Http服务(如gitea、MinIO、QBittorrent…),应该使用 Frp 的 HTTP 类型会更合理。

HTT类型特点

安全性

  • 采用 token 认证机制
  • 支持 HTTPS 加密传输
  • 域名访问控制

易用性

  • 简单的三步配置流程
  • 清晰的配置文件结构
  • 支持无端口访问

可扩展性

  • 支持多服务配置
  • 支持反向代理整合
  • 便于后期维护

流程

只需要三个步骤:

服务端配置HTTP/HTTPS端口(12280/10443) —> 客户端设置HTTP类型代理并绑定域名 —> 通过反向代理+SSL证书实现无端口域名访问

frps服务端设置

frps.toml

# 添加以下配置
vhostHTTPPort = 12280    # Frp 的 http 端口
vhostHTTPSPort = 10443   # Frp 的 https 端口

#添加添加认证机制
auth.method = "token"
auth.token = "KdkoOdk20060Lpzx"

这就意味着,内网所有使用 frp http类型进行内网穿透的服务,都是通过 12280 和 10443 访问。

💡温馨提示:需要确保服务器防火墙开放端口:12280、10443

frpc客户端设置

frpc.toml

#添加添加认证机制
auth.method = "token"
auth.token = "KdkoOdk20060Lpzx"

#设置需要进行内网穿透的服务信息
[[proxies]] 
name = "web1"  # 这里输入服务的名字
type = "http"  # https类型
localIP = "192.168.22.11" 
localPort = 12321 
customDomains = ["web1.example.com"] # 添加允许的域名

这意味着,外网访问时:

  • 只能通过域名web1.example.com访问
  • 不能通过 IP + 端口直接访问(如果需要通过 IP + 端口访问,需要使用 TCP 类型代理,本文暂不讨论TCP类型代理)

实现无端口访问

在frps的服务器,配置反向代理,并设置访问HTTP自动跳转到HTTPS,实现无端口访问。

反向代理时,必须使用 vhostHTTPPort/vhostHTTPSPort(即 12280/10443)进行反向代理配置,通过域名区分不同服务的机制使得多服务共享同一端口成为可能,这正是 Frp HTTP 类型代理的核心优势。

851

用户访问示意图

示意图 1 849

示意图 2 848

总结

今天明白了frp的http类型代理使用场景原理,以后内网的Web http服务,就使用http类型代理进行穿透。

💡 懒人总结

要安全?用HTTP(配域名+HTTPS)

要随便?用TCP(IP+端口直连,但小心被劫)

记住:FRP不加密=快递裸奔,加Token=密码锁! 🔐


FAQ

那是不是意味着外网不能通过ip+端口进行访问?

是的,在这个 HTTP/HTTPS 类型的 frp 配置中,外网确实不能通过 IP + 端口直接访问。

这是因为: HTTP/HTTPS 类型的特点

  • 基于域名路由
  • 必须通过配置的 customDomains 域名访问
  • 不支持直接 IP + 端口访问

如果需要通过 IP + 端口访问,那怎么办?

需要使用 TCP 类型代理。

frpc.toml

[[proxies]]
name = "web1-tcp"
type = "tcp"
localIP = "192.168.22.11"
localPort = 12321
remotePort = 12345  # frps 服务器上的端口

为什么有些场景必须使用FRP的TCP类型代理?

在使用FRP进行内网穿透时,有些场景必须使用TCP类型,如数据库服务(MySQL、PostgreSQL等)、SSH远程连接…