Frp自建内网穿透

news2025/2/25 21:06:47

目录

Frp使用须知

Frp的工作原理

Frp配置服务端

frp文件夹内的文件

frps.ini配置文件

仪表盘

Frp配置客户端

文件目录 

frpc.ini配置文件

Frp使用须知

前言:自建frp需要部署服务端以及客户端,服务端类似于花生壳服务端,ngrok服务端一样暴露出通信端口,客户端连接后进行通信

服务端:需要有公网IP,最合适的机器为云服务(linux)

客户端:本地的linux虚拟机或者其他物理机(要穿透的内网机器windows)

Frp的工作原理

理解:

  • 当客户端启动时,它会向frp服务器发送一条请求,请求服务器分配一个唯一的客户端ID。
  • 服务器返回分配的客户端ID。frp服务器将分配一个唯一的客户端ID,并将其返回给客户端。
  • 客户端连接到服务器。客户端使用分配的客户端ID连接到frp服务器,以便服务器可以知道客户端要连接的计算机和端口。
  • 当外部网络发出请求时,frp服务器将请求转发到客户端,客户端透过服务端将请求转发到指定的外网计算机和端口上。

Frp配置服务端

下载好frp安装包:https://github.com/fatedier/frp/releases

注意:下载后缀为linux__amd64的最新版。

将压缩包放入linux内的用户(root)文件夹中。

解压该压缩包:tar xzvf frp_0.34.3_linux_amd64.tar.gz

将解压后的文件名命名为frp:mv frp_0.34.3_linux_amd64 frp

frp文件夹内的文件

  • frpc:客户端执行文件
  • frpc_full.ini:客户端完整配置文件
  • frpc.ini:客户端配置文件
  • frps:服务端执行文件
  • frps_full.ini:服务端完整配置文件
  • frps.ini:服务端配置文件

注意:frpc文件供客户端使用,frps供服务端使用。在服务端把相关客户端文件都删掉。

删掉客户端文件:rm -f frpc frpc_full.ini frpc.ini

frps.ini配置文件

[common]
#监听客户端地址,默认0.0.0.0表示全部
bind_addr = 0.0.0.0
#frps与frpc交互用的端口,记得关闭防火墙
bind_port = 7000
#设置token
privilege_token = 12345678
#开启日志
enable_prometheus = true
#日志路径
log_file = ./frps.log
#日志级别
log_level = info
#日志保存天数
log_max_days = 3
#连接池数量,如果有很多链接最好弄高点,默认5
max_pool_count = 5
#后台仪表盘,登录后服务端可查看frp状态
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
#要转发的端口(可写多个,对应下面的转发组)
vhost_tcp_port01=7100
vhost_tcp_port02=260
vhost_tcp_port03=270
vhost_tcp_port04=280
#心跳连接,若不加60s就自动断连
heartbeat_timeout = 30

注意:vhost_xxx_port字段没有实际意义,其只是描述该端口是干嘛的 

后台启动frps:nohup ./frps -c frps.ini &

注意:-c表示指定配置文件。

仪表盘

前言:我们将服务端启动后就可以通过 Dashboard 来方便的查看 FRP 的状态以及代理统计信息展示。

注意:仪表盘的用户名密码就在frps.ini的配置文件中

  • 用户名:dashboard_user
  • 密码:dashboard_pwd 

访问仪表盘:服务器公网ip:dashboard_port

Frp配置客户端

下载好frp安装包:https://github.com/fatedier/frp/releases

注意:下载后缀为windows__amd64的最新版,并解压在电脑的文件中。

文件目录 

注意:将文件名为frps的文件删除。

frpc.ini配置文件

[common]
#服务器的公网ip,网址也行
server_addr = 198.44.165.183
#frps与frpc交互用的端口,记得关闭防火墙
server_port = 7000
#设置token,对应frps
privilege_token = 12345678
#日志路径
log_file = ./frps.log
#日志级别
log_level = info
#日志保存天数
log_max_days = 3
#心跳连接
heartbeat_timeout = 30

[ssh]
#连接类型
type = tcp
#被访问的本机IP
local_ip = 192.168.1.14
#被访问的端口
local_port = 8080
#监听的服务器端的端口
remote_port = 7100
#是否加密信息
use_encryption = true
#是否压缩信息
use_compression = true
#限制该隧道的带宽,单位为KB或MB
bandwidth_limit = 1MB

#一次映射多个端口写法
[range:top]
type = tcp
local_ip = 192.168.1.14
local_port = 230,240,250
remote_port = 260,270,280

理解:

  • 外网设备访问公网IP的7100端口,那么就会跳转到内网本机的8080端口
  • 默认情况下只要知道 FRP 服务端开放的端口,任意 FRP 客户端都可以随意在服务端上注册端口映射,因此需要token这个参数,只有知道该token的客户端才可以在服务端上注册端口映射
  • 中括号内的英文只是为了标识作用,没有实际意义;其可以写多组,一组代表要转发一组端口
  • 写多组端口转发后,那么在服务端应该配置要转发的端口(vhost_xxx_port)
  • 一次映射多个端口时,映射顺序是一一对应的

配置完成后,在当前目录进入cmd,执行以下指令

frpc.exe -c frpc.ini

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

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

相关文章

SQL注入之HTTP头部注入

文章目录 cookie注入练习获取数据库名称获取版本号 base64注入练习获取数据库名称获取版本号 user-agent注入练习获取数据库名称获取版本号 cookie注入练习 向服务器传参三大基本方法:GPC GET方法,参数在URL中 POST,参数在body中 COOKIE,参数…

了解设备全生命周期管理的5个阶段和好处

