ar
Feedback
𝐄𝟓 𝟖𝟔 𝟗𝟓

𝐄𝟓 𝟖𝟔 𝟗𝟓

الذهاب إلى القناة على Telegram
3 523
المشتركون
+524 ساعات
+197 أيام
+9330 أيام
أرشيف المشاركات
照理来说,你这个级别的用户还无权向我催更,但是为了满足你的好奇心,我可以告诉你:中国的软件行业可谓是浩浩荡荡,每个开发者都身处洪流之中。期间,有的人凭借着自身努力或者幸运站在了潮头之上。可是潮头之上可谓是风光无限,诱惑无限,同时也风险无限。看来未来远不如看过去那么清晰,激昂和困惑交织在每个开发者的心头。 不是不更,而是走可持续迭代路线,缓更,慢更,优更,有步骤的更新。坚持一个主干分支原则,做到四不两直,不画饼,不糊弄,不烂尾,不脚踏多条产品线,直接说技术方案,直接同步进度。让有好奇心的先更,让心态稳定的先更,让先更带动后更,也要具体情况具体更,不是随意更,而是精心更,高质更,科学更,有准备的更。在贯彻落实中稳中求进,以技术的力量助力交付,同时兼顾特殊情况,灵活更。

这是当前 ebpf 入站实现的介绍。

已知风险与限制 该功能仍处于实验阶段,升级前请保留可回退版本。 Linux 6.6.0 至 6.6.46 存在上游 LPM trie key 布局缺陷。在涉及 UID、包名、规则集 CIDR或 shared 来源 CIDR 等 LPM 更新时,受影响内核可能出现 UBSAN 报告甚至 panic。sing-box 会在无法确认修复时拒绝执行相关策略更新;建议升级到 6.6.47+ 或使用已经回移上游修复的厂商内核。 部分 Android 设备的 netd 会在根 cgroup 使用独占 socket hook。sing-box 现使用 multi-program attachment,且不会回退到独占模式替换系统程序;但如果 sing-box 先挂载、netd 之后重新进行独占挂载,特定内核仍可能拒绝 netd。遇到该问题的设备请改用 local.data_plane: tc。 shared 只负责代理流量,不负责开启 IP forwarding,也不提供 NAT、DHCP、IPv6 路由器通告或热点管理。 packet_rewrite 只支持以太网帧;Android rmnet、PPP/PPPoE 等 raw-IP/L3 接口应使用 socket_assign。 已分片的 IPv4 和非 atomic IPv6 分片会绕过接管。 Android 热点 IPv6 是否可用仍取决于系统是否向客户端提供有效前缀、路由和 RA,eBPF 入站不会自行补齐这些网络配置。 一个 sing-box 实例中只能有一个 eBPF 入站启用 local 接管,其他 eBPF 入站只能使用 shared。 反馈问题时请附带: 设备型号和系统版本 完整内核版本 eBPF 入站配置 完整启动日志 sing-box tools ebpf status ... --json 输出 Clash API /ebpf 输出 若设备发生重启,同时提供 /sys/fs/pstore/、last_kmsg 或厂商 ylog 当前仍欢迎 Root Android、OpenWrt 和标准 Linux 用户参与兼容性、稳定性及性能测试。

