内网穿透监控还能这样玩?一个JSON数据竟能暴露所有穿透信息

作者:佚名 时间:2025-12-02 14:05

字号

请求头部:-H 'accept: application/json, text/plain, /' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0'

调试监控

image.png

4.2.2 内网穿透条目:条目发现

类型:相关项目

Key:cfg.discovery

主要项:内网穿透条目

暴露宏变量:{#NATID}

{#NATDOMAIN}

预处理(JavaScript 统一转换)暴露宏变量

var res = JSON.parse(value);
var lld = [];
res.datas.forEach(function(item){
   
    lld.push({
   
        "{#NATID}"    : item.id,
        "{#NATDOMAIN}"    : item.domain
    });
});
return JSON.stringify({
   data: lld});

老道理,同样通过测试步骤,输入RESP接口采集回来的JSON

数据进行加工测试,得到{"data":

{"{#NATID}":xxxx,"{#NATDOMAIN}":"xxxx.iepose.cn"}

},如下图。

image.png

4.2.3 内网穿透条目:条目发现-监控项原型

在LLD 自动发现规则中创建监控项原型,才能继用它暴露的宏变量,这里演示如何获取穿透的内网地址。

类型:相关项目

Key:lanAddr

主要项:内网穿透条目

如下图所示:

image.png

结合预处理JSONPath和正则匹配$.datas

?(@.id=="{#NATID}")

.lanAddr,成功匹配到内网代理IP和端口

image.png

查看最新采集的数据,内网协议,内网地址,映射开启状态均已显示。

image.png

对比「穿透工具A」控制台的内网穿透配置,完全一样!

image.png

4.3 创建中转设备绑定查询 LLD 规则

创建 LLD 规则的目标是暴露采集同类型不同规格的参数,为了减少对HTTP 代理的依赖,我们在创建LLD规则前,需要先建立一个普通的监控项。

4.3.1 中转设备管理

类型:HTTP agent

Key:bind.get

URL:https://xxx.xxx.com/jdis/bindget

请求:GET

查询字段:uid=xxx&owcode=xxx&product=2581&cache_ver=0.29773539924079817

请求头部:同理

调试监控项

image.png

4.3.1 中转设备管理:设备发现

类型:相关项目

Key:dev.discovery

主要项:内网设备管理

暴露宏变量:{#PEERID}

{#NAME}

预处理(JavaScript 统一转换)暴露宏变量

// 只遍历顶级 terms,每台设备生成 1 条发现记录

var lld = [];
var root = JSON.parse(value);
root.terms.forEach(function(node){
   
    var t = node.term;
    lld.push({
   
        "{#PEERID}"   : node.peerid,
        "{#NAME}"     : t.name
    });
});
return JSON.stringify({
   data: lld});

同样通过测试步骤,输入RESP接口采集回来的JSON

数据进行加工测试,得到{"data":

{"{#PEERID}":"xxx","{#NAME}":"xxx"},{"{#PEERID}":"xxx","{#NAME}":"xxx"}

},如下图。

image.png

4.2.3 内网设备挂历:设备发现-监控项原型

在LLD 自动发现规则中创建监控项原型,才能继用它暴露的宏变量,这里演示如何获取穿透的公网IP。

类型:相关项目

Key:ip

"{#NAME}"

主要项:中转设备管理

如下图所示:

image.png

结合预处理JSONPath和正则匹配$.terms

?(@.peerid=="{#PEERID}")

.term.ip,可获取到大端序的IP地址。

预处理(JavaScript 统一转换)

function intToIP(i){
   
    return [
    i & 0xFF,           // 最低字节 → 第 1 段
    (i >>> 8) & 0xFF,   // 次低字节 → 第 2 段
    (i >>> 16) & 0xFF,  // 次高字节 → 第 3 段
    (i >>> 24) & 0xFF   // 最高字节 → 第 4 段
     ].join('.');
}
return intToIP(parseInt(value));

再结合JavaScrips进行转换,可得出最终IP地址。

image.png

4.4 创建中转设备代理服务 LLD 规则

因篇幅原因,本节不做展开,和以上同理。

五、基于自动发现创建监控原型和触发器

5.1 一张图看懂监控纳管流程

「穿透工具A」 API
     │
     ├─ HTTP Agent → LLD 规则 → 生成宏 {
   #PEERID} {
   #NAME} {
   #NATDOMAIN} …
     │                    │
     │                    ├─ Item Prototype
     │                    ├─ Trigger Prototype
     │                    └─ Graph Prototype
     │
     └─ 新节点上线 → 自动纳入监控,无需人工干预

零侵入:无需在节点安装 Agent

零配置:节点增减自动发现

零费用:HTTP 代理 + 免费穿透工具即可落地

5.2 服务端口可用性原型

字段示例

Item Prototype Key : net.tcp.service

tcp,{#SERVICEIP},{#SERVICEPORT}

Trigger Prototype : last(/OWJDXB by HTTP/net.tcp.service

tcp,{#SERVICEIP},{#SERVICEPORT}

)=0

5.3 监控主机内存容量(GB)

实践得知,Linux和Docker系的「穿透工具A」客户可以获取宿主机的总内存和已用内存,指令类似free -m单位 MB ,需要通过预处理倍数 1024x1024进行转换,单位Units 填 B,因为Zabbix不支持MB。

image.png

5.4 动态 HTTP 监控

通过HTTP 代理我们还可以将内网穿透条目中的公网域名纳入监控,判断其标题如果出现:XX无法打开页面即表示网络或者客户端出现问题。

类型:HTTP 代理

Key:web.title.check

URL:{#PROTOCAL}://{#NATDOMAIN}

预处理:(?i)

>()

5.5 自动发现及常规监控项总览

image.png

六、「穿透工具A」监控实战

6.1 添加「穿透工具A」监控

首次需登录「穿透工具」控制台,打开F12找到list链接,点击负载获取你的UID和OWCODE。

image.png

回到Zabbix添加主机,关联我们制作好的「穿透工具A」监控专用模板。

image.png

配置宏变量,其中·{零配置方案:Zabbix + HTTP 代理实现内网穿透工具的自动化管理_数据_21OWCODE}是前面获取的,{$PHONE}是你登录手机号。

image.png

6.2 配置监控看板和查看数据

在仪表盘中,我们添加TOP主机类型组件,即可得到多个账号多个设备在线状态、账号级的流量数据。后续结合Grafana,可扩展出更多的列表数据,如设备的出口IP,映射公网域名等。

image.png

image.png

6.3 查看及触发告警

中转设备代理的服务,即内网服务掉线则会发出告警:

image.png

中转设备掉线,通过HTTP 代理及JavaScrip匹配映射出来的DDNS条目(访问域名)进行实时访问的页面标题,判断是否在线。

image.png

七、总结

本文详尽介绍如何通过HTTP 代理结合预处理中的JSONPath和JavaScript,模拟浏览器将「穿透工具A」的REST接口返回的Json数据进行过滤和匹配,结合Zabbix LLD规则将多中转设备的数据纳管到监控原型中,实现一个都不能少的目标。

作为抛砖引玉,笔者选「穿透工具A」作为功能演示,提供一种零侵入、零配置的监控思路和实现方案。

笔者注:文中所提及的工具名称仅为示例,不代表任何特定品牌或产品;使用本文中的方法和技术时,请确保遵守相关法律法规和服务条款。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接