🌾 整点小麦:iOS/macOS App
1.03K subscribers
26 photos
20 files
33 links
Download Telegram
抗倒伏小麦
DNS Proxy
简单来说,这个 DNS 代理 可以看作是 AdGuard Home 的 iOS 版,
额外具有 按 app 分流 和 自定义 DNS 报文(还没做呢) 的功能,
并且会提供更多 DNS 请求模式/优先级/回退逻辑 选项,
未来会提供 多维度 fake-ip 映射表,自定义 DNS 报文,DNS 服务器 等特色功能
🔥1
抗倒伏小麦
Alhaitham DNS Proxy 0.1 (39)已发布 https://testflight.apple.com/join/r8yjKr4P Alhaitham Dashboard 0.4 (135)已发布 https://testflight.apple.com/join/pR1xwCfB 公共更新: 1. 修复流 Flow 视图的按域名/主机名分类查看崩溃的问题
Alhaitham Dashboard 0.4 (136)已发布
https://testflight.apple.com/join/pR1xwCfB

Alhaitham DNS Proxy 0.1 (40)已发布
https://testflight.apple.com/join/r8yjKr4P

公共更新:
1. 优化与储存容器切换逻辑与视图加载逻辑,减少内存占用与加载时间, Dashboard 中切换服务器更流畅

PS:可以通过在 Dashboard 中选择 Shared 服务器,来查看和管理 App Proxy / DNS Proxy 的功能和内容
5
抗倒伏小麦
Alhaitham Dashboard 0.4 (136)已发布 https://testflight.apple.com/join/pR1xwCfB Alhaitham DNS Proxy 0.1 (40)已发布 https://testflight.apple.com/join/r8yjKr4P 公共更新: 1. 优化与储存容器切换逻辑与视图加载逻辑,减少内存占用与加载时间, Dashboard 中切换服务器更流畅 PS:可以通过在 Dashboard 中选择 Shared 服务器,来查看和管理…
Alhaitham Dashboard 0.4 (137)已发布
https://testflight.apple.com/join/pR1xwCfB

Alhaitham DNS Proxy 0.1 (41)已发布
https://testflight.apple.com/join/r8yjKr4P

公共更新:
1. 更新部分文案和图标,统一名称与翻译;

Dashboard 更新:
1. 选择 Shared 服务器时,可以查看与管理来自 App ProxyDNS Proxy 的 策略 Policy 了;

App Proxy 更新:
1. 新增 App Proxy Policy 相关模型与界面,准备后续接入 App 代理功能;

DNS Proxy 更新:
1. 修复意外显示默认 DNS 策略与“添加到底部”功能出错的问题
1🔥1
Alhaitham DNS Proxy 0.2 (43)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (139)已发布
https://testflight.apple.com/join/pR1xwCfB


公共更新:
1. 完全重构 Policy 策略功能,更新 UI 与逻辑;
2. 更新 Flow 相关 UI;
3. 大量 Policy 和 Flow 的 UI 与结构进行了公共基础的抽取与整合,避免重复代码;
4. 本次更新涉及数据库更新,请确保本项目全部 App 均已更新;
5. 需要关闭 App/DNS 代理的 network extension,并重置数据库,然后重启代理方可生效;

Dashboard 更新:
1. 选择 Shared 服务器时,可以查看与管理来自 App ProxyDNS Proxy 的 策略 Policy 了;
- 包括编辑/排序/更新/新建等功能;

App Proxy 更新:
1. Policy 策略新增支持 Block,此策略下将直接不返回响应并直接关闭流,行为类似 Drop;
2. Policy 策略新增支持 Forward,此策略下将直接原样转发,行为类似 Direct;
3. Reject/Policy 策略暂未实现;

