Frp部署文档

Frp部署文档

  • 开源项目地址:https://github.com/fatedier/frp
  • 项目中文文档地址:https://github.com/fatedier/frp/blob/dev/README_zh.md
  • 官网文档地址: https://gofrp.org/zh-cn/docs/
  • 发布包地址:https://github.com/fatedier/frp/releases 要注意对应的系统,指令集的版本
  • toml格式配置文件规范:https://toml.io/cn/

概念

了解以下概念有助于更好地理解和使用 frp。

工作原理

frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。

由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。

代理

在 frp 中,一个代理对应一个需要公开访问的内网服务。一个客户端可以同时配置多个代理,以满足不同的需求。

代理类型

frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:

  • TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
  • UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
  • HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
  • HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
  • STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
  • XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
  • TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。
    每种代理类型适用于不同的使用情境,您可以根据需求选择合适的代理类型来配置 frp。

安装

我这里针对的版本是 0.53.2。其他的版本类似

下载地址

macos (intel cpu等 amd 64)的版本

  • https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_darwin_amd64.tar.gz

mac (m1,m2,m3 cpu等 arm 64)的版本

  • https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_darwin_arm64.tar.gz

linux (intel cpu等 amd 64)版本

  • https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz

也有windows的版本,就不列了,可以到https://github.com/fatedier/frp/releases 选择你想要的版本

服务器端安装

ubuntu 22.04 amd64 下安装

第一步 连接服务器, 并下载解压文件
cd ~
mkdir frp
cd frp
wget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gz
# 如果下载不了,请用自己的系统下载好,复制到这个目录来tar -xzvf frp_0.53.2_linux_amd64.tar.gz
cd frp_0.53.2_linux_amd64
ls -l
  • 这个时候,可以看到5个文件
    • frpc 是客户端,在服务器端不需要
    • frpc.toml 客户端的默认配置文件
    • frps 是服务器端
    • frps.toml 服务器端的配置地址
    • LICENSE 该文件,忽略
第二步 手动安装服务器端
sudo cp frps /usr/bin
sudo mkdir /etc/frps
sudo cp frps.toml /etc/frps
  • 这个时候,输入frps -c /etc/frps/frps.toml 就可以运行,但是功能还不够
  • 用vi命令编辑配置文件: sudo vi /etc/frps/frps.toml
  • 默认的配置内容如下:
bindPort = 7000
  • 按照我们时间要求,我们调整配置如下
bindPort = 7000  # 默认绑定地址
vhostHTTPPort = 18080 # 绑定的http的端口
auth.token="123456看可以吗?"  # frpc 连接这个穿透服务器的认证token
# 下面是一组管理后台的配置, 完成后就可以用 http://xxx.xxx.xxx.xxx:7500/访问管理后端
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "super_admin"  #访问管理后端的用户名
webServer.password = "密码" #访问管理后端的密码# 日志输出配置
log.to="/var/log/frps.log"
  • 更多要求配置,看官网的示例配置

  • 在命令行输入: frps -c /etc/frps/frps.toml, 查看/var/log/frps.log日志,显示下面内容,表示成功启动
    在这里插入图片描述

第三步 部署到systemd的服务模式
  • 使用的前提是,给系统安装了systemd, 一般情况下,是默认安装的
cd /etc/systemd/system
sudo vi frps.service
  • frps.service配置如下
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/bin/frps -c /etc/frps/frps.toml[Install]
WantedBy = multi-user.target
  • 使用systemd管理frps服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
  • 设置 frps 开机自启动
sudo systemctl enable frps

客户端安装

  • 客户端的环境是intel cpu的macos 迷你主机, 所以我这里用的是 https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_darwin_amd64.tar.gz 这个macos版本 frpc

  • 在mac os的桌面,新建一个目录 frp

  • 将下载好的frp_0.53.2_darwin_amd64.tar.gz,复制到这个目录,然后进入终端

