
خلفية عقدة Xboard: مبنية على Xray-core v26.10.31، وتحقّق عدد الأجهزة/تحديد السرعة عبر تصحيح واحد، ومتوافقة بدقة مع عقد Xboard V2، مع تخفيف مدمج لـ CVE-2026-98432
الواجهة الخلفية للعُقد من الجيل التالي للوحة cedar2025/Xboard.
تأخذ من wyx2685/v2node تغطية البروتوكولات الحديثة + طريقة دمج النواة، وتأخذ من cedar2025/Xboard-Node طبقة التشغيل (الدفع/وضع الآلة/الشهادات/النواة المزدوجة)، مع تثبيت خط أساس النواة على Xray-core v26.10.31.
المستندات: docs/ARCHITECTURE.md (سجل البنية والقرارات) · docs/CONTRACT.md (العقد حقلًا بحقل مع اللوحة، مع أرقام أسطر الأدلة) · docs/PANEL-PATCH.md (تصحيح اللوحة: لماذا التعديل، وكيف يُثبَّت، وكيف يُتراجَع عنه) · docs/STATUS.md (المُنفَّذ / غير المُنفَّذ / كيف يُتحقَّق) · docs/PANEL-IMPROVEMENTS.md (قائمة التحسينات الأطول أجلًا للوحة)
| البُعد | Xboard-Node (dev 2026-04) | v2node (2026-10) | هذا المشروع |
|---|---|---|---|
| إصدار النواة | fork مُجمَّد عند v26.3.27 | v26.9.30 | v26.10.31 (مع إغلاق MPTCP افتراضيًا) |
| عدد الأجهزة/تحديد السرعة | //go:linkname لاختطاف سجل غير مُصدَّر | نسخ حزمة dispatcher بالكامل إلى وحدته الخاصة | رقعة واحدة app/usergate (3 hunks) |
| سطح البروتوكولات | vless/vmess/trojan/ss/hysteria2/tuic/anytls (xray+sing-box) | vless/vmess/trojan/ss/hysteria2/tuic/anytls، مع VLESS encryption / mldsa65Seed / xver | جانب xray: vless/vmess/trojan/ss2022 + تقوية REALITY كاملة؛ anytls/tuic/hysteria2 مُوكَلة إلى sing-box (صفر رقع بروتوكول) |
| النقل | ws/grpc/httpupgrade/h2 (محذوف)/xhttp | tcp/ws/grpc/httpupgrade/xhttp | xhttp ذو أولوية، وh2/quic مرفوضان وقت الترجمة |
| الدفع | دفع عبر WS handshake | استطلاع فقط (ETag + msgpack) | دفع WS + تراجع إلى الاستطلاع |
| الشهادات | certmagic + 21 مزوّد libdns | lego | certmagic + libdns (باتباع حل xbn) |
| نمط الآلة | مدعوم (متعدد العقد/عملية واحدة) | عملية واحدة متعددة Nodes | مدعوم |
الاستنتاج الرئيسي: الاختلاف الحقيقي بين المشروعين ليس في الوظائف، بل في "كيفية إدخال نفسيهما في مستوى البيانات لدى xray".
app/usergate + 3 مواضع hunk داخل xray المضمّن في vendor، حيث تتولى دلالات مستوى البيانات مسؤوليتها عبر dispatcher الخاص بـ xray نفسه، ولا تقوم البوابة إلا بدالتين نقيتين Admit/Limit.cmd/xboard-core/ # 入口(node 模式 / machine 模式 / standalone)
internal/config/ # YAML 配置 + 校验 + 热重载
internal/panel/ # 面板契约:/api/v2/server/*(含 V1 兼容)
internal/kernel/ # 内核抽象(xray / singbox 双实现)
internal/kernel/xray/ # 配置构建(安全默认在此集中收敛)+ 运行时热更新
internal/gate/ # 设备数 + 限速闸门(被 usergate 补丁调用)
internal/sysinfo/ # 面板 status 必填项(cpu/mem/swap/disk,零依赖)
internal/traffic/ # 每用户流量计数与上报
internal/metrics/ # Prometheus 指标 + 健康检查
internal/cert/ # ACME 证书管理(certmagic + libdns)
third_party/xray/ # vendored Xray-core + 补丁序列
panel-patch/ # 面板侧补丁(对 cedar2025/Xboard 的零迁移改动)
docs/ # 架构决策记录、面板改造清单
المتطلبات: Go 1.27+ (كما هو مطلوب في go.mod)، وgit، وGNU patch.
make vendor # clone Xray-core v26.10.31 到 third_party/xray
make patches # 打 patches/*.patch(幂等)
make build # -> bin/xboard-core
bash scripts/verify.sh # gofmt + vet + test + build + smoke + vendored 单测 + 补丁幂等
على الأجهزة التي لا تتوفر فيها make (مثل git-bash على Windows)، شغّل bash scripts/verify.sh مباشرة، فهو مكافئ لـ make verify؛
يمكن استبدال make vendor بأنبوب tar واحد، راجع التنفيذ في Makefile.
ملاحظة Windows: إذا كان
%TEMP%غير قابل للكتابة، فسيُبلغ go عنcreating work dir: ... Access is denied، وقبل البناء يكفيexport TMP=D:/tmp TEMP=D:/tmp(يدعمscripts/verify.shالمتغيرGO_TMP).
راجع الحالة الحالية في docs/STATUS.md: go build ./... وgo test ./... و-smoke،
واختبارات الوحدة لكل من app/usergate وapp/dispatcher المضمّنة (vendored) قد اجتازت جميعها.
SetMultipathTCP(false) (CVE-2026-98432)، إلا إذا حددت الإعدادات صراحةً sockopt.tcpMptcp: true.debug.SetGCPercent، يتم التحقق مما إذا كان GODEBUG يحتوي على multipathtcp=0، وفي حال غيابه يُسجَّل WARN وتستمر العملية؛ ويكتبه install.sh افتراضيًا.allowInsecure على مستوى البناء ويُترجم إلى pinnedPeerCertSha256 / verifyPeerCertByName.h2/http/h3/quic يُبلغ عن خطأ مباشرةً على مستوى البناء (أُزيل من المنبع)، ولن يتراجع بصمت إلى tcp.shortIds غير فارغ، وdest إلزامي، وmaxTimeDiff افتراضيًا 90s، واختياريًا mldsa65Seed/xver/limitFallback*.minClientVer؛ وإذا أرسلته اللوحة يُسجَّل WARN ويُكشف عنه في /status، لتجنب تراجع عملاء عائلة mihomo بصمت.