DNS Proxy 更新:
1. Policy 策略新增支持 Block,此策略下将直接不返回响应并直接关闭流,行为类似 Drop;
2. 原 DNS Policy 策略内容改为新 Policy 策略的 Forward,此策略下将按照用户设置进行一个或多个 DNS 请求,行为类似条件并发或优选;
3. Reject/Policy 策略暂未实现;
抗倒伏小麦
预计下(下)个版本将提供 DNS 策略的导入导出功能
Alhaitham DNS Proxy 0.2 (44)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (140)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
1. 降级 DNS 记录模型,解决 Dashboard 不兼容 18 系统问题
2. 优化 Policy 策略视图排版, Policy 策略 设置项移至设置页面
3. 补充翻译
4. DNSPolicy 统计卡片加入首页(还没调整字段与内容)
5. 重做设置页面
6. Policy 页面支持导入策略功能 (长按+号弹出导入选项)
👍1
抗倒伏小麦
Alhaitham DNS Proxy 0.2 (44)已发布 https://testflight.apple.com/join/r8yjKr4P Alhaitham Dashboard 0.4 (140)已发布 https://testflight.apple.com/join/pR1xwCfB 公共更新: 1. 降级 DNS 记录模型,解决 Dashboard 不兼容 18 系统问题 2. 优化 Policy 策略视图排版, Policy 策略 设置项移至设置页面 3. 补充翻译 4. DNSPolicy…
DNSPolicy.csv
343 B
导入用的配置是 csv 格式
机读人读都合适,AI 改起来也方便,
不需要额外做什么工作,
不想填的空留空就行,留空就是默认值
导入前会有一个核查界面,告诉具体有问题的地方在哪里
导入部分的界面是 AI 画的,没调优,但功能都有
2
抗倒伏小麦
Alhaitham DNS Proxy 0.2 (44)已发布 https://testflight.apple.com/join/r8yjKr4P Alhaitham Dashboard 0.4 (140)已发布 https://testflight.apple.com/join/pR1xwCfB 公共更新: 1. 降级 DNS 记录模型,解决 Dashboard 不兼容 18 系统问题 2. 优化 Policy 策略视图排版, Policy 策略 设置项移至设置页面 3. 补充翻译 4. DNSPolicy…
关于 Policy 策略的一些字段说明:
没有什么通配符之类的设定
匹配规则是按点(.)分割的,
不会意外匹配到多余的名称

bundleID:
就是 App Bundle ID,比如微信 app 是 com.tencent.xin,
如果 Policy 里 bundleID 填写 com.tencent.xin,那就是规则匹配这个 App,
如果 Policy 里 bundleID 填写 com.tencent,
那就是规则匹配腾讯(com.tencent)这个开发者发布的全部 App

hostname:
这个网络数据流请求的域名,这个域名直接来自苹果 API, 不需要 SNI 嗅探什么的, 不是 http(s) 没证书也一样会有,
如果填写完整的主机名就是完全匹配
如果只填写部分域名那就是匹配这个域名下的全部主机,比如填写 apple.com 就是匹配 *.apple.com

bundleID 与 hostname 现在是 AND 规则,两个都填写就是两个都要命中才行,
不填写(留空)代表不匹配这个内容(或者说全都匹配)
考虑要不要做 OR 规则,感觉没必要,写成两条也不费事
🔥1
抗倒伏小麦
两者通过 Fake-IP 映射 API 打通
除了这个向传统 Packet Tunnel VPN 提供包名的方法外,还会有第二种方式:
经过 Alhaitham DNS Proxy 转发的 DNS 请求报文的附加区域,会同时带上 bundleID 信息, Packet Tunnel VPN 开发者只要读取收到的请求报文的附加区域,即可知道来自哪个 App,从而自行建立 (bundleID, hostname) 双维度的 fake-ip 映射表,恢复按 App 分流能力
👍4
抗倒伏小麦
Alhaitham DNS Proxy 0.2 (44)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (140)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
1. 降级 DNS 记录模型,解决 Dashboard 不兼容 18 系统问题
2. 优化 Policy 策略视图排版, Policy 策略 设置项移至设置页面
3. 补充翻译
4. DNSPolicy 统计卡片加入首页(还没调整字段与内容)
5. 重做设置页面
6. Policy 页面支持导入策略功能 (长按+号弹出导入选项)
Alhaitham DNS Proxy 0.2 (45)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (141)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
1. 增加 Reject 策略,可以按照包或流返回 Reject 响应
- Block 是类似 Drop 的静默拒绝,不向 App 返回拒绝信息
- Reject 是明确返回拒绝信息的响应
2. CSV 导入模板更新字段,支持 Reject 规则导入
3. 重做本地化翻译结构,现在对于枚举与错误信息也正常显示翻译文本

App Proxy 更新:
1. 支持处理分析 HTTP 协议与 HTTP 应用层自定义 Reject
抗倒伏小麦
UI 界面上关于拒绝策略与结果的展示还未更新,当前会显示为 N/A 或红字错误,将在后续版本中修复。
Alhaitham DNS Proxy 0.2 (46)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (142)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
改进了策略与流视图,配置的策略和 DNS 服务器可以正确显示
改进了 DNS 记录视图,因策略被阻止的 DNS 请求状态可以正确显示
1
Per-App VPN + App Proxy 跑通咯
Alhaitham DNS Proxy 0.2 (49)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (145)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
1. 流(Flow)不再储存匹配到的规则快照,而是直接连接到匹配到的策略(Policy)
2. 改进了策略(Policy)与流(Flow)视图
- 长按流(Flow)的行,会展开显示流与对应策略(Policy)的详情
- 流(Flow)的详情页面也可以直接跳转到匹配的策略页面
- 分流页面逻辑优化,提升加载速度
3. 更新更多翻译文本与翻译方式