cd ~/Desktop/frp
vi frpc.toml
  • 我们针对现在测试环境 http://192.168.3.10 做一个透传,用我们现在的测试服务器可以访问,如: http://测试服务器地址:18080

  • 为了增加安全性,这里还会专门的访问密码

  • 具体配置如下:

# frps的服务器地址
serverAddr = "测试服务器公网ip"
# frps的侦听端口
serverPort = 7000
# 输出的日志文件
log.to = "./frpc.log"
# 连接服务器的认证方式 我们这里使用的token的方式,也是默认方式
auth.method = "token"
# 认证的token,需要和frps服务器配置的token一直
auth.token = "123456看可以吗?"# 下面是代理客户端配置, 多个代理,就可以多个[[proxies]],每个可以有不同的名字
[[proxies]]
# 代理名称
name = "testweb"
# 代理类型
type = "http"
# 本地http服务的ip和端口
localIP = "127.0.0.1"
localPort = 80
# 远程穿透的ip或域名, 如果有多个web代理,最好使用域名的方式 , customDomains是一个字符串数组,可以配置公网ip或多个域名, 使用域名的方式,可以配置很多歌
customDomains = ["测试服务器公网ip"]
# 对外穿透给其他人访问的ip地址
remotePort = 18080
# 是否使用压缩
transport.useCompression = true
# 通过穿透访问,需要输入的用户名和密码
httpUser = "阿里巴巴"
httpPassword = "albbpass^^^"
  • 最后在命令行输入下面命令
./frpc -c ./frpc.toml

在这里插入图片描述

最后

  • 在浏览器输入 http://公网地址ip:7500
  • 提示输入用户名和密码,看服务器frps.toml的配置,可知道用户名: super_admin,密码:*****
  • 管理后台的界面如下
    在这里插入图片描述
    在这里插入图片描述

新增示例

使用stcp提供ssh服务

  • 这里使用的stcp,没有使用tcp,因为使用tcp必须在公网服务器暴露端口,所以这里使用stcp,不需要暴露端口。使用xtcp 点对点的方式容易失败。

ssh服务提供方frpc配置

  • 提供ssh的frpc配置,这里是minisvr的ssh服务,端口是22
  • 在frpc目录下,新建一个frpc_stcp_svr.toml文件,内容如下:
# frps的服务器地址
serverAddr = "测试服务器公网ip"
# frps的侦听端口
serverPort = 7000
# 连接服务器的认证方式 我们这里使用的token的方式,也是默认方式
auth.method = "token"
# 认证的token,需要和frps服务器配置的token一直
auth.token = "123456看可以吗?"# 一下是ssh的 stcp代理配置, 公网服务器frps不需要额外配置
[[proxies]]
# 提供服务的名称
name = "ssh"
# 穿透类型
type = "stcp"
# 代理的ip和端口
localIP = "127.0.0.1"
localPort = 22
# 传输加密和压缩配置
transport.useEncryption = true
transport.useCompression = true
# 访问是需要提供的秘钥
secretKey = "hello123"
# 允许访问的用户
allowUsers = ["*"]
  • 配置完成后,启动frpc
./frpc -c ./frpc_stcp_svr.toml
  • 如果看到有显示success的字样,基本表示连接成功

ssh 访客方 frpc 配置

  • 在frpc目录下,新建一个frpc_stcp_cli.toml文件,内容如下:
# frps的服务器地址
serverAddr = "测试服务器公网ip"
# frps的侦听端口
serverPort = 7000
# 连接服务器的认证方式 我们这里使用的token的方式,也是默认方式
auth.method = "token"
# 认证的token,需要和frps服务器配置的token一直
auth.token = "123456看可以吗?"[[visitors]]
# 访客的名称 这个名字可以自己改
name = "stcp_cli"
# 访客的连接类型
type = "stcp"
# 访问是需要提供的秘钥 注意和提供方的秘钥保持一致
secretKey = "hello123"
# ssh提供方的名称,和提供方的name保持一致
serverName = "ssh"
# 本地代理绑定的端口和地址
bindAddr = "127.0.0.1"
bindPort = 6000
# 传输加密和压缩配置
transport.useEncryption=true
transport.useCompression=true
  • 配置完成后,启动frpc