sing-box eBPF 入站更新:当前测试实现与配置说明 此前频道中关于 testing-ref1nd、testing-ebpf-cilium 的介绍、配置示例及编译说明均已过期,请以本条消息和当前分支文档为准。 当前测试分支: CHIZI-0618/sing-box:ebpf-inbound eBPF 入站面向 Root Android、OpenWrt 和标准 Linux,通过内核 eBPF 程序透明接管选中的 TCP/UDP 流量。被接管的连接仍进入 sing-box 的常规路由流程,无需 TUN 用户态网络栈,也不依赖整套 iptables/nftables REDIRECT 或 TPROXY 规则。 当前数据面 eBPF 入站由 local 和 shared 两条可独立启用的数据路径组成,不再使用旧版的 mode、shared_network 以及顶层 dns_mode、cgroup_path 配置。 local.data_plane: cgroup:默认本机数据面,在 socket connect/sendmsg 阶段完成重定向,不需要让每个本机数据包经过 TC。 local.data_plane: tc:在当前默认网络接口接管本机流量,并在默认接口变化时自动迁移。 shared.data_plane: packet_rewrite:默认共享网络数据面,在热点或 LAN 下游接口改写流量,并在返回方向恢复原始地址;要求以太网帧。 shared.data_plane: socket_assign:保留原始连接 tuple,支持 Ethernet、raw-IP、PPP/PPPoE 及部分隧道接口,但需要更多 TC socket lookup、bpf_sk_assign 和策略路由能力。 local 与 shared 可以单独启用,也可以组合使用。本机与热点流量支持 IPv4/IPv6,并可分别开关。 主要能力 支持 TCP、UDP 透明代理。 支持 UID、UID range、Android 用户和包名筛选。 支持 shared 客户端来源 CIDR、MAC 地址筛选。 支持按目标端口或端口范围绕过。 支持私有/特殊用途地址和规则集 CIDR 在内核侧提前绕过。 支持 hijack、respect_policy、off 三种 DNS 模式。 支持 FakeIP ICMP Echo Reply,使 FakeIP 地址能够响应 ping;该功能适用于 local TC 或任一 shared 数据面,local cgroup 单独启用时不支持。 使用 socket cookie 防止 sing-box 自身连接再次进入 eBPF 入站。 进程规则启用时可使用可选的 eBPF socket owner tracker,失败后自动回退用户态进程查找;用户态结果带有缓存和并发合并,减少高频 /proc 扫描。 shared 接口暂时不存在不会阻止启动;接口创建、删除、重建或 TC attachment 丢失后会自动检查和恢复。 bypass_rule_set 支持运行时更新,并进行事务式应用、失败回滚和有界重试。 支持 TCX 的内核会优先使用 TCX link,否则回退到兼容的 clsact attachment。 cgroup attachment 支持 BPF_F_ALLOW_MULTI,不会在 multi attach 失败后改用独占模式替换已有程序。 退出时只清理本实例持有的 eBPF、TC、路由、veth 和相关网络状态。 当前配置示例 以下示例同时接管本机和热点客户端流量,请将 wlan1 替换为设备实际的下游接口:
{
  "type": "ebpf",
  "tag": "ebpf-in",
  "network": ["tcp", "udp"],
  "udp_timeout": "5m",
  "tc_priority": 1,
  "fakeip_icmp": "off",
  "bypass_rule_set": ["geoip-cn"],
  "local": {
    "enabled": true,
    "data_plane": "cgroup",
    "dns_mode": "respect_policy",
    "ipv6": true,
    "bypass_private_address": true,
    "include_uid": [],
    "include_uid_range": [],
    "exclude_uid": [],
    "exclude_uid_range": [],
    "include_android_user": [],
    "include_package": [],
    "exclude_package": [],
    "bypass_port": [],
    "bypass_port_range": []
  },
  "shared": {
    "enabled": true,
    "data_plane": "packet_rewrite",
    "dns_mode": "respect_policy",
    "interface": ["wlan1"],
    "ipv6": true,
    "bypass_private_address": true,
    "include_source_cidr": [],
    "exclude_source_cidr": [],
    "include_mac_address": [],
    "exclude_mac_address": [],
    "bypass_port": [],
    "bypass_port_range": []
  }
}
如果只需要本机代理,可删除 shared 或将 shared.enabled 设为 false。如果只需要热点/LAN 代理,则显式设置:
"local": {
  "enabled": false
},
"shared": {
  "enabled": true
}
DNS 模式 hijack:优先接管已启用协议的目标 53 端口流量。 respect_policy:先应用 local UID/包名或 shared 来源选择策略,再接管目标 53 端口。 off:不接管目标 53 端口。 以上模式只识别普通 TCP/UDP 53,不识别 DoH 或 DoT。 编译与运行 编译时需要启用:
-tags with_ebpf
with_ebpf 的运行时为纯 Go。仓库已经内嵌生成好的大小端 BPF 对象,因此普通构建不需要为了 eBPF 单独启用 CGO,也不需要 Android NDK。只有修改 native BPF C 源码并重新生成对象时,维护者才需要 Android NDK r29 Clang 21。 运行时不依赖 bpftool、tc、ip 命令,也不依赖内核 BTF 或 CO-RE。 以 root 运行兼容性最好。具体需要的 cgroup、TC、map、program type 和 helper 取决于所选数据面。Android 厂商内核经常单独禁用或回移某项能力,因此不再承诺简单的“最低内核版本”,应以实际能力探测结果为准。 建议使用与目标配置一致的参数运行:
sing-box tools ebpf status \
  --local-data-plane cgroup \
  --shared-data-plane packet_rewrite \
  --interface wlan1 \
  --network tcp,udp \
  --json
