前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1Panel面板搭建Frp实现内网穿透详细配置

1Panel面板搭建Frp实现内网穿透详细配置

作者头像
Tinywan
发布2024-03-11 13:38:18
1.1K2
发布2024-03-11 13:38:18
举报
文章被收录于专栏:开源技术小栈开源技术小栈

概览

frp 是什么?

frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

架构

Github 地址:https://github.com/fatedier/frp

为什么选择 frp?

通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:

  • 多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
  • TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
  • 代理组间的负载均衡。
  • 端口复用:多个服务可以通过同一个服务端端口暴露。
  • P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
  • 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
  • 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
  • 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。

安装

应用商店

版本号:v0.54.0

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

通过简单配置 HTTP 类型的代理,您可以让用户通过自定义域名访问内网的 Web 服务。HTTP 类型的代理非常适合将内网的 Web 服务通过自定义域名提供给外部用户。相比于 TCP 类型代理,HTTP 代理不仅可以复用端口,还提供了基于 HTTP 协议的许多功能。

HTTPS 与此类似,但是需要注意,frp 的 https 代理需要本地服务是 HTTPS 服务,frps 端不会做 TLS 终止。也可以结合 https2http 插件来实现将本地的 HTTP 服务以 HTTPS 协议暴露出去。

步骤

1. 配置 frps.toml

frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 8484

【应用商店】【frps】【进入安装目录】,

文件路径:/opt/1panel/apps/frps/frps/data/ frps.toml

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

注:如果需要配置 HTTPS 代理,还需要设置 vhostHTTPSPort

2. 开放端口

阿里云服务器端口是没有开放的,所以我们需要先在阿里云安全组中开放相关端口

  • 7000:frp客户端和服务端通信端口
  • 8484:服务器端要监听的端口
  • 7500:这是frp面板的端口
3. 配置 frpc.toml

注意:这里客户端版本必须要和服务端版本保持一致,我这里使用的是Windows系统。所以需要下载:frp_0.54.0_windows_amd64.zip 版本。

frpc.toml 文件中添加以下内容,确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名:

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

[[proxies]]
name = "web"
type = "http"
localPort = 8782
customDomains = ["webman2024.tinywan.com"]

serverAddr = "x.x.x.x" 地址为服务器公网IP

4. 启动本地服务webman
代码语言:javascript
复制
php start.php start
Workerman[start.php] start in DEBUG mode
---------------------------------------------------- WORKERMAN ----------------------------------------------------
Workerman version:4.1.13          PHP version:7.4.27           Event-Loop:\Workerman\Events\Event
----------------------------------------------------- WORKERS -----------------------------------------------------
proto   user            worker                                listen                 processes    status
tcp     root            SGSXService                           http://0.0.0.0:8782    24            [OK]
tcp     root            monitor                               none                   1             [OK]
tcp     root            plugin.webman.redis-queue.consumer    none                   2             [OK]
-------------------------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.

注意:确保本地服务http://127.0.0.1:8782 可以正常访问

5. 启动 frps 和 frpc

服务端frps

客户端frpc

代码语言:javascript
复制
cd /d/frp_0.54.0_windows_amd64

$ ./frpc.exe -c frpc.toml

2024/03/05 15:25:00 [I] [root.go:142] start frpc service for config file [frpc.toml]
2024/03/05 15:25:00 [I] [service.go:287] try to connect to server...
2024/03/05 15:25:00 [I] [service.go:279] [0c13f9a1260e245b] login to server success, get run id [0c13f9a1260e245b]
2024/03/05 15:25:00 [I] [proxy_manager.go:173] [0c13f9a1260e245b] proxy added: [web]
2024/03/05 15:25:00 [I] [control.go:170] [0c13f9a1260e245b] [web] start proxy success
6. 域名解析

webman2024.tinywan.com 的域名 A 记录解析到服务器的 IP 地址 x.x.x.x。如果服务器已经有对应的域名,您还可以将 CNAME 记录解析到原始域名。另外,通过修改 HTTP 请求的 Host 字段也可以实现相同的效果。

7. 通过浏览器访问

使用浏览器访问 http://webman2024.tinywan.com:8484 即可访问内网机器上的 8782 端口服务

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概览
    • frp 是什么?
      • 架构
        • 为什么选择 frp?
          • 应用商店
          • 1. 配置 frps.toml
          • 2. 开放端口
          • 3. 配置 frpc.toml
          • 4. 启动本地服务webman
          • 5. 启动 frps 和 frpc
          • 6. 域名解析
          • 7. 通过浏览器访问
      • 安装
      • 自定义域名访问内网的 Web 服务
      • 步骤
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档