Frp实现外网访问内网服务

news2024/12/27 10:47:06

一、需求背景

博主在本地电脑(Windows)上安装了一款BS架构的软件,现在想要其他人通过域名直接访问本地电脑的web服务。

二、准备事项

(一)前置条件

  1. 公网IP(可以购买阿里云轻量服务器)
  2. 域名(可选,如果你需要域名访问的话)

(二)相关概念

  1. frp服务端
    frp是开源、简洁易用、高性能的内网穿透和反向代理软件,服务端做的事情就是将外网请求转发到内网
  2. frp客户端
    接收服务端转发的请求,并映射到本地的IP和端口;一般你需要本地需要对外相应的服务就装到客户端的服务器上,或者装在和客户端所在服务器网络相通的服务器上。

三、安装步骤

(一)Frp服务器端配置

  1. 下载frp
https://github.com/fatedier/frp/releases

centos选择:frp_0.42.0_linux_amd64.tar.gz
windows选择:frp_0.42.0_windows_amd64.zip

博主Frp服务器端用的阿里云centos

  1. 将对应压缩包上传到服务器,然后解压
tar -zxvf frp_0.42.0_linux_amd64.tar.gz
cd frp_0.42.0_linux_amd64
  1. 修改frps.ini
# frp监听的端口,默认是7000
bind_port = 7000

# frp管理后台端口
dashboard_port = 7500
# frp管理后台账户密码
dashboard_user= admin
dashboard_pwd= admin
enable_prometheus = true

vhost_http_port = 80

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
  1. 阿里云服务器开放7000、7500端口,重启防火墙
firewall-cmd --permanent --zone=public --add-port=7000/tcp
firewall-cmd --permanent --zone=public --add-port=7500/tcp
systemctl reload firewalld
  1. 阿里云控制台开发7000、7500端口
    在这里插入图片描述
  2. 启动服务端
nohup ./frps -c ./frps.ini >/dev/null 2>&1 &
  1. 查看服务器部署情况
http://你的ip:7500

在这里插入图片描述

(二)Frp客户端配置

  1. 下载frp
https://github.com/fatedier/frp/releases

centos选择:frp_0.42.0_linux_amd64.tar.gz
windows选择:frp_0.42.0_windows_amd64.zip

博主Frp客户器端用的Windows11

  1. 客户端配置
    解压上面的zip文件,修改frpc.ini
[root@Fourth frp_0.42.0_linux_amd64]# vi frpc.ini

[common]
server_addr = 服务器的公网IP
server_port = 7000

[web01] 
type = tcp 				
local_ip = 127.0.0.1
local_port = 80
custom_domain = 域名
#如果不需要域名,上面可以不配置
  1. 客户端部署
# 如果是cmd命令窗口
frpc -c frpc.ini
# 如果是powershell窗口
./frpc -c ./frpc.ini

(三)域名配置(可选)

如果不配置域名的话,IP+端口访问即可。
在这里插入图片描述

添加记录在这里插入图片描述

(四)将Frp客户端服务注册到WIN服务(可选)

在Windows系统下,客户端部署后,窗口不能关。但是可能存在误操作的情况,所以我们将Frp客户端服务注册到WIN服务,这样客户端可以在后台运行。
博主使用的是winsw工具

1.下载winsw

https://github.com/winsw/winsw/releases

win11选择WinSW.NET4.exe

2.编写启动和停止脚本

start.bat

frp.exe -c frpc.ini

stop.bat

@echo off
taskkill /f /im frpc.exe
exit;

3.winsw改名

将winsw.exe改名为test-service.exe

4.创建xml配置文件

test-service.xml

<service>
  <id>Test</id>
  <name>Test Service</name>
  <description>Test Jar</description>
  <executable>C:\Users\Administrator\Desktop\test\start.bat</executable>
  <stopexecutable>C:\Users\Administrator\Desktop\test\stop.bat</stopexecutable>
</service>

5.执行安装命令

test-service.exe install

这里可能会报错,提示“无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installtutil.exe),然后用ServerExplorer、Windows服务器管理工具或者NET START命令启动它”