该命令会探测 map、program type、helper,并加载后立即关闭实际选择的内嵌对象;不会挂载 cgroup/TC 程序,也不会修改 qdisc、路由、veth、sysctl 或实际流量。 启用 Clash API 后,还可通过以下接口查看运行中的 eBPF 入站、attachment、资源占用、恢复状态和失败计数:
curl -H "Authorization: Bearer $SECRET" \
  http://127.0.0.1:9090/ebpf

根据最新的开发者所述,如果出现最新版本无法访问,则需要设置环境变量,可以写到脚本文件里。
export SUB_STORE_CORS_ALLOWED_ORIGINS="*"
export SUB_STORE_FRONTEND_BACKEND_PATH="/"

快来使用 https://github.com/SagerNet/sing-box-dashboard 吧 参考配置: { "services": [ { "type": "api", "listen": "::", "listen_port": 9
+5
快来使用 https://github.com/SagerNet/sing-box-dashboard 吧 参考配置:
{
  "services": [
    {
      "type": "api",
      "listen": "::",
      "listen_port": 9999,
      "secret": "singbox",
      "dashboard": {
        "enabled": true,
        "path": "dashboard",
        "download_url": "https://github.com/SagerNet/sing-box-dashboard/archive/refs/heads/gh-pages.zip"
      }
    }
  ]
}

我更新了自用配置,仅供参考。链接没变,版本发生了变化。

sing-box 可观测性测试版本 在 testing-observability 分支中加入了专用可观测性 API,可在不保存本地连接历史数据库的情况下,查看更完整的运行与流量信息。 主要功能: • Prometheus 格式的流量、连接、内存、入
sing-box 可观测性测试版本 在 testing-observability 分支中加入了专用可观测性 API,可在不保存本地连接历史数据库的情况下,查看更完整的运行与流量信息。 主要功能: • Prometheus 格式的流量、连接、内存、入站、出站链及 URLTest 指标 • 活跃连接和近期关闭连接查询 • 按出站、域名、规则、进程、用户等维度进行 Top-K 统计 • Server-Sent Events 实时连接事件 • 可直接导入的 Grafana Dashboard • 长期历史交给 Prometheus 保存,sing-box 只保留有界的近期内存数据 配置示例:
"observability": {
  "enabled": true,
  "recent_connections": 2000,
  "recent_ttl": "1h",
  "top_k_size": 100,
  "expose_sensitive": true
}
API 默认挂载在 Clash Controller 下: http://127.0.0.1:9090/observability/v1/ 使用时需要配置 clash_api.secret,并通过 Bearer Token 访问。 Grafana Dashboard 和详细说明见文档 Android KernelSU 用户还可以尝试 singbox-grafana-ksu 模块,
该模块目前仍属于测试项目,首次安装需要联网下载约 515 MiB 的组件,建议预留至少 1.5 GB 空间,并在安装前做好备份。
在手机本地自动搭建 Grafana、Prometheus 和 Infinity 插件,安装后通过: http://127.0.0.1:3000/d/sing-box-observability/sing-box-observability 直接查看 Dashboard。

我自用的 testing-ref1nd 分支开启了ebpf_debug tag 构建,需要更多人来测试,特别是大流量和短时间大量连接的情形,采集日志时间的越长越好,有能力的话,开 Go pprof 更好,有助于排查 cpu 和内存热点。 具体可以参考 https://github.com/CHIZI-0618/sing-box/blob/testing-ebpf-cilium/docs/manual/misc/ebpf-troubleshooting.zh.md

