FRP实现本地localhost,JavaWeb项目到公网

2024-03-19 07:44

本文主要是介绍FRP实现本地localhost,JavaWeb项目到公网,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、FRP介绍

FRP (Fast Reverse Proxy) 是一个专为内网穿透和内网映射而设计的工具,它可以帮助用户轻松地将内部网络服务暴露到公网上,实现公网访问内网的功能。FRP 支持 TCP、UDP、HTTP 和 HTTPS 等协议的转发,并且提供了丰富的配置选项和安全特性。

FRP 的工作原理是通过在内网和公网各部署一个 FRP 客户端和一个 FRP 服务器,通过客户端和服务器之间的通信,实现对内网服务的映射和代理。用户可以通过配置文件灵活地定义端口映射、域名绑定等规则,使得外部用户可以通过公网访问内网提供的服务,例如 Web 服务、SSH、FTP 等。

二、FRP的特点

  1. 灵活配置: 用户可以通过配置文件定义不同的映射规则和安全设置。
  2. 支持多种协议: FRP 支持 TCP、UDP、HTTP、HTTPS 等多种协议的转发。
  3. 安全可靠: FRP 支持基于 Token 的身份验证机制,保证访问的安全性。
  4. 跨平台: FRP 客户端和服务器支持 Windows、Linux、Mac 等多个平台。

FRP 是一个方便实用的内网穿透工具,适用于需要将内部网络服务暴露到公网上的场景,同时也对安全性有较高要求的用户提供了相应的保障措施。

三、FRP下载

3.1服务端下载与配置

frps.exe 在BT下载,看我先前的博文, 看图也知道是哪款面板

 设置FRP

打了马赛克的不要管

给了箭头的必须填

1、设置“中继服务器”ip,类似于嫦娥五号的中继卫星 能够 让 我们和面向地球月球背面通信。

47.xxx.xxx.xxx 为你的云服务器地址

2、服务器端口

15443 请在云服务器提供商 的安全组 开启 以万位取端口,避免冲突

3、HTTP协议端口

即是能够被公网访问 并 携带的端口

4、token要获取

客户端 frpc.ini需要用到

3.2客户端下载与配置

1、感谢fatedier的大佬。

2、下载release的包

我选的是0.32.1windowAMD架构的旧包。解压后的目录内容见上图。

3、配置frpc.ini

[common]
server_addr =  47.xxx.xxx.xxx
server_port = 15443(frps的端口)
token = SZhOxxxxxx(获取的token)[web] (不是SSH别改)
type = http (别改)
local_ip = 127.0.0.1
local_port = 8888 (win本地的端口)
remote_port = 18080 (访问的端口)
custom_domains =   47.xxx.xxx.xxx (没有备案域名则云服务器ip)

3.3客户端运行

四、其他异常

4.1拒绝连接

查看云服务器的frps是否启动,没有则开启,异常则重新连接。

4.2访问异常

看看frpc.exe是否在win中一只挂着

4.3token异常

在cmd 会包token错误,在服务端再重新获取一遍

其他异常私信我。

五、一定要放行端口

六、演示

6.1操作

window:eclipse也可以在index.jsp页面或其他页面直接启动 alt+shift+x  再 R 运行项目

window:在安装目录下运行,start,前提是端口为8888,本地访问端口


linux:也可以在linux中,将项目放在对应的tomcat服务器webapps中,再运行。

6.2结果

1、本地访问

切记cmd窗口必须一直运行

访问服务器端口 + 访问端口18080 + 项目目录,就能实现公网访问 window的测试项目啦。

如果是mac 或 linux 做客户端 则需要 下载对应的安装包。 

 

这篇关于FRP实现本地localhost,JavaWeb项目到公网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/825264

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代,构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案,帮助开发者快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器等)。本文将探讨 Spring Cloud 的定义、核心组件、应用场景以及未来的发展趋势。 什么是 Spring Cloud Spring Cloud 是一个基于 Spring

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

java8的新特性之一(Java Lambda表达式)

1:Java8的新特性 Lambda 表达式: 允许以更简洁的方式表示匿名函数(或称为闭包)。可以将Lambda表达式作为参数传递给方法或赋值给函数式接口类型的变量。 Stream API: 提供了一种处理集合数据的流式处理方式,支持函数式编程风格。 允许以声明性方式处理数据集合(如List、Set等)。提供了一系列操作,如map、filter、reduce等,以支持复杂的查询和转

用Microsoft.Extensions.Hosting 管理WPF项目.

首先引入必要的包: <ItemGroup><PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" /><PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" /><PackageReference Include="Serilog

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单处理:通过 @ModelAttribute 将表单数据绑定到模型对象上预处理逻辑:在请求处理之前

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001