将DJI/Baiwang的增强图传模块接入Asterisk并用Telegram Bot收发短信

前几年笔者写过一篇使用EC20模块配合asterisk及freepbx实现短信转发和网络电话的文章。当时的目标是把一张手机卡从长期插电的旧手机里解放出来,让它可以通过Asterisk接打电话,并用Telegram等工具转发短信。几年后,笔者在某频道看到了拼多多上有商家在清仓DJI的一代增强图传模块,于是花30多元购买了一块。它的USB ID显示为2ca3:4006 DJI Technology Co., Ltd. Baiwang,但从网上的资料和AT命令看,它本质上仍然是高通平台上的EG25/EC25一类模块,不过无法刷入标准的Quectel固件。 ...

2026-07-04 · 15 分钟 · sparktour

1980-2025:45年前的深圳卫星图

笔者最近网上冲浪时看到了一篇有关如何从USGS Earth Explorer上下载历史卫星图像的文章,于是实战了一下,使用QGIS对齐了1980年9月11日(来自USGS Earth Explorer)和2024-2025年(来自Google Earth)的深圳市区卫星图,并对一些深圳的特色地点做了比较。 ...

2025-04-16 · 更新于: 2025-04-24 · 4 分钟 · sparktour

自建OpenStreetmap地图瓦片服务:迁移mbtiles到pmtiles

前言 笔者曾在三年前写过一篇如何self host基于OpenStreetmap数据的博客。在当时的文章里,笔者使用的后端是maptiler开发的的tileserver-gl。它需要一个转换好的mbtiles文件,才能正常serve地图。但遗憾的是,maptiler把下载转换好的地图作为一项商业服务提供,我们只能自己使用maptiler提供的openmaptiles对地图进行转换。由于mbtiles的本质是基于sqlite的地图数据库,使用openmaptiles制作地图的速度相当缓慢(在一台48C256G的机器上转换全世界的地图大概需要一整天的时间,并且对磁盘的IO有较高的要求),host地图也需要使用tileserver-gl处理请求,将mbtiles里的数据转换成pbf格式发送给客户端。 直到最近,笔者注意到了一些GIS开源项目在使用的Protomaps项目,以及他们提出的pmtiles格式。如Protomaps的发起人给博客起的标题《Dynamic Maps, Static Storage》那样,pmtiles的一大优势是如果不需要raster tiles,服务端不再需要安装任何软件,只需要一个“Static Storage”即可(无需任何后端软件对地图数据进行处理)。确切的说,一个支持HTTP Range的服务器。包括nginx,caddy等常见的web服务器和S3服务理论上都是支持这项特性的。 ...

2025-01-15 · 更新于: 2025-01-16 · 5 分钟 · sparktour
hackergame score

USTC Hackergame 2024 Writeup

这是本人第五次参加USTC的hackergame了,本次的排名相比上次略有进步,进到了50名内。 PaoluGPT 观察代码注意到了可能可以进行SQL注入: ...

2024-11-14 · 更新于: 2024-11-15 · 17 分钟 · sparktour

PT924G光猫配置VLAN单线复用

在本文中,我们将介绍如何在PT924G光猫上配置VLAN单线复用,以便在单根光纤上同时传输上网,IPTV和TR069等业务。 获取超级管理员密码 Manufacturer:youhua ProductClass:PT924G HWVersion: V4.0.00 SWVersion: V10.00.924GD02 参考恩山的帖子: ...

2024-02-02 · 更新于: 2024-04-14 · 2 分钟 · sparktour

为keycloak添加可选的passkey/webauth/OTP登陆

本文描述了为keycloak配置passkey,webauth,OTP等无密码登陆的流程。本文中的部分配置可能需要Keycloak 23或者更高的版本才能正常运行。 配置Authentication部分 在keycloak的Authentication - Flow菜单中,复制一份browser flow,笔者把副本取名为了browser with optional webauth and otp。 ...

2024-01-24 · 更新于: 2024-04-14 · 2 分钟 · sparktour

Host the MinIO Server API on a subpath and Configure Multi Domain

尽管Minio在文档中明确说明了minio的S3 API并不支持host在subpath下。但如果真的有需求,我们也可以通过修改nginx的反向代理配置来实现这一点。此方法唯一存在的问题是,bucket的名字需要拥有某个共同的前缀。 Minio配置 minio的docker-compose配置如下: version: '3.6' services: minio: image: quay.io/minio/minio:latest container_name: minio-ssd-backend restart: always ports: - "39000:9000" - "39090:9090" volumes: - /your-local-data/minio/data:/data environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: change-me MINIO_SERVER_URL: https://maindomain.example.com MINIO_BROWSER_REDIRECT_URL: https://console.example.com command: server /data --console-address=:9090 MINIO_SERVER_URL:minio会用这个url来计算签名。 MINIO_BROWSER_REDIRECT_URL:console会host在这个url下,如果熟悉mc客户端的话,不需要console也可以进行绝大部分的配置。 Nginx配置 nginx配置可以参考minio的文档。由于我们的maindomain.example.com中可能还有其他的服务,所以我们只需要把带bucket前缀(假设这里的前缀是bucket-prefix)的请求和minio控制的相关请求反向代理给minio即可。具体来说,需要在相应域名的配置中添加以下的两端配置 ...

2024-01-13 · 更新于: 2024-04-14 · 3 分钟 · sparktour
hackergame score

USTC Hackergame 2023 Writeup

这是本人第四次参加USTC的hackergame了233,有赖今年许多题目正好和运维和环境学知识相关和ChatGPT的横空出世,本人的排名总算第一次进了前100。 ...

2023-11-04 · 更新于: 2024-04-18 · 16 分钟 · sparktour

使用 Mikrotik RouterOS 和 Openwrt 在 ISP 获得的 IPv6 Prefix 上配置二级 PD

在中国大陆,电信运营商常为使用PPPoE拨号的用户分配/60的IPv6 prefix delegation。在本文中,笔者尝试了使用Mikrotik RouterOS获取了电信运营商分配的IPv6 PD,并为下级路由器和PPP接口上的设备继续分发了/64的IPv6 PD。 ...

2023-10-18 · 更新于: 2024-04-14 · 5 分钟 · sparktour

使用Mellanox网卡基于RDMA挂载NFS

笔者的实验室于近期购置了8块nvme硬盘,通过pcie转接卡转接至一台服务器,并用ZFS组了RAID。为了能让实验室的其他服务器也能快速访问主机上的存储池,笔者去闲鱼套了两块ConnectX-4 CX4121A 10Gbe 的万兆网卡用来连接两台服务器,并配置了NFS Over RDMA。 ...

2023-08-24 · 更新于: 2024-04-14 · 4 分钟 · sparktour