./frpc -c ./frpc_stcp_cli.toml
  • 如果看到有显示success的字样,基本表示连接成功

使用ssh连接

  • 打开终端,输入 ssh -p 6000 ivon@127.0.0.1
  • 然后输入密码,就可以了

使用secretCRT链接

  • 如下图所示 注意端口是本地frpc的6000端口,而不是ssh的22端口
    在这里插入图片描述
    在这里插入图片描述

  • 同样活用这个配置,也可以用secretFX来传输文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22024.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArcGIS Pro进行坡度与坡向分析

在地理信息系统中,坡度分析是一项至关重要的空间分析方法,旨在精确计算地表或地形的坡度,为地形特征识别、土地资源规划、环境保护、灾害预警等领域提供科学依据。本文将详细介绍如何利用ArcGIS Pro这一强大的地理信息系统软件,进…

从卡顿到丝滑:火山引擎DeepSeek-R1引领AI工具新体验

方舟大模型体验中心全新上线,免登录体验满血联网版Deep Seek R1 模型及豆包最新版模型:https://www.volcengine.com/experience/ark?utm_term202502dsinvite&acDSASUQY5&rcGO9H7M38 告别DeepSeek卡顿,探索火山引擎DeepSeek-R1的丝滑之旅 在A…

Python的那些事第二十八篇:数据分析与操作的利器Pandas

Pandas:数据分析与操作的利器 摘要 Pandas是基于Python的开源数据分析库,广泛应用于数据科学、机器学习和商业智能等领域。它提供了高效的数据结构和丰富的分析工具,能够处理结构化数据、时间序列数据以及复杂的数据转换任务。本文从Pandas的基础概念入手,深入探讨其核心…

Linux-CentOS 7安装

Centos 7镜像:https://pan.baidu.com/s/1fkQHYT64RMFRGLZy1xnSWw 提取码: q2w2 VMware Workstation:https://pan.baidu.com/s/1JnRcDBIIOWGf6FnGY_0LgA 提取码: w2e2 1、打开vmware workstation 2、选择主界面的"创建新的虚拟机"或者点击左上…

如何基于transformers库通过训练Qwen/DeepSeek模型的传统分类能力实现文本分类任务

文章目录 模型与环境准备文档分析源码解读模型训练及推理方式进阶:CPU与显存的切换进阶:多卡数据并行训练🔑 DDP 训练过程核心步骤🚫 DDP 不适用于模型并行⚖️ DDP vs. Model Parallelism⚙️ 解决大模型训练的推荐方法🎉进入大模型应用与实战专栏 | 🚀查看更多专栏…

FX5U PLC模拟量转换FC (S_ITR源代码)

模拟量转换FC数学算法基础请参考下面文章链接: PLC模拟量采集算法数学基础(线性传感器)_plc稳钩算法公式-CSDN博客文章浏览阅读3.3k次,点赞3次,收藏7次。本文介绍了PLC模拟量采集的数学基础,重点关注线性传感器的一次函数模型y=kx+b。内容涉及直线方程在温度换算中的应用…

数字人源头厂商-源码出售源码交付-OEM系统贴牌

引言 在数字化浪潮中,数字人正成为创新应用的焦点。从虚拟偶像活跃于舞台,到虚拟客服在各行业的普及,数字人展现出巨大的潜力。搭建数字人源码系统,是融合多领域前沿技术的复杂工程,涵盖图形学、人工智能、语音处理等…

基于WebRTC与AI大模型接入EasyRTC:打造轻量级、高实时、强互动的嵌入式音视频解决方案

随着物联网和嵌入式技术的快速发展,嵌入式设备对实时音视频通信的需求日益增长。然而,传统的音视频解决方案往往存在体积庞大、实时性差、互动体验不佳等问题,难以满足嵌入式设备的资源限制和应用场景需求。 针对以上痛点,本文将介…

SpringBoot使用TraceId日志链路追踪

