> Jezikovni pregled tega prevoda še poteka. Ob nejasnostih primerjajte z [angleškim izvirnikom](https://www.sm.ch-j.eu/docs/i18n/en/server-diagnostics.md). # Diagnostika strežnika Integrirana v jedrno stransko stran, v zaporedju Vstavki → Strežnik Diagnostike → Hash & Kontrolna suma. Ne zahteva SSH seje ali prenosnega vstavka. Vse tekoče kode, testi in naprave živijo v `app/`; modul ni odvisen od bratovskih repozitorijev. Repozitorij nima `doc.md`, zato ta dokument in oba README opisujejo izvajanje. ## Uporabniški delovni tok Vnesite ime gostitelja, IPv4, IPv6 ali URL HTTP( S)/WS( S). Privzeto privzeto ime ime imenika/IP za HTTPS; izrecne URL-je ohranijo pot, poizvedbo in port med zahtevo. Pooblastila v URL-jih, nepodprte sheme, prazne/nadzorne znake in imena imenikov, podobna školjki, so zavrnjena. IPv6 Dobesednosti so samodejno zaklenjene; identifikacijski identifikatorji za območje uporabe/povezave niso podprti z analizatorjem URL. Izberite samodejno (preferiraj IPv4, sicer IPv6), IPv4, IPv6 ali oboje. Odločite naslove za izbiro določenega trenutnega odgovora. Pregled prikazuje vse rešene odgovore; sonde preizkusijo izbrani naslov ali en naslov na zahtevano družino. Obe družini se merita neodvisno. Samo prisotnost AAAA nikoli ne pomeni dela IPv6 povezljivost. Poženi diagnostiko DNS, ping , trackroute , HTTP , kompresija TLS in izbranih TCP pristanišč. WebSocket je opt-in. Vsako orodje ima tudi ločeno Run/Stop nadzor. En diagnostični zagon je lahko aktiven takoj. Dokončana vožnja pomeni, da je orodje končano, ne da je uspela vsaka sonda. Razsodba o odklopu od strežnika ni odkrita. Časovni čas, število paketov, ponavljanja, največji hop, DNS Razreševalnik, izbira protokolov, topla povezava in primerjava HTTP/HTTPS so konfigurirani. Sprememba cilja očisti predhodno izbrano IP. Zgodovina lahko ponovno odpre, primerja dve poročili, brisanje, uvoz JSON, kopiranje ali izvoz JSON/CSV/TXT skozi domače pogovorne okna jedra. Svetloba/dark/system tema velja za oddelek diagnostike in je shranjena v obstoječi nastavitvi UI. CZ/DE/EN takoj sledi jeziku aplikacije. ## Sestavni deli in obnašanje protokola | Komponenta | Izvajanje in razlaga | | --- | --- | | `common.js` | Preverja cilje/možnosti, omejitve in vrednosti enum; pretvorba IDNA; numerične statistike izključujejo neznane vrednosti. | | `dnsDiagnostics.js` | Uporabe ločljivosti naslovov sistema `dns.lookup` spoštovanje nastavitev OS in datoteke gostiteljic. Poizvedbe za zapis uporabe omejeno UDP DNS s TCP rezervo za skrajšane odzive proti `dns.getServers()`, ali izrecno izbranega porabnika/javnega reševalca. Brez implicitnega prehoda na javnost DNS. | | `processTools.js` | Izvaja OS ping/trasoute z nizom argumentov in `shell: false`, omejen izhod, izrecno časovno zadrževanje in prekinitev/očistitev umora. Razčleni odgovore paketov in hmelj, namesto da bi trajanje procesa obravnavali kot RTT. | | `httpDiagnostics.js` | za vgrajeni kodr za HTTP/1.1, HTTP/2 in HTTP/3; strogo preverjanje potrdila in pritrjena družina IP. Vsaka različica se zahteva neodvisno; dejanska različica je zabeležena. | | `socketDiagnostics.js` | Izrecno TLS sonde za različice, omejene TCP povezave/pasivne transparente, predavtentikacija SSH opazovanje host- key z uporabo obstoječe odvisnosti ssh2, in neobvezno RFC 6455 Potrditev nadgradnje. | | `diagnosticsService.js` | Teče in prekine orodja, izbira/validates naslove, napredek potokov, ohranja delne meritve in lastnik roka za vožnjo. | | `historyStore.js` | Različica omejena lokalna zgodovina, redakcija, uvoz s shemo in izvoz izmerjenih podatkov. | ### ICMP in poti Ping privzeto na štiri izpeljane zahteve ICMP. Rezultati vsebujejo merjeno RTT, število prejetih/izpisov, izgubo, min/average/max, populacijski standardni odklon, povprečna absolutna razlika med zaporednimi izmerjenimi RTT (jitter), TTL/Hop meja po tiskanju in časovnih oznakah. A `<1 ms` odgovor se šteje kot prejet z zgornjo mejo, namesto da bi se izumil številčni RTT. Neznani RTT so izključeni iz statistike o zamudah. Statistika uporablja zadržano okno največ 500 paketi; poslani/received/loss Šteje se, da pokrijejo celoten potek. Grafikoni kažejo zadnje 200 opazovanja z različnimi simboli za odgovore, odgovore na podrazločbo, manjkajoče odgovore in izrecna zahteva/procesna časovna obdobja. Manjkajoči odgovor lahko odraža filtriranje ICMP, izgubo paketa ali časovno zadrževanje; ta opazovanja ne morejo dokončno identificirati požarnega zida. Manjkajoče izvršilne datoteke, lokalne napake s dovoljenji in neveljavno orodje pozivi so ločene orodje napake, ne izguba paketov ali strežnik nedostopnost. Privilegij se ne zahteva. Traktorji, naslovi, posamezne sonde, sredstva in opaženi odstotki brez odgovora. Obrni DNS se razreši po poti z izbranim reševalnikom. Ponavljanja primerjajo opažene zaporedje naslovov hmelja; razlike lahko odražajo ravnotežje obremenitve. Neodgovorjeni vmesni hmelj ne določa polomljene poti. Nerazviti sondni metapodatki in metoda se pojavljajo v razširljivih podrobnostih. macOS zahteva celokupno posledično čakanje; evidentira se učinkovita zaokrožena časovna zaporedja. ### DNS Dvanajst rekordnih tipov so A, AAAA, CNAME, MX, NSXT, TXT, SOA, SRV, CAA, PTR, DSS in DNSKEY. DNS razčlenjevanje transakcije/vprašanja identitete, velikosti zapisa, zanke za kompresijo in omejitve sporočila. Odgovori ohranjajo zapis TTL, vpraševanje čas, razreševalnik in NXDOMAIN/NODATA/SERVFAIL/refused/timeout države. Poizvedbe naslovov OS ne morejo zagotoviti TTL; ločeno poizvedovanje zapisa lahko. CNAME je omejeno na osem povezav z odkrivanjem cikla. Skladnost ponovi odgovore izbranega reševalca A/AAAA in izvede napredno potrjeno PTR za IP-literalno DNS testi. Spremenjeni odgovori so opazovanja, ne dokaz za DNS Napaka. Vprašanja za SRV uporabljajo ciljno ime, kot je navedeno; vnesite ime storitve, kot je na primer `_service._tcp.example.org` kadar je potrebno. DNSSEC je vedno **ni potrjeno**. DS/DNSKEY prisotnost in celo AD zastava reševalca se nikoli ne obravnavajo kot neodvisna validacija. ### HTTP, uspešnost in stiskanje HTTP/1.1 sprejema to različico kot podprto le, ko je bila dejansko vrnjena. HTTPS HTTP/2 zahteva dogovorjeno h2; nobena rezervna oznaka ni preoznačena. Počisti besedilo HTTP/2 uporablja predhodno znanje, ne HTTP/1.1 Posodobitev sonde. TLS preverjanje ostaja strogo za vsak zahtevek za HTTP/WebSocket. Ročni preusmeritve so omejene na osem; zanke, neveljavne namembne države in prekomerne preusmeritve izrecno ne uspejo. Celotna verižna evidenca navzkrižnih sprememb in HTTPS zmanjšanja; sheme in spremembe www so vidne v vir/odreditev URL. Preusmeritve pooblastil in sheme, ki niso preusmerjene s strani HTTP, se zavrnejo. Vsak navzkrižni preusmeritev se reši neodvisno z izbranim reševalcem in zahtevano družino IP. Meritve vključujejo DNS (pri izvajanju), TCP, TLS, končna odgovorna TTFB, celotna TTFB DNS/redirects, download, preusmeritev in skupni stenski čas, dejanski entitetni bajti, hitrost prenosa, status, naslove odziva, dejanski naslov strežnika/port, ALPN in preverjeno ponovno uporabo povezave. DNS/TCP/TLS faze, ki niso izvedene na priklenjenem ali ponovno uporabljenem priključku, so `N/A`Ne lažne nule. QUIC nima TCP faze; rokovanje roke je ločeno zabeleženo. Prenos glave ali polna žica nad glavo se ne navaja kot meritev subjekta-bite. To so časovni razporedi strežnikov/mrež, ne prikaz strani ali rezultati Lighthouse. Vsak izbrani protokol uporablja enak cilj in ponovitve. IPv4/IPv6 in HTTP/HTTPS so izrecne možnosti primerjave. Nadomestna shema uporablja privzeto pristanišče. Vsak protokol začenja neodvisen proces s paketom odjemalca na vzorec. Ponovna uporaba povezave ni navedena. Statistika o celotnem času vključuje min/average/median/max/nearest-rank P95 in ločeno napako transporta/protokola; oznake stanja HTTP ostajajo vidne tudi, ko strežnik uspešno vrne odziv 4xx/5xx. Kompresija pošilja identiteto, gzip, deflate, br in (ko ga izvedba podpira) kot ločene zahteve za sprejemanje kodiranja. Vsebina-Kodiranje mora ustrezati, in omejena dekompresija mora uspeti. Razmerje se izračuna le, če dekodirani teles hash, končni URL in status ustrezata izhodiščni identiteti. Ignorisana kodiranja niso podprta; spreminjajoča/dinamična telesa nimajo razmerja. To je opazovanje za ta URL/status, ne pa univerzalna podpora strežniku. Pregledi varnostnega glavca kažejo na prisotnost in vrednost HSTS, CSP, X-Content-Type-opcije, referent-politika, dopust-politika in X-okvirne možnosti. A CSP Direktiva o okvirnih arbitražah lahko nadomesti slednjo direktivo. Prisotnost ne določa, da je politika pravilno nastavljena ali da je spletna stran varna. ### HTTP/3 zahteve in dokazilo HTTP/1.1, HTTP/2 in HTTP/3 uporabite isto vloženo kodro stranko. macOS arm64 in Linux x64 uporabite kodr 8.22.0, OpenSSL 3.5.9, nghttp2 1.70.0, ngtcp2 1.25.0 in nghttp3 1.18.0. Windows x64 uporablja uradni kodr.se curl-for-win 8.22.0_3 Statično zgrajevanje z LibreSSL 4.3.3 in iste knjižnice HTTP. Sistemski kodr za zaporedno uporabo ni potreben, zaganjanje ali dovoljenje administratorja. Windows recept za obnovljivo zgradbo je https://github.com/curl/curl-for-win/tree/9d77e31e . Zgradi z `python3 scripts/native/build.py` (Windows: `python scripts/native/build.py`) pred pakiranjem. macOS/Linux zahteva orodja C/C++, CMake, Ninja, Perl, make in pkg- config. Viri so priklenjeni z različico in vzdolž teka SHA-256 v `scripts/native/dependencies.lock.json`. Scenarija potrjuje vsako prenosno zbirko, statično povezuje knjižnice za prevoz s tretjimi stranmi in ne uspe brez HTTP2/HTTP3/SSL funkcije. Samo dinamične so knjižnice obratovalnega sistema. Windows uporablja uradni binarni arhiv, ki ni lokalni zgrajen Windows transportni sklad. Snopljena CA datoteka ima lastno priklenjeno hash; licence komponent in province za gradnjo navzgor. Odjemalec in trgovina z zaupanjem sta nameščena zunaj aplikacije.asar v `resources/native-runtime/-/`. Vsaka diagnostična preverja, da se komponente hašes, arhitektura in izvedljive zmogljivosti pred uporabo. konfiguracijske datoteke, proxies, TLS Izključeni so premoženje zaupanja in spremenljivke za vbrizgavanje knjižnice. Curd teče z absolutno potjo, lupino onemogočeno, preverjeno zaupanje CA, izrecno razrešena družina IP, brez piškotkov, brez avtomatskih preusmeritev ter omejenega izhoda in časa. Preusmeritve so potrjene in rešene s strani aplikacije. HTTPS na pristaniščih razen 443 je podprta. HTTP/3 uporaba `--http3-only` in je potrjeno šele po dokončnem prenosu, ki poroča o različici HTTP 3 in uspešno preverjanje potrdila. Odgovori HTTP napake, kot so 404 Lahko potrdimo protokol. Alt-Svc je oglas, ne dokaz. Preklic QUIC, odpoved potrdila, DNS neuspeh, zavrnitev povezave, nezdružljiv protokol in neuspelost sestavnih delov ostajata ločena. Nepreverjena je podpora strežniku z UDP-jem. Čas stiskanja roke QUIC ni prijavljen kot TCP čas. Vsako meritev začne ločen postopek/povezava. Topla možnost ne zahteva ponovne uporabe povezave za vloženega odjemalca. To ohranja primerjavo protokolov dosledno. Poročila vključujejo različice, zmogljivosti, TLS preverjanje in QUIC časovni razpored, medtem ko zgodovina/izvoz odstrani telesa, poizvedbe za URL in zaglavja za avtentifikacijo. Posodobite te pins in obnovite vsako podprto platformo ob posodobitvi transportnega steka ali CA trust trgovina. Objavljeni artefakti in posnetki izvora so nespremenljivi. ## Glavni IPC Vnaprej razloži samo `window.chjCore.diagnostics`; vsi upravljavci obdržijo obstoječo preverjanje pošiljatelja v glavnem oknu in omrežno delo ostane v glavnem. Uporaba rezultatov `{ ok: true, value }` ali `{ ok: false, error: { code, message } }`. | Metoda prednalaganja kanalov/ prednalaganje | Obremenitev / rezultat | | --- | --- | | `diagnostics:resolve` / `resolve(options)` | Preverjeni cilj/nastavitve → cilj in rešeni naslovi. Največ dve zahtevki za sočasno reševanje. | | `diagnostics:start` / `start(options)` | Preverjena tarča/settings/tool izbira → neprozorna identifikacija delovnega mesta in začetno poročilo. | | `diagnostics:cancel` / `cancel(id, tool?)` | Prekliči eno aktivno/preklopno orodje ali celoten zagon. | | `diagnostics:get` / `get(id)` | Posnetek znanega zagona ali shranjenega poročila. | | `diagnostics:history` / `history()` | Povzetki lokalne zgodovine. | | `diagnostics:removeHistory` / `removeHistory(id)` | Odstrani izbrano stavko zgodovine. | | `diagnostics:copy` / `copy(id, format)` | Main piše redacted znano poročilo v odložišče. | | `diagnostics:export` / `export(id, format)` | JSON/CSV/TXT prek domačega pogovornega okna za shranjevanje; režiser ne more zagotoviti poti datotečnega sistema. | | `diagnostics:import` / `import()` | Naravni izbirnik datotek, velikost/schema/depth potrjevanje in ponovna reakcija pred shranjevanjem. | | `diagnostics:progress` / `onProgress(callback)` | Rešeni naslovi, zagoni/dopolnitve orodja, paketi, hops, vzorci HTTP in dopolnitev; vrne odpoved klica. | Brez generičnega okna, datotečnega sistema ali omrežja API je izpostavljena. Kontekstna izolacija, peskovnik, vključevanje izključenih vozlišč in obstoječi izdelovalec CSP ostala omogočena. Obstoječe pogodbe o vstavkih in preverjanje/izjeme posodabljatelja niso spremenjene. ## Proračuni in lokalni podatki - Ena run, dve aktivni orodji, pri največ dveh IP družinskih sond na orodje; TCP dodatno omejuje vsak naslov na štiri povezave. - Časovni čas za sodelovanje 250–30000 ms; 1–100 paketi, 1–20 ponovitve, 1–40 hops, 1–16 Pristanišča. Redni tečaj se ustavi ob petih minutah; neprekinjeni ping ob tridesetih minutah. Podproces tračnice ima še en 180-second cap. - Običajno izhod procesa 256 KiB; organ entitet HTTP 2 MiB; dekompresirano telo 8 MiB; Glave HTTP omejene; telesa odziva ne vstopijo v zgodovino. - Ohranite največ 500 paketi/nastop dogodkov, pet v spominu teče, trideset poročil zgodovine in 10 MiB zgodovine. Zgodovina uporablja obstoječi zasebni atomski pisatelj na `/diagnostics/history.json` (način 0600). - Uvoz je največ 2 MiB, shema 1, z omejeno gnezdenje in potrjeno zbirko rezultatov. CSV celice so ubežne in formula predpona nevtralizira. Poizvedbe/fragmenti URL, prepisi, piškotki, glave za preverjanje autentičnosti in surova telesa so izključeni iz shranjevanja/copied/exported poročila. Surove podrobnosti kažejo izmerjene strukturirane podatke, ne pa zajetje paketov ali obdržana odzivna telesa. - Brez sinhronizacije oblaka, avtomatskega prijavljanja, sprememb strežnika ali agresivnega/nevezanega skeniranja. Uporabnik izrecno izbere cilj/ports/resolver. ## Zahteve platforme in preverjanje | Platforma | ICMP | Pot | Drugi protokoli | | --- | --- | --- | --- | | Windows 10/11 | `ping.exe -4/-6` | `tracert.exe -4/-6`, ICMP | Zaklenjeni curl.exe z HTTP/2 in HTTP/3. Lokalizirana polja RTT niso odvisna od besede „čas“. | | macOS | `/sbin/ping`, `/sbin/ping6` | `/usr/sbin/traceroute`, `/usr/sbin/traceroute6`, UDP; celokupna sekunda čaka | Zvita kodra z HTTP/2 in HTTP/3. | | Ubuntu/Linux | iputil `ping -4/-6` | standard `traceroute -4/-6`, UDP | Zvita kodra z HTTP/2 in HTTP/3; manjkajoča orodja ICMP/smerna orodja se poročajo ločeno. | Odvisnost od novega modela ni bila dodana. Izvajanje uporablja vgrajene vozlišča in obstoječi ssh2. Niti namesti sistemska orodja niti ne zahteva upravnih pravic. Varnostni zidovi in omejitve UDP lahko preprečijo vzpostavitev podpore pri preskusu; ne morejo se sklepati samo iz časovnega časa. Avtomatizirana pokritost je v `diagnosticsCore.test.js`, `diagnosticsNetwork.test.js`, `diagnosticsHttp.test.js` in `diagnosticsIpc.test.js`: validacija/IPv6 dobesednost, domača/lokalna DNS UDP+TCP pritrdišča, manjkajoči/dvoumno družinski odgovori in napake reševalcev, CNAME/konzistenca, argumenti OS/parziranje, omejeni realni otroški procesi, blokirani opazovani ICMP, realna lokalna lokalna HTTP/1.1 in TLS h2, preusmeritve/omejitve telesa/timeouts/reuse, kompresija omogočena/zadržana, HTTP3 sposobnosti/uspeh razčlenjevanja/vrnitev vnaprejšnjih rezultatov, lokalno zaupanje CA/mismatch/expiration in resnična IPv6 HTTP/HTTPS, TCP povezava/refused/mock Preklic, prava spletna povezava in SSH predavtentifikacija rokovanja, preklic/cleanup/partial rezultati, stanje offline, zasebnega zaporednega potniškega/izvoznega zavrnitve/izvoza, zaupanega IPC in naročnine za preddobavo. `npm test` izvaja deterministične teste brez javnih preizkusnih strežnikov. `npm run test:diagnostics:ui` teče `scripts/smokeDiagnostics.js` v grafičnem Electron namizje, z uporabo proizvodnega UI/preload/IPC in resnične sonde za HTTP/kompresijo. Storitve, ki niso povezane z njimi, so samo v tem preskusnem pasu. Preverja navigacijski nalog, izide protokola, vztrajnost, CZ/DE/EN, obe temi, ozko okno prelivanje in piščanca preferencial. Če je lupina nastavila ELECTRON_ RUN_ AS_ NODE, jo odklopite za ta ukaz. Preverjanje tekočega časa zajema nadzorovane prenose QUIC, IPv4/IPv6, HTTPS na pristanišču, ki ni privzeto 404 odzivov, TLS neuspehi in oglaševanje storitev samo TCP Alt-Svc. Izsledki na zgradbo spremljajo vsako sproščanje. Eksplicitne neobvezne omejitve: brez neodvisne potrditve DNSSEC (zahteva popolno potrjevanje reševalnega/možnostno-varovalnega življenjskega cikla), brez revizije svetlobnih objektov (samo za strežnik/mrežje), brez zastarelosti TLS revizija ali preklic/CT storitev, št. HTTP3 zahtevek za toplo ponovno uporabo in ne HTTP/3 merjenje toplote ponovne uporabe. Nepodprte zmogljivosti so prikazane namesto simulacije. ## Datoteke v tej spremembi Ustvarjena: sedem servisnih datotek v `src/main/diagnostics/`; `src/renderer/diagnostics.js`, `diagnosticsI18n.js`, `diagnostics.css`; štiri `test/diagnostics*.test.js` datoteke; pet datotek pod `test/fixtures/diagnostics/`; `scripts/smokeDiagnostics.js`; ta dokument. Integrirana/obnovljena: `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`, koren `README.md`, `.gitignore` (Štiri izjeme iz javne ureditve) in koreninski gitleaks omogočajo ozko imenovanje namerno javnega seznama TLS Pritrdilo za preskusne tipke. Zasebni ključ CA za podpisovanje je bil zavržen; čas delovanja aplikacije se nikoli ne uporablja.