> A fordítás nyelvi ellenőrzése folyamatban van. Ha egy rész nem egyértelmű, tekintse meg az [angol eredetit](https://www.sm.ch-j.eu/docs/i18n/en/server-diagnostics.md). # Szerverdiagnosztika Beépített a Core oldalsávba, a sorrendben Plugins → Server Diagnosztika → Hash & Checksum. Nem igényel SSH session vagy letöltött plugin. A `app/`-ben minden futási kód, teszt és felszerelés élőben, a modul nem függ a testvéri repozitóriumoktól. Az adattárban nincs `doc.md`, így ez a dokumentum és mindkét README leírja a végrehajtást. ## Felhasználói munkafolyamat Adja meg a gép nevét, IPv4, IPv6 vagy HTTP(S)/WS(S) URL-t. A hostnames/IPs alapértelmezettsége a HTTPS esetében; explicit URL-ek megőrzik útjukat, lekérdezésüket és portjukat a kérés során. Az URL-ekben, nem támogatott sémákban, whitespace/control karakterekben és shell-szerű hostnevekben található hiteles adatokat elutasítjuk. A IPv6 szó szerint automatikusan be van kapcsolva; a hatókörű/link helyi zóna azonosítókat nem támogatja az URL-olvasó. Válassza ki az Auto-t (lásd IPv4, ellenkező esetben IPv6), IPv4-t, IPv6 vagy mindkettőt. Címek feloldása egy adott aktuális válasz kiválasztásához. Az áttekintés minden megoldott választ megjelenít; a szonda megvizsgálja a kiválasztott címet vagy egy címet kért családonként. Mindkét családot egymástól függetlenül mérik. AAAA jelenléte önmagában soha nem jelenti a működő IPv6 kapcsolat. Fuss Diagnosztika fut DNS, ping, traceroute, HTTP, tömörítés, TLS és a kiválasztott TCP portok. A WebSocket-en kívül. Minden eszköz rendelkezik külön Run/Stop vezérléssel is. Az egyik diagnosztikai vizsgálat egyszerre aktiválódhat. Egy befejezett futtatás azt jelenti, hogy az eszközök már befejezték, nem mintha minden szonda sikerrel járt volna. Nincs takarószerver, aki ne döntene. Időkérés, csomagszám, ismétlések, maximális komló, DNS solver, protokollkiválasztás, meleg csatlakozás és HTTP/HTTPS összehasonlítás konfigurálható. A célpont megváltoztatása egy korábban kiválasztott IP-t töröl. A történelem újra megnyithat, összehasonlíthat két jelentést, törölhet, importálhat JSON-t, másolhat vagy exportálhat JSON/CSV/TXT fájlokat a natív törzsablakokon keresztül. Light/dark/system téma vonatkozik a diagnosztika szakasz, és mentett a meglévő UI konfigurációban. A CZ/DE/EN azonnal követi az alkalmazás nyelvét. ## Alkatrészek és protokollviselkedés | komponens | Végrehajtás és értelmezés | | --- | --- | | `common.js`Z | Célok/lehetőségek, határértékek és enum értékek validálása; INNA konverzió; numerikus statisztikák nem tartalmazzák az ismeretlen értékeket. | | `dnsDiagnostics.js`Z | Rendszercímfelbontás `dns.lookup`-t használ az operációs rendszer konfigurációjának tiszteletére, és a fájlok házigazdai. UDP DNS és TCP csonkított válaszokhoz használt lekérdezések felvétele a `dns.getServers()` ellen, vagy a kifejezetten választott egyéni/nyilvános megoldás. Nincs implicit váltás nyilvános DNS-re. | | `processTools.js`Z | Egy argumentum tömbbel és `shell: false`-vel futtatja az OS ping/traceroute-ot, amely a kimenetet, explicit időkimaradást és a leállítást/kill tisztítást foglalja magában. A csomagválaszokat és komlót nem RTT-ként kezeli, hanem a folyamat időtartamát. | | `httpDiagnostics.js`Z | Bundled göndör HTTP/1.1, HTTP/2 és HTTP/3; szigorú tanúsítványellenőrzés és behatárolt IP család számára. Minden változatot függetlenül kérnek; a tényleges verziót rögzítik. | | `socketDiagnostics.js`Z | Explicit TLS verziószondák, TCP csatlakozások/passzív bannerek, előzetes hitelesítés SSH host-kulcs megfigyelés a meglévő ssh2 függőség és opcionális RFC 6455 frissítés érvényesítés. | | `diagnosticsService.js`Z | Lefuttatja és leállítja az eszközöket, kiválasztja/érvényesíti a címeket, a streamek előrehaladását, megőrzi részleges méréseit és a futási határidőt. | | `historyStore.js` | Verziózott kötött helyi történelem, újraakció, séma által ellenőrzött import és mért adatok export. | ### ICMP és útvonalak Ping alapértelmezés négy egyedileg végrehajtott ICMP echo kérések. Az eredmények tartalmazzák az egy csomagban mért RTT-t, a kapott/beküldött számokat, veszteséget, a min/average/max-t, az átlagos szórást, az egymást követő méréssel mért RTTs (jitter), a TTL/Hop Limit közötti abszolút különbséget nyomtatott formában és időbélyegeket. A `<1 ms` válasz a felső határnál kapottnak számít, nem pedig egy numerikus RTT-nek. Az ismeretlen RTT-k nem tartoznak a lappangási statisztikák közé. A statisztika a legtöbb 500 csomagnál a megtartott ablakot használja; az elküldött/received/loss szám az egész futást lefedi. A grafikonok az utolsó 200 megfigyeléseket mutatják, külön szimbólumokkal a válaszokhoz, alfelbontási válaszokhoz, hiányzó válaszokhoz és explicit kéréshez/folyamatidőkhöz. A hiányzó válasz tükrözheti az ICMP szűrést, a csomagvesztést vagy az időeltolódást; ezek a megfigyelések nem tudják egyértelműen azonosítani a tűzfalat. Hiányzó végrehajtó eszközök, helyi engedélyhibák és érvénytelen eszközhiba a különálló eszközhiba, nem csomagvesztés vagy szerver hiánya. Nincs szükség a kiváltságok elmélyülésére. A nyomvonal folyama komló, cím, egyedi szonda, eszköz és megfigyelt megválaszolatlan százalék. A fordított DNS az útvonalat követően, a kiválasztott feloldó segítségével megszűnik. Az ismétlések összehasonlítják a megfigyelt hop-címsorokat; a különbségek tükrözhetik a terhelés egyensúlyozását. A megválaszolatlan köztes komló nem állít fel megszakított útvonalat. A nyers szonda metaadatai és módszere bővíthető részletekben jelennek meg. A macOS egész másodperces követési várakozást igényel; az effektív kerekített időmérést rögzítjük. ### DNS A tizenkét rekordtípus: A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR, DS és DNSKEY. DNS vezeték parsing ellenőrzi tranzakció / kérdés identitása, rekord méretek, tömörítő-pontos hurok és üzenetkorlátok. Válaszok megőrzi rekord TTL-ek, lekérdezés időzítése, felbontása és NXDOMAIN/NODATA/SERVFAIL/refused/timeout államok. Az OS-címek keresése nem tudja biztosítani a TTL-t; a külön rekord lekérdezés is lehetséges. A következő CNAME-ot nyolc ciklusmegjelenítő láncszemhez kell kötni. A konzisztencia megismétli az A/AAAA választ a kiválasztott feloldótól, és előre megerősített PTR-t végez IP-literális DNS tesztekhez. A változó válaszok megfigyelések, nem pedig a DNS hibája. Az SRV-re vonatkozó lekérdezések a megadott célnevet használják; szükség esetén írja be a `_service._tcp.example.org` szolgáltatás nevét. DNSSEC mindig **not validált**. A DS/DNSKEY jelenléte és még a feloldó AD zászlója sem tekinthető független érvényesítésnek. ### HTTP, teljesítmény és tömörítés A HTTP/1.1 csak akkor fogadja el ezt a verziót támogatottként, ha ténylegesen visszaküldték. A HTTPS HTTP/2 tárgyalásos h2-t igényel; nincs visszaesés újracímkézve. A Cleartext HTTP/2 a korábbi tudást használja, nem pedig egy HTTP/1.1 szondát. A TLS ellenőrzés továbbra is szigorú minden HTTP/WebSocket kérés esetén. A kézi átirányítások csak nyolcra korlátozódnak; a hurok, az érvénytelen rendeltetési helyek és a túlzott átirányítás kifejezetten nem sikerül. A teljes lánc a domain változásokról és a HTTPS leminősítésekről számol be; a rendszerek és a www változások láthatók a forrás/rendelési URL-eken. Elutasítják a hitel- és nem HTTP[S] átvezetési rendszereket. Minden kereszt-host átirányítás önállóan oldódik meg a kiválasztott szanálási és kért IP család. A mérések közé tartozik a DNS (végrehajtva), TCP, TLS, végső válasz TTFB, teljes TTFBI, beleértve a DNS/redirekteket, letöltést, átirányítást és teljes falidőt, tényleges entitás bájtokat, átviteli sebességet, státuszt, válaszfejlécet, tényleges szervercímet/portot, ALPN-t és hitelesített kapcsolat újrahasználatát. A DNS/TCP/TLS fázisok, amelyeket nem egy beszögelt vagy újrahasznált kapcsolaton hajtanak végre, `N/A`, nem hamis nullák. A QUIC-nek nincs TCP fázisa; a kézfogását külön rögzítik. A fejléc-átutalás vagy a teljes huzal fölötti felső határ nem minősül egység-byte mérésnek. Ezek szerver/hálózat időzítések, nem oldalvisszaállítás vagy fénytorony pontszámok. Minden kiválasztott protokoll ugyanazt a célt és ismétlést használja. A IPv4/IPv6 és a HTTP/HTTPS explicit összehasonlítási lehetőségek. Az alternatív rendszer az alapértelmezett portot használja. Minden protokoll egy független, kötegelt ügyfél-folyamatot indít el mintánként. A kapcsolat újrahasználata nem bizonyított. Az összidős statisztika magában foglalja a min/average/median/max/nearest-rank P95-öt és egy külön transzport/protokoll hibaszámot; a HTTP állapotkódok akkor is láthatóak, ha a szerver sikeresen visszatér 4xx/5xxx válaszra. Kompresszió küld azonosító, gzip, deflát, br és (amikor a runtime támogatja) zstd különálló elfogadás-kódolás kérések. A tartalom-kódolásnak egyeznie kell, és a dekompressziónak sikerrel kell járnia. Az arány csak akkor számítandó ki, ha a dekódolt test hasisa, végleges URL-je és státusza megegyezik az azonossági alapvonallal. A figyelmen kívül hagyott kódolások nem támogatottak; a változó/dinamikus testeknek nincs arányuk. Ez egy megfigyelés arra az URL/status-ra, nem pedig univerzális szervertámogatásra. A biztonsági ellenőrzések a HSTS, CSP, X-Content-Type-Options, Referer-Policy, Engedélyek-Policy és X-Frame-Options jelenlétét és értékét mutatják. A CSP keret-eltérítő irányelv felülírhatja az utóbbit. A jelenlét nem bizonyítja, hogy a politika megfelelően van beállítva vagy biztonságos a weboldal. ### HTTP/3 követelmények és bizonyíték HTTP/1.1, HTTP/2 és HTTP/3 ugyanazt a kötegelt göndör klienst használják. macOS arm64 valamint Linux x64 göndör használata 8.22.0, OpenSSL 3.5.9, nghttp2 1.70.0, ngtcp2 1.25.0 és nghttp3 1.18.0. A Windows x64 a hivatalos fürt.se göndör-nyerő 8.22.0_3 statikus felépítésű LibreSSL 4.3.3 és ugyanazok a HTTP könyvtárak. Nincs szükség rendszergöndör visszaesésre, runtime letöltésre vagy adminisztrátori engedélyre. A Windows reprodukálható felépítés receptje a https://github.com/curl/curl-for-win/tree/9d77e31e . Build with `python3 scripts/native/build.py` (Windows: `python scripts/native/build.py`) before packaging. A macOS/Linux C/C++ eszközöket, CMake-et, Ninja-t, Perl-t és pkg-configot igényel. A forrásokat a SHA-256 verziója és felfelé állítja be `scripts/native/dependencies.lock.json`-ben. A szkript minden letöltést ellenőriz, statikusan összekapcsolja a harmadik fél közlekedési könyvtárait és HTTP2/HTTP3/SSL funkciók nélkül megbukik. Csak az operációs rendszer könyvtárai maradnak dinamikusak. A Windows a megjelölt hivatalos bináris archívumot használja, nem pedig egy helyileg összeállított Windows transzport stacket. A kötegelt CA fájlnak megvan a maga behatárolt hash-a; alkatrész licencek és felfelé épít eredet kíséri a run time. Az ügyfél és a Trust Store telepítve kívül alkalmazás.asar `resources/native-runtime/-/`. Minden diagnosztika ellenőrzi a komponensek hasisát, architektúráját és végrehajtható képességeit használat előtt. Konfig fájlok, proxyk, TLS tröszt környezet felülbírálások és könyvtári injekció változók kizártak. fürtök fut egy abszolút útvonalat, shell letiltott, hitelesített CA bizalom, kifejezett megoldott IP család, nincs cookie-k, nincs automatikus átirányítás, és meghatározott kimenetet és időt. Az átirányításokat a kérelem igazolja és újra megoldja. A 443-től eltérő portokon található HTTPS támogatott. A HTTP/3 `--http3-only`-t használ, és csak a HTTP 3 verzióval végzett átadási jelentés és a tanúsítvány sikeres hitelesítése után erősíti meg. A HTTP hibaválaszok, mint például a 404 megerősíthetik a protokollt. Az Alt-Svc egy reklám, nem bizonyíték. A QUIC-idő, a tanúsítvány meghibásodása, a DNS-hiba, a kapcsolat elutasítása, az összeegyeztethetetlen protokoll és az alkatrészhiba továbbra is elkülönül. Egy UDP időkimaradás a szerver támogatását ellenőrizetlenül hagyja. A QUIC kézfogás időzítését TCP-időszámításként nem kell jelenteni. Minden mérés külön folyamatot/összekapcsolást indít el. A meleg opció nem állítja a kapcsolat újrahasználatát a kötegelt ügyfél számára. Így a protokollok összehasonlítása konzisztens. A jelentések között megtalálhatóak a runtime verziók, képességek, TLS hitelesítés és QUIC időzítések, míg a történelem/export eltávolítja a szerveket, az URL lekérdezéseket és a hitelesítési fejléceket. Frissítse ezeket a csapokat és újraépítsen minden támogatott platformot, amikor frissíti a szállítási stack vagy CA Trust áruház. A publikált leletek és a forrásképek megváltoztathatatlanok. ## IPC törzs Az előtöltés csak a `window.chjCore.diagnostics`-t fedi le; minden kezelő megtartja a meglévő főablakos küldő ellenőrzést és hálózati munkát. Az eredmények a `{ ok: true, value }` vagy a `{ ok: false, error: { code, message } }`-t használják. | Csatorna / előtöltési módszer | Payload / result | | --- | --- | | `diagnostics:resolve` / `resolve(options)`Z | Érvényesített cél/beállítások → cél és megoldott címek. Legfeljebb két párhuzamos szanálási kérelem. | | `diagnostics:start` / `start(options)`Z | Validated target/settings/tool selection → átlátszatlan állásazonosító és kezdeti jelentés. | | `diagnostics:cancel` / `cancel(id, tool?)`Z | Mégsem egy aktív/queued eszköz vagy az egész futás. | | `diagnostics:get` / `get(id)`Z | Egy ismert futó vagy mentett jelentés fotója. | | `diagnostics:history` / `history()`Z | Helyi történelem összefoglalók. | | `diagnostics:removeHistory` / `removeHistory(id)`Z | A kiválasztott történeti elem eltávolítása. | | `diagnostics:copy` / `copy(id, format)`Z | Main írja a redacted known report to clipboard. | | `diagnostics:export` / `export(id, format)` | JSON/CSV/TXT natív mentés párbeszédablakon keresztül; a feladó nem tud fájlrendszer- elérési utat biztosítani. | | `diagnostics:import` / `import()`Z | Native file picker, size/schema/depth validation and reduction before storage. | | `diagnostics:progress` / `onProgress(callback)` | Megoldott címek, szerszámok indítása/kiegészítése, csomagok, komló, HTTP minták és befejezés; visszaküldi a leiratkozási visszahívást. | Nincs általános héj, fájlrendszer vagy hálózat API ki van téve. Kontextusizoláció, homokozó, letiltott csomóponti integráció és a meglévő CSP renderző továbbra is engedélyezve van. A meglévő plugin szerződések és a frissítési ellenőrzés/kivételek változatlanok. ## Költségvetési és helyi adatok - Egy futtatás, két aktív eszköz, legfeljebb két IP-családi szonda szerszámonként; a TCP emellett minden címet négy kapcsolatra korlátozza. - A 250–30000 ms; 1–100 csomagok, 1–20 ismétlések, 1–40 komló, 1–16 portok. Rendszeres futások 5 percnél megállnak; folyamatos ping 30 percnél. A nyomvonal alfolyamatnak van egy további 180 másodperces sapka. - A folyamat kimenete általában 256 KiB; HTTP entitás testület 2 MiB; tömörített test 8 MIB; THATP fejlécek által határolt; nem válasz szervek belépnek a történelembe. - Retatin a legtöbb 500 csomag / progress események, öt memory fut, harminc történelem jelentések és 10 MiB a történelem. A történelem a `/diagnostics/history.json` (0600 mód) meglévő privát atom íróját használja. - A behozatal a legtöbb 2 MiB, chema 1, amely fészekrakást és validált eredménygyűjteményeket tartalmaz. A CSV-sejtek megszöktek és a formula előtag semlegesíti őket. URL lekérdezések/töredékek, igazolványok, cookie-k, hitelesítési fejlécek és nyers testek nem tartoznak a tárolt/copied/exported jelentésekbe. A nyers adatok a mért strukturált adatokat mutatják, nem pedig egy csomaglefogást vagy megőrzött válaszszervet. - Nincs felhő szinkronizálás, automatikus bejelentkezés, szerver konfiguráció változás vagy agresszív/nem kötött szkennelés. A felhasználó kifejezetten a cél/ports/resolver.-t választja ## A platform követelményei és ellenőrzése | Platform | ICMP | Route | Egyéb protokollok | | --- | --- | --- | --- | | Windows 10/11 | `ping.exe -4/-6` | `tracert.exe -4/-6`, ICMP | Bundled curl.exe és HTTP/2 valamint HTTP/3. A lokalizált RTT-mezők nem függnek a ·time[2] szótól. | | macOS | `/sbin/ping`, `/sbin/ping6` | `/usr/sbin/traceroute`, `/usr/sbin/traceroute6`, UDP; egész másodperces várakozás | Bundled fürt HTTP/2 valamint HTTP/3. | | Ubuntu/LinuxZ | iputils `ping -4/-6` | szabvány `traceroute -4/-6`, UDP | Bundled göndör HTTP/2 és HTTP/3; hiányzó ICMP/route szerszámokat külön kell jelenteni. | Nem adtak hozzá új npm függőséget. A végrehajtás a Node beépített és az alkalmazás meglévő ssh2. Sem rendszereszközöket nem telepít, sem adminisztratív jogokat nem kér. A tűzfalak és az UDP-korlátozások megakadályozhatják, hogy a vizsgálat támogatást hozzon létre; ezeket nem lehet pusztán időkérésből levonni. Automatizált lefedettség `diagnosticsCore.test.js`, `diagnosticsNetwork.test.js`, `diagnosticsHttp.test.js` valamint `diagnosticsIpc.test.js`: érvényesítés /IPv6 natív/helyi szó szerinti DNS UDP+TCP-tartozékok, hiányzó/kettős családi válaszok és szanálási hibák, CNAME/konzisztencia, OS argumentum/parsing-eszközök, valós gyermekfolyamatok, blokkolt ICMP-megfigyelések, valós helyi HTTP/1.1 valamint TLS h2, átirányítás/testhatárok/timeouts/reuse, nyomás be van kapcsolva/be van jelölve, HTTP3 képesség/sikeres eredmény visszalépés, helyi CA-bizalom/mismatch/expiration és valódi IPv6 HTTP/HTTPS, TCP csatlakozás/refused/mock időkérés, valódi WebSocket és SSH előzetes kézfogások, törlés/cleanup/partial eredmények, offline állapot, privát történelem körutazás/import elutasítás/exportálás, megbízható IPC és előterhelés előfizetések. A `npm test` determinisztikus teszteket futtat nyilvános tesztszerverek nélkül. A `npm run test:diagnostics:ui` `scripts/smokeDiagnostics.js`-t egy grafikus Electron asztalon futtatja, a gyártás UI/preload/IPC és a valódi helyi HTTP/kompressziós szonda segítségével. A nem kapcsolódó szolgáltatások csak ebben a vizsgálati hámban vannak eltömve/lehúzva. Ellenőrzi a navigációs sorrendet, a protokoll eredményeket, a kitartást, a CZ/DE/EN-t, mindkét témát, a keskeny ablak túlcsordulását és a homokozói beállításokat. Ha a shell beállítja az ELECTRON_RUN_AS_NODE-t, akkor kapcsolja ki ezt a parancsot. A jelenlegi futási idő ellenőrzése kiterjed ellenőrzött QUIC transzferekre, IPv4/IPv6, HTTPS egy nem alapértelmezett porton, 404 válaszokra, TLS hibákra és TCP-reklám Alt-Svc. A per-build eredmények kísérik minden kiadást. Kifejezett opcionális határértékek: nincs független DNSSEC-hitelesítés (teljes érvényesítő szanálási/megbízható mentési ciklus), nincs világítótorony ellenőrzés (csak szerver/hálózat időzítés), nincs ledolgozott TLS audit vagy visszavonás/CT szolgáltatás, nincs HTTP3 melegvisszanyerő igény és nincs HTTP/3 hővisszanyerés mérés. Nem támogatott képességek jelennek meg, nem szimulált. ## Fájlok ebben a módosításban Létrehozva: a hét szervizfájl `src/main/diagnostics/`; `src/renderer/diagnostics.js`, `diagnosticsI18n.js`, `diagnostics.css`; a négy `test/diagnostics*.test.js` fájlok; öt fájl alatt `test/fixtures/diagnostics/`; `scripts/smokeDiagnostics.js`; ez a dokumentum. Integrált/frissített: `src/main/index.js`, `src/main/ipc/registerCoreIpc.js`, `src/preload/corePreload.js`, `src/renderer/index.html`, `app.js`, `i18n.js`, `package.json`, `app/README.md`, gyökér `README.md`, `.gitignore` (négy kivétel a nyilvánosság számára), és a gyökér gitleaks lehetővé teszi szűk névsorát szándékosan a nyilvánosság TLS a próbakulcsot. Az aláírás CA private kulcsot eldobták; a készüléket soha nem használja az alkalmazás futási ideje.