项目场景: ??有时候一个业务调用链场景,很长,调了各种各样的方法,看日志的时候,各个接口的日志穿插,确实让人头大。为了解决这个痛点,就使用了TraceId,根据TraceId关键字进入服务…

【网络编程】网络编程基础:TCP/UDP 协议

一、什么是网络? 网络是信息传输,接收和共享的虚拟世界,通过把网络上的信息汇聚在一起,将这些资源进行共享。 初衷:知识共享。这里不得不提到Internet 的历史-它其实是“冷战”的产物: 1957年…

开关电源实战(一)宽范围DC降压模块MP4560

系列文章目录 文章目录 系列文章目录MP4560MP4560 3.8V 至 55V 的宽输入范围可满足各种降压应用 MOSFET只有250mΩ 输出可调0.8V-52V SW:需要低VF肖特基二极管接地,而且要靠近引脚,高压侧开关的输出。 EN:输入使能,拉低到阈值以下关闭芯片,拉高或浮空启动 COMP:Compens…

Java 内存区域详解

1 常见面试题 1.1 基本问题 介绍下Java内存区域(运行时数据区)Java对象的创建过程(五步,建议能够默写出来并且要知道每一步虚拟机做了什么)对象的访问定位的两种方式(句柄和直接指针两种方式)…

C++多项式Lasso回归(多变量函数拟合)

多项式回归和Lasso多项式回归都是用于建模数据关系的方法,但它们在实现方式和目标上有一些重要的区别。以下是它们的主要区别: 1. 基本概念 多项式回归: 多项式回归是一种线性回归的扩展,它通过引入多项式特征(如 ,,……

2025年股指期货和股指期权合约交割的通知!

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 2025年股指期货和股指期权合约交割的通知! 根据中国金融期货交易所规则及相关规定,以下股指期货和股指期权合约于指定日期进行交割,现将各合…

通俗易懂的DOM事件模型指南

前言 在前端开发中,DOM事件是我们与用户交互的核心。无论是点击按钮、滚动页面,还是输入文字,背后都离不开DOM事件的支持。今天,我们就来聊聊DOM事件模型,用最简单的方式带你理解它的工作原理。 一、什么是DOM事件&a…

【YOLOv8】损失函数

学习视频: yolov8 | 损失函数 之 5、类别损失_哔哩哔哩_bilibili yolov8 | 损失函数 之 6、定位损失 CIoU DFL_哔哩哔哩_bilibili 2.13、yolov8损失函数_哔哩哔哩_bilibili YOLOv8 的损失函数由类别损失和定位损失构成 类别损失:BCE Loss 定位损失…

1.14作业

1 if($x[scheme]http||$x[scheme]https){ $ip gethostbyname($x[host]); echo </br>.$ip.</br>; if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {die(ip!); }echo file_get_contents($_POST[url]);可以DNS重…

【工具篇】【深度解析 DeepAI 工具:开启 AI 应用新体验】

一、DeepAI 基本信息 嘿,咱先来说说 DeepAI 这工具到底是啥。DeepAI 是一个综合性的人工智能平台,就像是一个装满各种 AI 魔法的百宝箱。它把好多先进的人工智能技术整合到一起,让咱们普通人也能轻松用上这些高大上的 AI 功能。 这个平台背后有一群超厉害的技术人员,他们…

Java八股文(下)

Java八股文下篇 八、JVM高级篇1、JVM的内存模型以及分区介绍一下&#xff1f;2、四种引用方式有什么&#xff1f;3、判断是否为垃圾算法&#xff1f;4、垃圾回收算法介绍一下&#xff1f;5、类的生命周期以及类加载过程6、加载器种类有什么&#xff1f;7、什么是双亲委派模型以…

OpenGL开发杂谈

Renderdoc 调试 OpenGL 前言 在做 OpenGL 练习时常常苦恼于无法调试shader&#xff0c;故在网上查询方法。得知 renderdoc 这一东西&#xff0c;所以在这里做一下记录&#xff0c;如何使用 renderdoc 来调试 OpenGL 程序。 配置 下载比较简单&#xff0c;不必多说&#xff…