FRP之入门篇

news2025/1/11 3:56:46

目录

一、前言

1、概述

2、原理

3、支持功能

4、适用场景

二、环境准备

三、使用

1、安装包下载

2、服务端部署

2.1、上传安装包

 2.3、启动服务端

3、客户端部署

3.1、代理服务准备

3.2、上传安装包

3.3、客户端配置

 3.4、启动客户端

4、功能验证


一、前言

1、概述

        frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

2、原理

        frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

        内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。

        用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。

3、支持功能

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

4、适用场景

        由于网络限制、安全限制不能将内网服务直接暴露到公网上,但是又想要在公网上又能安全的访问到内网服务的场景。

二、环境准备

机器名称操作系统用途数量
客户端WindowsFRP界面浏览1
FRP服务端centos 7FRP服务端代理1
FRP客户端centos 7FRP代理内网服务1

三、使用

1、安装包下载

       frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

        下载地址:https://github.com/fatedier/frp/releases

        大家下载对应的版本即可,我这里使用的是 frp_0.45.0_linux_amd64.tar.gz

2、服务端部署

2.1、上传安装包

        将上面的安装包上传到服务器上,解压安装包。

#上传安装包
rz 
#解压安装包
tar -zxvf frp_0.45.0_linux_amd64_\(1\).tar.gz 

2.2、服务端配置

        编辑服务端配置文件,配置信息如下:

#进入解压目录
cd frp_0.45.0_linux_amd64
#编辑服务端配置文件
vim frps.ini

 

 2.3、启动服务端

       将服务端启动并验证是否启动成功。

#启动服务端
./frps -c ./frps.ini

当执行上面命令出现 frps started successfully 表示启动成功。

 

3、客户端部署

3.1、代理服务准备

        我这边使用tomcat作为模拟内网代理服务,大家可根据自己的实际情况进行调整。

下载地址:Apache Tomcat® - Apache Tomcat 9 Software Downloads

然后进行安装

#上传安装包
rz 
#解压安装包
tar -zxvf apache-tomcat-9.0.69.tar.gz
#进入解压目录 
cd apache-tomcat-9.0.69
#启动tomcat 服务
./bin/startup.sh

通过访问 http://ip:8080,若出现以下界面则表示部署成功

 

3.2、上传安装包

        将上面的frp_0.45.0_linux_amd64.tar.gz安装包上传到客户端并解压

#上传安装包
rz 
#解压安装包
tar -zxvf frp_0.45.0_linux_amd64_\(1\).tar.gz 
#进入解压目录
cd frp_0.45.0_linux_amd64_\(1\).tar.gz

3.3、客户端配置

        编辑客户端配置文件

vim frpc.ini

内容如下:

 

 3.4、启动客户端

        将客户端进行启动并验证是否启动成功。

#启动客户端
 ./frpc -c ./frpc.ini

当出现start proxy success表示启动成功

 

4、功能验证

        因我使用的是虚拟机进行部署,FRP服务端没有部署到公网上,所以我将浏览器客户端修改hosts文件进行操作

再到浏览器上访问 http://my.frp:8888/  ,即可出现刚刚FRP代理的客户端Tomcat服务

到此,FRP的入门级使用介绍将告于段落,更多精彩技术分享请浏览本人博客:

不甘于平凡的溃败的博客_CSDN博客-java,数据库,IDEA领域博主

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis在Windows和Linux下的安装方法(超级详细)