找到你的C:\Windows\Mircrosoft.NET\FrameWork64\v4.0.30319\InstallUtil.exe
在这个路径下使用cmd命令,执行安装
在这里插入图片描述

6.启停

以管理员身份打开cmd

net start test

net stop test

在这里插入图片描述

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

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

相关文章

【藏经阁一起读】(68)__《ECS技术实战指南》

【藏经阁一起读】&#xff08;68&#xff09;__《ECS技术实战指南》 目录 一、知识收获 &#xff08;1&#xff09;、CIPU &#xff08;2&#xff09;、RDMA 二、个人建议 一、知识收获 &#xff08;1&#xff09;、CIPU 1、多模态、海量数据、超大模型成为发展方向&#…

基于Face++网络爬虫+人脸融合算法智能发型推荐程序——深度学习算法应用(含Python及打包exe工程源码)+爬虫数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境 模块实现1. Face.APl调用1&#xff09;Face.APl介绍2&#xff09;调用API 2. 数据爬取1&#xff09;网络数据爬取步骤2&#xff09;爬虫实现 3. 模型构建4. 用户界面设计1&#xff09;需要调用的库文…

肖sir__mysql之多表练习题__006

已知2张基本表&#xff1a;部门表&#xff1a;dept &#xff08;部门号&#xff0c;部门名称&#xff09;;员工表 emp&#xff08;员工号&#xff0c;员工姓名&#xff0c;年龄&#xff0c;入职时间&#xff0c;收入&#xff0c;部门号&#xff09; 1&#xff1a;dept表中有4条…

论文解读 | 基于视觉的水果采摘机器人识别与定位方法研究进展

原创 | 文 BFT机器人 01 背景 在复杂的农业环境中&#xff0c;利用机器视觉及其相关算法可以提高收割机器人的效率、功能性、智能化和远程互动性。对于水果采摘机器人系统来说&#xff0c;主要的挑战包括免提导航和水果定位&#xff0c;以及大多数果园中常见的崎岖地形和大型…

Direct3D纹理映射

借助纹理映射技术&#xff0c;我们可将图像数据映射到三角形单元中&#xff0c;这种功能可以显著地增加所绘制场景的细节和真实感&#xff0c;例如创建一个立方体然后为其每个面映射一个板条纹理&#xff0c;从而将该立方体变为一个板条箱&#xff0c;在Direct3D中纹理用接口ID…

武汉凯迪正大—高压信号发生器

一、产品介绍 本产品是我公司在长期从事电缆故障测试研究方面新开发的创新型换代产品&#xff0c;采用大屏幕彩色液晶显示器、指示高压侧真实电压值、具有过压、过流保护。该产品满足《中华人民共和国电力行业标准&#xff0c;高压试验装置通用技术条件》&#xff0c;主要用于对…

数学建模——差分方程结论介绍

适用对象&#xff1a;事物发展具有明显阶段性 一、差分方程介绍 差分方程是一种描述离散系统演化的数学工具。与微分方程不同&#xff0c;差分方程使用差分代替微分来描述变量之间的关系。 差分方程通常由递归关系定义。假设有一个序列 {y₀, y₁, y₂, y₃, ...}&#xff0c;…

两个单链表相交的问题

两链表相交及其第一个节点 判断有环无环 判断有无环&#xff0c;如果有环返回第一个入环节点&#xff0c;如果无环返回null 使用额外空间&#xff1a;Set结构 沿着指针将a、b、c、d、e、c放入set结构中&#xff0c;每次放入前查看在set集合中是否存在&#xff1b; 若遍历到…

供应商整合对企业有哪些好处?

企业采购总是希望降低成本&#xff0c;赢得更多的利润。实现这目标的其中一种方法就是供应商整合。 究竟什么是供应商整合&#xff1f;整合供应商有哪些好处&#xff1f;本文为你详细解答。 什么是供应商整合&#xff1f; 供应商整合是减少特定产品或服务的供应商数量的过程。…

JTS:06 九交模型讲解