sing-box eBPF 入站已完成 Cilium 重构 新的 eBPF 入站实现已经进入测试阶段,并已合并到 ref1nd 测试分支。欢迎 root Android、OpenWrt 和标准 Linux 用户参与测试。 本次不只是替换加载器,而是对 eBPF 入站的数据面、加载流程、能力探测和生命周期管理进行了完整重构。 主要特性 local:通过 cgroup socket hook 拦截本机 TCP/UDP,适合 root Android。 shared:通过 TC 拦截热点、LAN 等下游设备流量。 hybrid:同时启用本机和共享网络拦截。 支持 IPv4、IPv6,并可分别控制 local/shared IPv6 行为。 支持 UID、UID range、Android 用户和应用包名筛选。 支持 shared 来源 CIDR、MAC 地址筛选。 支持私网地址和规则集 CIDR 在内核中直接绕过。 DNS 支持 hijack、respect_bypass、off 三种模式。 shared 接口出现、消失或 TC filter 被移除时会自动检查并重新挂载。 使用精确 HASH map 保存本机地址,规避部分 Linux 6.6 LPM trie 崩溃问题。 本机模式在 socket 操作阶段完成重定向,不需要对每个数据包运行 TC。 基于 cilium/ebpf 管理 ELF、map、program、verifier 日志和 attachment。 运行时为纯 Go,不依赖 cgo、bpftool、tc 命令或内核 BTF/CO-RE。 普通构建使用仓库内嵌 BPF 对象,不需要 Android NDK;只有修改 BPF C 源码后重新生成对象才需要 NDK。 配置示例 以下示例同时拦截本机和热点客户端流量,请将 wlan2 名称替换为实际配置:
{
  "type": "ebpf",
  "tag": "ebpf-in",
  "mode": "hybrid",
  "dns_mode": "hijack",
  "bypass_private_address": true,
  "bypass_rule_set": [],
  "local": {
    "ipv6_mode": "auto",
    "include_uid": [],
    "exclude_uid": [],
    "include_package": [],
    "exclude_package": []
  },
  "shared": {
    "interface": ["wlan2"],
    "ipv6_mode": "always",
    "include_source_cidr": [],
    "exclude_source_cidr": [],
    "include_mac_address": [],
    "exclude_mac_address": []
  }
}
dns_mode 行为: hijack:DNS 优先于私网和规则集绕过,保持原有兼容行为。 respect_bypass:DNS 也遵循私网和规则集绕过。 off:不拦截目标端口 53。 包名策略只保证由目标 UID 直接创建的 socket。系统 DNS、DownloadManager、isolated process、SDK sandbox 等代发流量可能属于其他 UID;启动日志会输出最终转换后的 include/exclude UID range。 内核要求 shared 模式、local TCP-only:目标最低 Linux 4.19。 local UDP:需要 Linux 5.2 引入的 cgroup UDP recvmsg hook,或厂商回移。 Android 主要验证目标:GKI 5.10 及以上。 local 模式需要 cgroup v2 和相应 cgroup socket hook。 shared 模式需要 sched_cls、clsact、报文改写及校验和 helper。 厂商内核经常单独关闭或回移 BPF 功能,因此不能只根据内核版本判断。请以 root 运行内置探测:
sing-box tools ebpf status \
  --mode all \
  --network tcp,udp \
  --interface ap0
该命令直接使用 cilium/ebpf 创建并关闭临时探测对象,不会挂载程序,也不会修改 cgroup、qdisc、路由、sysctl 或实际流量。 特别注意:Linux 6.6.0 至 6.6.46 存在 LPM trie UBSAN 内核崩溃风险。涉及 UID/包名筛选、bypass_rule_set 或 shared 来源 CIDR 时,sing-box 会在已知未修复内核上拒绝启动相关策略。请升级到 6.6.47+,或使用包含上游修复的厂商内核。 目前仍建议作为测试功能使用。反馈问题时请附带设备型号、内核版本、配置、完整启动日志和 tools ebpf status 输出;若设备发生重启,请同时提取 /sys/fs/pstore/ 内容。

https://github.com/CHIZI-0618/sing-box/blob/testing-ref1nd/docs/manual/misc/interception-benchmark.zh.md 这是在频道主的手机上的测试,不代表所有情形。 eBPF 与 Redirect 的 TCP 结果基本相当,细小差异低于实际观察到的轮次波动。TProxy的透明入站 TCP 短连接中位数最高,但上传吞吐低于 eBPF 和 Redirect。eBPF 的 connected 与 unconnected UDP 均接近 TProxy 和 TUN;Redirect 仅支持 TCP,因此不存在 UDP 结果。 TUN 的结果应该是有问题,可信度不高。

