frp技术

news2024/11/28 2:51:18

说明:frp(https://github.com/fatedier/frp) 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。(官方语)

本文介绍如何使用frp,借助阿里云公网IP访问内网应用。

下载

frp分客户端和服务器端,服务器端部署在有公网IP的阿里云服务器上,客户端部署在需要被穿透的内网设备上。

首先,去Github上(https://github.com/fatedier/frp/releases)下载程序包,我的阿里云服务器是CentOS 7,客户端设备是Windows系统,需要下载以下两个包。

在这里插入图片描述

一份留本地,一份上传到阿里云服务器上。

服务器端

花开两朵,各表一枝。先讲阿里云服务器上的这个,解压后如下:

在这里插入图片描述

frp程序包文件结构非常简单,解压后就这五个文件,两个执行程序,两个配置文件,分别对应客户端、服务器端,剩余一个是开源协议。

阿里云上我们只用得上frps,即frp服务器端,默认使用的端口是7000,输入./frps启动frp服务器。

在这里插入图片描述

客户端

frp客户端解压后如下

在这里插入图片描述

客户端只用启动frpc.exe,对应的配置文件内容如下:

serverAddr = "127.0.0.1"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

这个配置文件需要根据需要修改,其中

  • serverAddr,是阿里云公网IP;

  • serverPort,是阿里云上frps的绑定端口,默认7000;

  • localIP,是内网穿透的本地IP,设置127.0.0.1即可;

  • localPort,本地端口,与remotePort对应;

  • remotePort,远程端口,即部署frps的公网IP端口;

最后两个端口设置,表示使用阿里云公网IP:远程端口,映射的本地的什么端口。下面通过一个例子实践一下。

XXL-JOB

现在,我本地有个xxl-job-admin,可在浏览器上输入http://127.0.0.1:8080/xxl-job-admin/进入xxl-job任务调度中心,如下:

在这里插入图片描述

我现在用内网穿透技术frp,将这个应用通过阿里云公网IP映射出去,通过阿里云的公网IP访问到我本地内网下的这个xxl-job任务调度中心。

frpc配置文件frpc.toml设置如下:

serverAddr = "公网IP"
serverPort = 7000

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 6001

其中,最后两行表示使用公网IP:6001可访问到127.0.0.1:8080,设置完成后,输入下面的命令启动frpc.exe

frpc.exe -c frpc.toml

在这里插入图片描述

启动完之后,使用http://公网IP:6001/xxl-job-admin/访问xxl-job任务调度中心,如下:

(注:如果无法访问,需考虑阿里云服务器7000、6001端口是否已开放)

在这里插入图片描述

大功告成,这个地址发给其他人,其他人就能访问你本地内网的xxl-job任务调度中心了。

总结

本文介绍了如何使用frp,实现内网穿透,借助公网IP访问内网的xxl-job任务调度中心。除此之外,如果你和前端同事联调接口,但是你们不在同一个网络下,网络不通,就能通过这种方式,配置一个公网IP地址给前端,这样就可以访问了,当然前提是你需要有一个有公网IP的服务器。

更多参考frp中文文档:https://gofrp.org/zh-cn/docs/

本文参考:使用frp实现内网穿透教程

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

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

相关文章

19.JWT

1►JWT博客推荐 阮老师讲得很好了,网址如下: http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 2►ry是怎么践行JWT的呢? 问题一:不登录的时候有token吗? 答:没有,所…

中标麒麟 RAC 19c 部署(Openssh免密BUG解决方案)

部署环境: 主机一主机二host ip192.168.80.46192.168.80.47vip 192.168.80.48192.168.80.49private ip192.168.10.10192.168.10.11storage ip192.168.20.33192.168.20.34主机名rac19c1rac19c2 需要上传的软件包: 一.虚拟机配置 选择中标麒麟IOS文件&am…

关于 element-ui el-cascader 数据回显问题的解决方案

前言 这两天在使用 el-cascader 控件时,后端日期的数据如“2023-05-06”前端需要按照“年-月-日”的形式分割成三级联动,因为数据库保存的是完整的日期,前端数据回显时需要对后端返回的数据进行处理。 问题再现 联动下拉框的数据如下&#x…

昇思25天学习打卡营第十四天|Pix2Pix实现图像转换

训练营进入第十四天,今天学的内容是Pix2Pix图像转换,记录一下学习内容: Pix2Pix概述 Pix2Pix是基于条件生成对抗网络(cGAN, Condition Generative Adversarial Networks )实现的一种深度学习图像转换模型&#xff0c…

C语言 -- 扫雷游戏

C语言 – 扫雷游戏 游戏规则: 给定一个棋盘,玩家需要排查出所有隐藏的雷,也就是选择出所有不是雷的地方。 玩家选择位置,若此处有雷,玩家被炸死,游戏结束; 若此处无雷,此处提示周围一…

【SOLID原则前端中的应用】里氏替换原则(Liskov Substitution Principle,LSP)- vue3示例

里氏替换原则(Liskov Substitution Principle,LSP)规定,子类对象必须能够替换父类对象,并且程序的行为保持不变。 在Vue 3中,这意味着我们在创建可替换的组件时,应该确保子组件能够完全替代父组…

Spring源码十五:Bean的加载

上一篇我们通过Spring源码十四:Spring生命周期介绍了refresh的最后两个方法,至此通过前面大概十篇左右的篇幅介绍完了Spring容器初始化,接下来,将进入Spring另外一个模块Bean相关的知识点。 在Spring框架中,Bean加载过…

动态白色小幽灵404网站源码

动态白色小幽灵404网站源码&#xff0c;页面时单页HTML源码&#xff0c;将代码放到空白的html里面&#xff0c;鼠标双击html即可查看效果&#xff0c;或者上传到服务器&#xff0c;错误页重定向这个界面即可&#xff0c;喜欢的朋友可以拿去使用 <!DOCTYPE html> <ht…

联想小新14Pro,误删了一个注册表,怎么办?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

uniapp报错--app.json: 在项目根目录未找到 app.json

【问题】 刚创建好的uni-app项目&#xff0c;运行微信小程序控制台报错如下&#xff1a; 【解决方案】 1. 程序根目录打开project.config.json文件 2. 配置miniprogramRoot&#xff0c;指定小程序代码的根目录 我的小程序代码编译后的工程文件目录为&#xff1a;dist/dev/mp…

Java常见面试题汇总带答案

本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网 络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、 Kafka、Zookeeper、MySQL、Redis、JVM 等等… JDK 和 JRE 有什么区别? JDK:Jav…

linux软链接和硬链接的区别

1 创建软链接和硬链接 如下图所示&#xff0c;一开始有两个文件soft和hard。使用 ln -s soft soft1创建软链接&#xff0c;soft1是soft的软链接&#xff1b;使用ln hard hard1创建硬链接&#xff0c;hard1是hard的硬链接。可以看到软链接的文件类型和其它3个文件的文件类型是不…

【测试专题】软件总体计划方案(2024原件word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 获取&#xff1a;软件全套文档过去进主页。 一、…

什么是五级流水?银行眼中的“好流水”,到底是什么样的?

无论是按揭买房还是日常贷款&#xff0c;银行流水都是绕不开的一环。规划好你的流水&#xff0c;不仅能让你在申请贷款时更有底气&#xff0c;还可能帮你省下不少冤枉钱。今天&#xff0c;咱们就来一场深度剖析&#xff0c;聊聊如何在按揭贷款、个人经营抵押贷款前&#xff0c;…

STM32-SPI和W25Q64

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. SPI&#xff08;串行外设接口&#xff09;通信1.1 SPI通信简介1.2 硬件电路1.3 移位示意图1.4 SPI时序基本单元1.5 SPI时序1.5.1 发送指令1.5.2 指定地址写1.5.3 指定地址读 2. W25Q642.1 W25Q64简介2.2 硬件电路2…

计网_计算机网络概述

2024.07.03&#xff1a;计算机网络概述 第1节 计算机网络概述 1.1 互连网与互联网1.1.1总结1.1.2 因特网(互联网)发展[自行了解] 1.2 计算机网络组成1.2.1 计算机网络组成方式11.2.2 计算机网络组成方式21.2.3 计算机网络组成方式3 1.3 三种交换方式1.3.1 电路交换(1) 电路交换…

常见的Java运行时异常

常见的Java运行时异常 1、ArithmeticException&#xff08;算术异常&#xff09;2、ClassCastException &#xff08;类转换异常&#xff09;3、IllegalArgumentException &#xff08;非法参数异常&#xff09;4、IndexOutOfBoundsException &#xff08;下标越界异常&#xf…

C语言 | Leetcode C语言题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; struct HashTable {int key;int val;UT_hash_handle hh; };int getID(int x, long long w) {return x < 0 ? (x 1ll) / w - 1 : x / w; }struct HashTable* query(struct HashTable* hashTable, int x) {struct HashTable* tmp;HASH_F…

【Python】已解决:(Python xml库 import xml.dom.minidom导包报错)‘No module named dom’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;Python xml库 import xml.dom.minidom导包报错&#xff09;‘No module named dom’ 一、分析问题背景 在使用Python处理XML文件时&#xff0c;xml…

收银系统源码-线上商城预售功能

1.功能描述 预售&#xff1a;智慧新零售收银系统&#xff0c;线上商城营销插件之一&#xff0c;商品出售时可设置以支付定金或全款的方式提前预售&#xff0c;门店按订单量备货&#xff0c;降低压货成本&#xff1b; 2.适用场景 易损商品提前下单备货&#xff0c;如水果生鲜…