版本 org.locationtech.jts:jts-core:1.19.0 链接: github 九交模型讲解&#xff1a;Dimensionally Extended 9 Intersection Matrix 九交模型 九交模型&#xff0c;是通过矩阵来判断俩个物体的关系的&#xff0c;请看上面九交模型讲解 九交模型测试 测试环境 www.geogebra…

Unity中 UI Shader的基本功能

文章目录 前言一、实现思路1、暴露一个 2D 类型的属性来接受UI的纹理2、设置shader的层级为TransParent半透明渲染层级&#xff0c;一般UI都是在这个渲染层级3、更改混合模式&#xff0c;是 UI 使用的纹理&#xff0c;该透明的地方透明 二、代码实现 前言 Unity中 UI Shader的…

SpringBoot-线程池ThreadPoolExecutor异步处理(包含拆分集合工具类)

ThreadPoolExecutor VS ThreadPoolTaskExecutor ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。 配置文件application.yml # 异步线程配置 自定义使用参数 async:executor:thread:core_pool_size: 10max_pool_size: 100 # 配置最大线程数queue_capacity: …

gif动态图片如何做?两个方法教你在线制作gif

制作gif动画的方法有哪些&#xff1f;gif动图作为当下流行的一种图片格式&#xff0c;是由一帧一帧的图像&#xff0c;循环播放而产生的动画效果。那么&#xff0c;制作gif动画的方法有哪些呢&#xff1f;给大家分享一款专业的gif动画制作&#xff08;https://www.gif.cn/&…

【JVM】Java的内存模型(JMM)!

一、运行时数据区域划分 JVM虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。 JDK 1.8之前分为&#xff1a;线程共享&#xff08;Heap堆区、Method Area方法区&#xff09;、线程私有&#xff08;虚拟机栈、本地方法栈、程序计数器&#xff09; …

“一种三元前驱体废水螯合树脂回收钴的装置”实用新型专利

“一种三元前驱体废水螯合树脂回收钴的装置”实用新型专利 (证书号&#xff1a;第19681862号;专利号&#xff1a;ZL 2022 2 1042752.0) 三元前驱体通常由三元液(硫酸镍、钴、锰的混合溶液)、液碱与氨水在一定条件下液相合成&#xff0c;再经陈化、固液分离、流水洗涤、干燥、过…

PMP考试注意事项有哪些?

1. PMI明确规定&#xff1a;不允许考生使用自带文具&#xff0c;包括自带的笔、削笔刀、橡皮、笔袋、计算器和草稿纸等。 2. 本次考试考场内为每位考生配备2B铅笔、橡皮、计算器(若有需要)和草稿纸。如文具有缺损或考试过程中如需更换铅芯等&#xff0c;请向监考老师举手示意。…

【实战】H5 页面同时适配 PC 移动端 —— 旋转横屏

文章目录 一、场景二、方案三、书单推荐01 《深入实践Kotlin元编程》02 《Spring Boot学习指南》03 《Kotlin编程实战》 一、场景 一个做数据监控的单页面&#xff0c;页面主要内容是一个整体必须是宽屏才能正常展示&#xff0c;这时就不能用传统的适配方案了&#xff0c;需要…

DC电源模块单路、双路输出的不同应用场景

BOSHIDA DC电源模块单路、双路输出的不同应用场景 DC电源模块是一种常见的供电设备&#xff0c;通常用于将市电转换为稳定的直流电源&#xff0c;以供电给各种电子设备。DC电源模块的输出方式分为单路和双路两种&#xff0c;下面将分别介绍它们的不同应用场景。 一、单路输出…

wx.getPrivacySetting 小程序隐私保护指引的使用(复制粘贴即用)

创建privacyPopup 组件 privacyPopup.js Component({properties: {},data: {wxPrivacyName: ,showAgreement: false},lifetimes: {attached() {this.init();}},methods: {async init() {if (isLogin()) {const userPrivacy await this.getPrivacy();this.setData({wxPrivacy…

vue项目生产环境隐藏暴露的代码_源码

// 如果你不需要生产环境的 source map&#xff0c;可以将其设置为 false 以加速生产环境构建。 productionSourceMap: false,