Redis的两种不同系统安装1. redis在Windows下的安装2. redis在Linux下的安装1. redis在Windows下的安装 下载安装包(https://github.com/MicrosoftArchive/redis/releases) 下载完后得到安装包找一个自己熟悉的路径就可以进行解压了,我放的是D盘 解压后的文件: 进入到文件夹中…

Java集合(二):Map集合与Collections工具类

目录 Map接口 Map接口的常用方法 删除方法 判断方法 查找方法 增加方法 Map常用方法&遍历操作 HashTable 字典-Dictionary,v> HashMap、HashTable和LinkedHashMap TreeMap 【2】TreeMap-存储自定义数据类型-【内部比较器】 HashMap底层源码 jdk8-源码…

央视春晚临近,主持人李思思被爆离职,知情人火速做出回应

每年的这个时候,中央电视台的春晚,都成为人们热议的话题,不过今年的话题却比较火爆。大众们所关注的央视春晚,第一是参加春晚的明星嘉宾,其次就是参加春晚的节目主持人。 说起央视春晚的主持人,最早要追溯到…

【笔试题】【day26】

文章目录第一题(就绪队列中的进程数)第二题(磁盘缓冲区存在的意义)第三题(进程从执行态变成就绪态的原因)第四题(管道)第五题(文件打开,操作系统会做什么&…

python 图像处理(一阶梯度图像和角度图像)

在整个图像处理的学习过程中可以看到,在很多应用中图像强度的变化情况是非常重要的信息。强度的变化可以用灰度图像I(对于彩色图像,通常对每个颜色通道分别计算导数)的x和y的方向导数和进行描述。 图像的梯度向量为: …

[datawhale202211]跨模态神经搜索实践:前端简介 Streamlit

结论速递 VCED项目使用一个十分简单好用的 Web 应用程序框架Streamlit。 本次任务简单学习Streamlit的基本使用。并逐行阅读学习VCED项目的前端代码,学习数据的传递,中间存储方式,以及功能的实现。 前情回顾 环境配置Jina生态跨模态模型 …

[python]basemap后安装后hello world代码

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.basemap import Basemap m Basemap() # 实例化一个map m.drawcoastlines() # 画海岸线 m.drawmapboundary(fill_colorwhite) m.fillcontinents(colorwhite,lake_colorwhite) # 画大洲&#x…

点云配准(四) Sparse Point Registration 算法浅析

Sparse Point Registration (SPR)是一篇2017年的点云配准算法,该算法的主要目的是对稀疏点云进行配准,并且取得了不错的成果和突破。本文一方面是对SPR配准算法模型进行了简单的原理解析以及附加代码实现,另一方面是对之前工作的总结,也算水篇博文,接下来的工作主要就是…

正统类加载器Tomcat(tomcat二探)

主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他笔者没有列举的服务器, 都实现了自己定义的类加载器,而且一般还都不止一个。因为一个功能健全的Web服务器,都要解决 如下的这些问题: 部署在同一个服…

C++设计模式之桥模式

桥模式也是设计模式中单一组件模式的一种。什么是单一组件模式呢? 单一组件模式: 在软件组件设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化而变化,子类急剧膨胀,同时充斥着重复代…

SpringBoot-Dubbo中的Customer怎么获取了注册中心的服务呢?

1.Dubbo中的Customer怎么获取了注册中心的服务呢? (1)要在pom文件中导入接口依赖 (2)在配置文件中指定服务中心的ip地址 (3)使用的dubbo自己的注解向服务中心中获取服务,并且将获取…

史上最简单:SpringCloud 集成 mybatis-plus(以若依微服务版本为例)

编者按:若依微服务版是基于Spring Boot、Spring Cloud & Alibaba的微服务的权限管理系统,也是笔者比较推荐的个人学习和企业实践都比较优秀的开源项目。 笔者也以此项目为例,介绍一下我自己是如何操作 SpringCloud 集成 mybatis-plus 的。…

API网关之Nginx作为网关的优势及实战

基于Nginx的网关的优势: 1 .速度更快、并发更高 单次请求或者高并发请求的环境下,Nginx都会比其他Web服务器响应的速度更快。一方面在正常情况下,单次请求会得到更快的响应,另一方面,在高峰期(如有数以万计的并发请求…

【Pytorch with fastai】第 20 章 :结语与问题

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

开启linux的网络服务, FTP、SSH和NFS服务

在使用linux中开发的时候,我们可以选择启用一些网络服务方便我们进行开发,加快开发的进度。 现在很多用linux进行开发的工程师,他们大多都是在windows系统上安装虚拟机,然后在虚拟机中安装linux系统,然后在里面完成项目…

Java项目——表白墙(前后端连接+数据库存储)

前端的表白墙实现代码在之前的博客中有 Message类 表白墙中的每一个表白信息都由Message对象呈现,其包含form——表白者,to——被表白者,message——表白信息,以及一系列get和set方法 public class Message {private String fr…

我是如何构建自己的笔记系统的?

我是如何构建自己的笔记系统的? 关于笔记系统的重要性互联网上有许多的资料, 我这里将不再赘述. 下面我将直接介绍我的笔记从记录到整理文章发布的所有详细步骤和工具 我的笔记系统可能并不完善, 而且带着极强的个人倾向性, 只希望它能提供给你一种思考的方向 原文地址: https…

ArrayList 可以完全替代数组吗?

本文已收录到 GitHub AndroidFamily,有 Android 进阶知识体系,欢迎 Star。技术和职场问题,请关注公众号 [彭旭锐] 加入 Android 交流群。 前言 大家好,我是小彭。 在前面的文章里,我们学习了很多数据结构与算法思想…

【Nacos案例】

0、整体 整体项目概览 整体服务概览 1、新建父工程demo-nacos 删除src &#xff0c;切记 packaging&#xff1a;pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"ht…

[Apollo Cyber RT] Timer实现

Timer的实现方式 Timer有多种实现方式&#xff0c;CyberRT采用了时间轮(TimingWheel)方式。关于Timing Wheels的详细描述可以参考附录的链接。此处不赘述。 CyberRT Timer的类构成 实现细节 Timer Timer类是门户&#xff0c;但定时器真正的核心是TimingWheel。 Timer的定义…