在现代企业运营中,设备的有效管理对于提高生产效率和降低成本至关重要。设备全生命周期管理涵盖了从规划、获取、利用、维护到处置的一系列阶段,确保设备在其整个寿命内保持高效、可靠。本文将介绍设备全生命周期管理的基础知识,探讨每个阶段…

[蓝帽杯 2022 初赛]domainhacker

打开流量包,追踪TCP流,看到一串url编码 放到瑞士军刀里面解密 最下面这一串会觉得像base64编码 删掉前面两个字符就可以base64解码 依次类推,提取到第13个流,得到一串编码其中里面有密码 导出http对象 发现最后有个1.rar文件 不出…

解决 node-gyp 错误问题

gyp verb check python checking for Python executable “python2.7” in the PATH gyp verb which failed Error: not found: python2.7 安装老项目老是报错Python找不到,以为是自己node版本高过了node-sass导致的,把node版本降下来还是不行。然后找到…

Socket基本原理

一、简单介绍 Socket,又称套接字,是Linux跨进程通信(IPC,Inter Process Communication)方式的一种。相比于其他IPC方式,Socket牛逼在于可做到同一台主机内跨进程通信,不同主机间的跨进程通信。…

感受繁华都市中的人间温情 孙俪罗晋携手为爱《安家》|湖北卫视今晚开播

安居乐业是许多中国家庭一生绕不开的关卡,买房便成了持续不减的社会热点话题。电视剧《安家》将镜头对准与人们生活息息相关的房产行业,以房屋中介的视角,窥见民生百态,从看房、签订合同再到办理过户手续,高度还原了房…

IMS中Binder案例

IMS中Binder案例 1、FWK层中AIDL形式1.1 服务端实现Stub1.2 客户端获取proxy 2、Native层中AIDL形式2.1 服务端对应Bn端2.2 客户端对应Bp端 android12-release 1、FWK层中AIDL形式 Android 接口定义语言 (AIDL)、Android 应用层 到 HAL 层 AIDL形式是Android中binder机制的具体…

【python自动化】pytest系列(中)

书接上文:【python自动化】pytest系列(上) 本篇为中篇,后面还有两篇,从本篇开始,知识点会增加,难度会一丢丢的一次递增。 本章知识点 文章目录 1、上节内容知识点回顾2、Pytest的前置后置操作…

C语言:算数转换

一、什么是算数转换 已知:char 和 short 这两种字节长度小于 int 类型参与算术运算时,会进行整型提升。 而当字节长度大于 int 类型的数据参与运算时,如果某个操作符的两个操作数是不同类型,其中一个操作数需要按级别(…

便携式水污染物监测设备有哪些参数要求

便携式水污染物监测设备应用范围有: 1、饮用水检测:生活用水(自来水)、(瓶、桶装)矿泉水、天然矿泉水等; 2、工业用水检测:工业循环冷却水、工业锅炉水等; 3、其他检测&a…

c语言实现队列

文章目录 前言一、队列的特征二、队列的实现1、队列的设计2、队列的初始化3、元素的入队和出队4、返回队头的数据和队尾的数据5、返回队列的长度6、队列的销毁 三、循环队列四、队列和栈综合练习 前言 栈的特点是元素后进先出(Last In First Out),而对应的还有一种…

十、pikachu之php反序列化

文章目录 1、php反序列化概述2、实战3、关于Magic function4、__wakeup()和destruct() 1、php反序列化概述 在理解这个漏洞前,首先搞清楚php中serialize(),unserialize()这两个函数。 (1)序列化serialize():就是把一个…

一款打工人必备的电脑端自律软件!!冲鸭打工人!!

你!有没有渴望进步!! 你!有没有渴望变强!!! 成为大佬!!!超越巨佬!!! 这就是一款为这样的你量身定做的程序:输入…

宝塔 杀死 java服务 netstat -tlnp | grep :7003 kill 2205698

7003 是端口 netstat -tlnp | grep :7003 kill 2205698

基于鸽群算法优化的BP神经网络(预测应用) - 附代码

基于鸽群算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于鸽群算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.鸽群优化BP神经网络2.1 BP神经网络参数设置2.2 鸽群算法应用 4.测试结果:5.Matlab代码 摘要…

遥感影像的缨帽(K-T)变换Python实现

(1)介绍 缨帽变换(Kirchhoff Transform,K-T变换) 是一种在遥感图像处理中常用的技术,它可以有效地提取地物的空间特征和频谱信息。本文将对遥感缨帽变换的提出者、原理方法、公式、现在的发展、作用进行详…

Mybatis (3)-----分页的运用

目录 一、分页查询 二,特殊的字符处理 三、总结 前言:在我们上篇已经学的动态sql的基础上,今天继续讲解关于maybatis的分页,特殊的字符处理。希望这篇博客可以帮助到大家哦! 一、分页查询 为什么要重写mybatis的分…

ATFX汇市:美国PMI数据不及预期,非农基数又遭下修,经济前景堪忧

环球汇市行情摘要—— 昨日,美元指数下跌0.22%,收盘在103.38点, 欧元升值0.17%,收盘价1.0864点; 日元升值0.7%,收盘价144.85点; 英镑贬值0.06%,收盘价1.2725点; 瑞郎…

基于Visual studio创建API项目

API(英文全称:Application Programming Interface,中文:应用程序编程接口) 为什么要 通过API接口可以与其他软件实现数据相互通信,API这项技术能够提高开发效率。 本文是基于vs2017 .net平台搭建API。希望可以帮助到学…

Python Opencv实践 - 图像直方图自适应均衡化

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/cat.jpg", cv.IMREAD_GRAYSCALE) print(img.shape)#整幅图像做普通的直方图均衡化 img_hist_equalized cv.equalizeHist(img)#图像直方图自适应均衡化 #1. 创…