sing-box eBPF 入站:更轻量的透明代理方案 本分支现已加入实验性的 eBPF 入站支持,可在 Linux 与 Root Android 上通过内核 eBPF 程序接管网络连接,无需创建 TUN 设备,也不依赖传统的 iptables/nftables REDIRECT 或 TPROXY 规则。 主要特性: 本机透明代理:通过 cgroup eBPF 接管本机 TCP、UDP 流量 热点共享代理:shared_network 模式可代理 Android 热点下游设备的 IPv4/IPv6 流量 热点动态识别:热点接口尚未出现时不会阻止 sing-box 启动,开启或关闭热点后可自动更新挂载状态 DNS 防泄漏:支持 dns_mode: hijack/off;hijack 会优先接管 TCP/UDP 53,避免 DNS 请求被绕过规则提前放行 规则集绕过:可根据路由规则集生成 eBPF CIDR 绕过策略,让直连流量尽早在内核侧放行 真实来源信息:为路由规则与 Clash API 保留原始源地址,避免所有连接都显示为 127.0.0.1 自动内部端口:运行时分别为本机和热点数据路径分配内部端口,无需用户管理监听地址或端口 防止循环代理:代理自身创建的连接会被标记并绕过,避免流量再次进入 eBPF 入站 低配置侵入:不需要额外维护防火墙规则,退出时会清理已挂载的 eBPF 程序和相关资源 与 TUN 相比,eBPF 入站省去了虚拟网卡、路由表和用户态 IP 栈等环节;与 Redirect/TPROXY 相比,不需要修改整套防火墙规则。流量在内核较早阶段完成识别、绕过或重定向,更适合需要长期运行透明代理的 Root Android 设备与 Linux 主机。 示例配置:
{
  "type": "ebpf",
  "tag": "ebpf-in",
  "dns_mode": "hijack",
  "shared_network": {
    "enabled": true,
    "include_interface": [
      "wlan2"
    ]
  }
}
编译时需启用 with_ebpf,并开启 CGO。运行环境需要 Root/CAP_BPF 等必要权限,以及支持相关 cgroup、socket 与 TC eBPF 能力的 Linux 内核。其他原理及配置细节请查看本分支文档。 该功能目前仍属于实验性实现,建议升级前保留可回退版本,并欢迎反馈不同 Android 内核、热点实现及标准 Linux 发行版上的兼容性与性能表现。

ipv6disabler_v1.0.zip2.25 KB

mihomo 官方群目前没有公开入群链接,可以选择去社区群 @mihomo_community

AsteriskNG - 强大稳定的 Android Xray GUI 客户端! 基于 Xray-core 打造的专业代理工具,支持完整 Xray 生态,体验丝滑稳定! 核心亮点 - 三种灵活运行模式,全面适配不同用户需求: - VPN Service:无需 Root,最简单易用,标准 Android VPN 模式 - TPROXY (ROOT):高性能透明代理,iptables + 策略路由 - TUN2SOCKS (ROOT):hev-socks5-tunnel 实现,兼容性与稳定性极强 强大功能 - 支持 VMess、VLESS、Trojan、Shadowsocks、Hysteria2、WireGuard 等主流协议 - 完美兼容 v2rayNG 和 mihomo 订阅格式 - 策略组 + 链式代理 - 智能管理 geoip.dat、geosite.dat 等资源文件(支持在线更新) - Magisk service.d 开机自启 - 精美 MIUIX Compose UI 同开发者 还推出了 AsteriskMETA(Mihomo/Clash Meta 核心版本),两者功能几乎完全一致,仅代理核心不同,可根据喜好二选一,体验高度统一!
项目还在开发期,更多实用功能正在路上,欢迎持续关注!
欢迎加入频道 获取最新版本、教程和资源: @Asterisk4Magisk 无论你是 Xray 用户还是 Mihomo 用户,这里都有最优选择!欢迎体验并反馈~

sing-box-1.14.0-alpha.32-reF1nd 自用配置,不过 DNS 部分被替换成公共 DNS https://gist.github.com/CHIZI-0618/35f59df7b17bf66ea988d775aaf76152

Repost from N/a
源文件在喜马拉雅下载,用 Unlock Music 项目解密,利用 ffmpeg 根据静音时间剪掉开头,后手动整理了章节名,最后利用 ffmpeg 工具添加了元数据信息。

Repost from N/a
+2
我家老婆来自一千年前_前言-200集.tar.gz1290.76 MB

NetProxy — Android 系统级透明代理 基于 sing-box 内核,简单高效的 Root 透明代理方案。 ◦ TPROXY / REDIRECT 自动检测,TCP / UDP / DNS 全覆盖 ◦ 图形化配置 sing-box 全部
NetProxy — Android 系统级透明代理 基于 sing-box 内核,简单高效的 Root 透明代理方案。 ◦ TPROXY / REDIRECT 自动检测,TCP / UDP / DNS 全覆盖 ◦ 图形化配置 sing-box 全部能力,告别手写 JSON ◦ 订阅管理、分应用代理、热点共享 ◦ 内置 Zashboard 面板 + CLI 命令行 ◦ 兼容 Magisk / KernelSU / APatch,集成 IPSET LKM 驱动 模块:GitHub 管理器:Google Play 交流:@NetProxy_Magisk #ad