frp获取映射端口流量统计相关数据

本文介绍如何使用frp进行端口映射并统计流量。通过在Python请求头中添加Authorization字段,实现了从frp获取各端口流量信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中使用frp进行端口映射,工作要求统计每个映射的端口流量情况,并根据流量然后编写相关业务逻辑。官网文档只提供 只能通过浏览器登录成功后查看 frp 的状态以及代理统计信息。
在这里插入图片描述

在这里插入图片描述
但是实际业务中,要求获取每个端口信息放到自己写的程序中。
frps 配置文件如下

[common]
allow_ports = 40200-41000
bind_port = 40000
dashboard_port = 40010
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true


如果直接这么请求

import requests
url = 'http://serviceip:40010'
ret = requests.get(url=url)
print(ret.text)

返回的是

Unauthorized

浏览器右键查看网页源代码,js学的不太好,看不懂。


<!DOCTYPE html> <html lang=en> <head> <meta charset=utf-8> <title>frps dashboard</title> <link rel="shortcut icon" href="favicon.ico"></head> <body> <div id=app></div> <script type="text/javascript" src="manifest.js?14bea8276eef86cc7c61"></script><script type="text/javascript" src="vendor.js?51925ec1a77936b64d61"></script></body> </html> 

最后用Wireshark抓包找到解决办法
在这里插入图片描述

发现模拟请求时请求 /api/proxy/tcp 这个接口并在请求中添加
Authorization: Basic YWRtaW46YWRtaW4=,


url = 'http://serverip:40010/api/proxy/tcp'

header = {
  
    # 'Connection':'keep-alive',
    'Authorization':'Basic YWRtaW46YWRtaW4=',

}
ret = requests.get(url=url,headers=header)
print(ret.text)

返回信息

{"proxies":[{"name":"40293","conf":null,"today_traffic_in":0,"today_traffic_out":0,"cur_conns":0,"last_start_time":"03-23 14:14:18","last_close_time":"03-23 14:22:25","status":"offline"},{"name":"40398","conf":null,"today_traffic_in":5751,"today_traffic_out":4022520,"cur_conns":0,"last_start_time":"03-23 13:40:39","last_close_time":"03-23 13:48:57","status":"offline"},{"name":"40546","conf":null,"today_traffic_in":0,"today_traffic_out":0,"cur_conns":0,"last_start_time":"03-23 14:14:18","last_close_time":"03-23 14:22:25","status":"offline"}]}

完美解决

总结
发现 请求头中添加
Authorization: Basic YWRtaW46YWRtaW4=
是对 frps.ini 配置文件中
dashboard_user = admin
dashboard_pwd = admin
设置的账号密码进行的加密。
具体利用什么加密手段我也没研究。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值