App Proxy 更新:
1. Extension 启动逻辑与 DNS Proxy Extension 对齐

已知问题:
1. 流(Flow)如果没有匹配到任何策略(Policy),就算使用了默认策略,也不会关联到流(Flow),目前显示为 策略(不适用) 标签
2
抗倒伏小麦
Alhaitham DNS Proxy 0.2 (49)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (145)已发布
Alhaitham DNS Proxy 0.2 (50)已发布
https://testflight.apple.com/join/r8yjKr4P

Alhaitham Dashboard 0.4 (146)已发布
https://testflight.apple.com/join/pR1xwCfB

公共更新:
1. 流(Flow)读写统计数据(字节数)现在正常回写数据库,在流(Flow)的相关视图可以看到读写的字节数
2. 流管理器现在采用延迟写入,每 200 ms 保存一次更新,以节省 CPU 使用、降低磁盘读写频率
3. 流(Flow)命中的默认策略现在正确回写

App Proxy 更新:
1. 新增 PASS (Passthrough/穿透)策略,此模式下不经过任何处理引擎,原样转发数据
- 与 DIRECT (直连)策略是不同的,DIRECT 依旧会经过处理引擎识别解析协议及内容
1
抗倒伏小麦
Alhaitham DNS Proxy 0.2 (50)已发布 https://testflight.apple.com/join/r8yjKr4P Alhaitham Dashboard 0.4 (146)已发布 https://testflight.apple.com/join/pR1xwCfB 公共更新: 1. 流(Flow)读写统计数据(字节数)现在正常回写数据库,在流(Flow)的相关视图可以看到读写的字节数 2. 流管理器现在采用延迟写入,每 200 ms 保存一次更新,以节省 CPU 使用、降低磁盘读写频率…
Alhaitham App Proxy 0.1 (3) 已发布

Alhaitham DNS Proxy 0.3 (53) 已发布
https://testflight.apple.com/join/r8yjKr4P
Alhaitham Dashboard 0.4 (149) 已发布
https://testflight.apple.com/join/pR1xwCfB

# 公共更新

## 新增:事务(Transaction)体系
- 相当于 Surge 的请求 Request 或 Clash 的连接 Connection
- 支持统一查看全部事务,也可以分别查看 HTTP 事务、DNS 事务与应用层(AppLayer)事务

## 新增:应用层(AppLayer)事务识别
- 应用层(AppLayer)事务是从原始 TCP/UDP 流量中分析、识别、拼接并还原出的上层协议请求/响应
- HTTP 事务会还原为具体的 HTTP 请求/响应
- DNS 事务会还原为具体的 DNS 查询/响应
- 暂时无法识别的流量会记录为兜底(Fallback)事务,方便后续排查

## 新增:事务详情页
- 支持查看基础信息、请求/响应内容、统计信息、端点(Endpoint)、DNS 生存时间(TTL)与过期时间等信息

## 新增:事务统计与管理入口
- 新增事务统计卡片、侧栏分组、搜索、筛选与缓存清理入口

## 新增:聚合外观设置页
- 新增全部流(All Flow)与全部事务(All Transaction)外观设置页
- 可以在一个入口内切换不同类型并调整显示样式

## 新增:HTTP 与 DNS 数据视图
- 仪表盘(Dashboard)、应用代理(App Proxy)、DNS 代理(DNS Proxy)的聚焦页面现在可以直接进入对应数据页面

## 改进:外观设置页面布局
- iOS 预览与分页内容不再被拉伸
- macOS 预览区和设置列宽恢复对齐

## 改进:状态与本地化显示
- 改进流(Flow)、策略(Policy)、DNS、事务(Transaction)的状态展示与本地化文本
- 减少 N/A、空白状态和错误状态显示不一致的问题

## 改进:运行期数据写入性能
- 流(Flow)、DNS、事务(Transaction)等运行期数据改为按唯一标识(uid)持续写回
- 通过写入队列与节流保存降低频繁读写带来的卡顿

## 改进:生命周期收尾保存
- 提供器(Provider)停止与休眠时会显式落盘待保存数据
- 减少短时间统计数据、事务状态或缓存数据丢失的情况

## 修复:底部附属视图宽度
- 修复底部附属视图(Bottom Accessory)处于内联(inline)状态时,分段选择器或策略底部控件宽度溢出的问题

## 调整:共享(Shared)数据源结构
- 移除独立连接(Connection)页面
- 连接相关展示合并到事务与流体系中