CH-J Toolsуправление на сървъри над SSH
Меню

Диагностика на сървъра

Изтегляне на файл

Езиковата редакция на този превод е в ход. При неясноти сравнете с английския оригинал.

Интегрирана в страничния панел на ядрото, в реда Plugins → Сървърна диагностика → Hash & Checksum. Тя не изисква SSH сесия или изтеглен плъгин. Всички кодове за време на работа, тестове и тела живеят в app/; модулът няма зависимост от хранилищата на братя и сестри. Хранилището няма doc.md, така че този документ и двете READMEs описват изпълнението.

Потребителски работен процес

Въведете име на хост, адрес IPv4, IPv6 или HTTP(S)/WS( S). Баре хост имена / IPs по подразбиране за HTTPS; изрични URL адреси запазват своя път, заявка и порт по време на заявката. Отхвърлят се удостоверенията в URL адреси, неподдържани схеми, знаци за бяло пространство/контрол и имена на хостове, подобни на черупки. IPv6 буквално се скоба автоматично; идентификаторите на обхват/линк-локална зона не се поддържат от адресния анализатор.

Изберете Auto (предпочитайте IPv4, в противен случай IPv6), IPv4 или IPv6. Разрешаване на адресите за избор на конкретен текущ отговор. Прегледът показва всички решени отговори; сондите тестват избрания адрес или един адрес за всяко поискано семейство. И двете семейства се измерват независимо. Самото присъствие на AAAA никога не предполага работа на IPv6 свързаност.

Стартирайте диагностика работи DNS, пинг, traceroute, HTTP, компресия, TLS и избраните TCP портове. WebSocket се включва. Всеки инструмент също има отделен Run/Stop контрол. Един диагностичен тест може да бъде активен веднага. Завършена работа означава, че инструментите са готови, не че всяка сонда е успяла. Няма одеало "сървър офлайн" присъда.

Тайм аут, брой пакети, повторения, максимален хмел, DNS решаващ, избор на протокол, топла връзка и сравнение HTTP/HTTPS са конфигурираеми. Промяната на целта изчиства предварително избран IP. Историята може да отвори отново, да сравни два доклада, да изтрие, да импортира JSON, копие или износ JSON/CSV/TXT чрез естествени диалогови прозорци Core. Темата Light/dark/system се отнася за секцията за диагностика и се записва в съществуващата конфигурация UI. CZ/DE/EN следва незабавно езика на заявлението.

Компоненти и протоколно поведение

Компонент Приложение и тълкуване
common.js Валидира цели/опции, гранични стойности и стойности на enum; преобразуването на IDNA; цифровата статистика изключва неизвестни стойности.
dnsDiagnostics.js Системна резолюция за адрес използва dns.lookup, за да почете конфигурацията на OS и хост файлове. Запис заявки използват ограничена UDP DNS с TCP резервно копие за непълен отговор срещу dns.getServers(), или изрично избраният потребител / обществен решетел. Без имплицитно превключване към публично DNS.
processTools.js Изпълнение на PS пинг / traceroute с масив от аргументи и shell: false, ограничена продукция, изрична таймаут и прекратяване / почистване на убийство. Парсирайте пакет отговори и хмел, вместо да третирате продължителността на процеса като RTT.
httpDiagnostics.js Сбръчкани къдрици за HTTP/1.1, HTTP/2 както и HTTP/3; строга проверка на удостоверенията и приковано IP семейство. Всяка версия се иска независимо; действителната версия се записва.
socketDiagnostics.js Експлицитно TLS Проби за версия, ограничена TCP свързва / пасивни банери, преди автентичност SSH наблюдение на ключа хост, като се използва съществуващата зависимост ssh2 и незадължителния RFC 6455 Подобрение.
diagnosticsService.js Работи и отменя инструменти, избира/валидатира адреси, потоци напредък, запазва частични измервания и притежава крайния срок за изпълнение.
historyStore.js Вероятна ограничена местна история, Редакция, внос от схема и износ на данни с измерени стойности.

ICMP и маршрути

Ping по подразбиране за четири индивидуално изпълнени ICMP ехо заявки. Резултатите съдържат измерените за всеки пакет RTT, получени/изпратени бройки, загуба, min/average/max, стандартно отклонение на популацията, средна абсолютна разлика между последователни измерени RTTs (житер), TTL/Hop Limit при печат и времеви печати. Отговорът на <1 ms се счита за получен с горна граница, вместо да се изобретява цифров RTT. Неизвестните RTT се изключват от статистиката за латентност. Статистиката използва запазения прозорец на най-много 500 пакети; изпратените /received/loss брой обхваща целия период. Графиките показват последните наблюдения на 200, с различни символи за отговори, отговори под-резолюция, липсващи отговори и изрични искания/процедурни таймаутове.

Липсващият отговор може да отразява филтрирането на ICMP, загубата на пакети или таймаут; тези наблюдения не могат да идентифицират защитна стена убедително. Липсващи изпълними файлове, неправилни локални разрешения и невалидни извиквания на инструменти са отделни грешки в инструментите, а не загуба на пакети или липса на сървър. Не се изисква повишаване на привилегиите.

Проследете потоци хмел, адреси, индивидуални сонди, средства и наблюдавани проценти без отговор-сонда. Обратният DNS се решава след маршрута, като се използва избраният регулатор. Повторенията сравняват наблюдаваните поредици от хмел-адрес; разликите могат да отразяват балансирането на товара. Неотговорените междинни хмелове не установяват счупен маршрут. Метаданните и методът на Raw сондите се появяват в разширени детайли. macOS изисква цяло-секундни traceroute чакания; се записва ефективното заоблено време.

DNS

Дванадесетте рекордни типа са A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR, DS и DNSKEY. DNS тел за анализ на проверките транзакция/идентичност на въпроса, размери на запис, контури за компресиране и ограничения на съобщенията. Отговорите запазват рекордни TTLs, времето за запитване, решаващ и NXDOMAIN/NODATA/SERVFAIL/refused/timeout състояния. Прегледите на адресите на OS не могат да предоставят TTL; отделната заявка за запис може.

CNAME следва се ограничава до осем връзки с откриването на цикъла. Последователността повтаря A/AAA отговори от избрания решетел и извършва предварително PTR за IP-литературни тестове DNS. Променените отговори са наблюдения, а не доказателство за грешка на DNS. Запитвания за SRV използват името на целта, както е дадено; въведете име на услуга като _service._tcp.example.org, когато е необходимо. DNSSEC винаги е not валидиран. Присъствието на DS/DNSKEY и дори флагът AD не се третират като самостоятелно валидиране.

HTTP, ефективност и компресия

HTTP/1.1 приема тази версия като поддържана само когато всъщност е била върната. HTTPS HTTP/2 изисква договорени h2; не се поставя повторно етикетиране. Cleartext HTTP/2 използва предварителни знания, а не сонда HTTP/1.1 Upgrade. Проверката на TLS остава стриктна за всяко искане на HTTP/WebSocket.

Ръчното пренасочване е ограничено до осем; циклите, невалидните дестинации и прекомерните пренасоки се провалят изрично. Пълната верижна отчетност на промените в домейните и понижаването на нивата на HTTPS; схемите и www промените са видими в URL адресите източник/назначение. Отхвърлят се схемите за прехвърляне на данни и схеми, които не са HTP(S). Всеки кръстосан хост пренасочване се решава независимо чрез избрания разрешаващ и поиска IP семейство.

Измерванията включват DNS (когато се извършва), TCP, TLS, TTFB с окончателен отговор, общо TTFB, включително DNS/redirects, изтегляне, пренасочване и общо време на стената, действителните байтове, скорост на прехвърляне, статус, заглавни части на отговора, действителен сървър адрес/порт, ALPN и потвърдена повторна употреба на връзката. DNS/TCP/TLS фазите, които не се извършват на захваната или повторно използвана връзка са N/AНе фалшиви нули. QUIC няма TCP фаза; неговото ръкостискане се записва отделно. Заглавната част или цялата тел не се твърди като измерване на байта. Това са сървър/мрежови времеви интервали, а не резултати от пресъздаване на страници или фар.

Всеки избран протокол използва една и съща цел и повторения. IPv4/IPv6 и HTTP/HTTPS са изрични варианти за сравнение. Алтернативната схема използва своето пристанище по подразбиране. Всеки протокол започва независим процес на пакетиране-клиент за проба. Не се твърди повторно използване на връзката. Статистиките за общото време включват min/average/median/max/nearest-rank P95 и отделен процент на грешка при транспортиране/протокол; кодовете за състоянието на HTTP остават видими дори когато сървърът успешно връща отговор 4xx/5xx.

Compression изпраща идентичност, Gzip, deflate, br и (когато времето за изпълнение го поддържа) Zstd като отделни заявки за приемане-Encoding. Кодирането на съдържанието трябва да съответства, и ограничена декомпресия трябва да успее. Съотношението се изчислява само ако декодираният орган хеш, крайният URL адрес и статусът съвпадат с изходната стойност на самоличността. Игнорираните кодирания са неподдържани; променящите се/динамичните тела нямат съотношение. Това е наблюдение за този URL/status, а не универсална поддръжка на сървъра.

Проверките за сигурност показват наличие и стойност на HSTS, CSP, X-Content-Type-Options, Referer-Policy, Права-Политика и X-Frame-Options. Директивата CSP за рамковите инвеститори може да замени последната. Присъствието не установява, че политиката е правилно конфигурирана или че уеб сайта е сигурен.

HTTP/3 изисквания и доказателство

HTTP/1.1, HTTP/2 и HTTP/3 използват един и същ клиент. macOS arm64 както и Linux x64 използване на къдрици 8.22.0, OpenSSL 3.5.9, nghttp2 1.70.0, NGTCP2 1.25.0 и nghttp3 1.18.0. Windows x64 използва официалния crowl.se къдрици за победа 8.22.0_3 статично изграждане с LibreSSL 4.3.3 и същите HTTP библиотеки. Не е необходимо системно извиване, сваляне на време за изпълнение или разрешение за администратор. Рецептата Windows нагоре по веригата възпроизводима строителна е https://github.com/curl/curl-for-win/tree/9d77e31e .

Постройте с python3 scripts/native/build.py (Windows: python scripts/native/build.py) преди опаковката. macOS/Linux изисква C/C++ инструменти, CMake, Ninja, Perl, made и pkg-конфигурация. Източниците са прихванати от версията и нагоре по SHA-256 в scripts/native/dependencies.lock.json. Сценарият проверява всяко изтегляне, статично свързва транспортни библиотеки на трети страни и се проваля без HTTP2/HTTP3/SSL характеристики. Само библиотеките на операционната система остават динамични. Windows използва прикования официален двоичен архив, а не локално компилиран транспортен стек Windows. Пакетираният CA файл има собствен прикован хеш; лицензите за компоненти и произходът на строителството нагоре по веригата придружават времето за изпълнение.

Клиентът и доверителният магазин са инсталирани извън app.asar в resources/native-runtime/<platform>-<arch>/. Всяка диагностика проверява компонента хешес, архитектура и изпълними възможности преди употреба. Конфигурирани файлове, прокси, TLS доверителна среда се отменят и се изключват променливи за Библиотеката. Кърлинги с абсолютен път, деактивирани черупки, проверени CA доверие, изрично решен IP семейство, без бисквитки, без автоматични пренасочване, и ограничена изход и време. Пренасочването се валидира и преразпределя от заявлението. HTTPS се поддържа на пристанища, различни от 443.

HTTP/3 използва --http3-only и се потвърждава само след завършено предаване на HTTP версия 3, както и успешно удостоверяване на сертификат. HTTP грешки отговори като 404 може да потвърди протокола. Alt-Svc е реклама, не доказателство. QUIC таймаут, отказ на сертификат, повреда на DNS, отказ за връзка, несъвместим протокол и неизправност на компонента остават различни. Времетраене на UDP оставя поддръжка на сървъра непроверена. QUIC времето за ръкостискане не е докладвано като TCP време.

Всяко измерване започва отделен процес/връзка. Топлата опция не претендира за повторно използване на връзката за пакетирания клиент. Това поддържа протоколните сравнения последователни. Докладите включват версии, възможности за изпълнение, проверка на TLS и QUIC време, докато историята/експортът премахват органи, заявки за URL адреси и заглавни части за удостоверяване на автентичността.

Актуализиране на тези пинове и възстановяване на всяка поддържана платформа при актуализиране на транспортния стек или CA доверителен магазин. Публикуваните артефакти и снимки са неизменни.

Основна IPC

Предварителното зареждане разкрива само window.chjCore.diagnostics; всички манипулатори запазват съществуващата проверка на основния подател и работата в мрежата остава основна. Резултатите използват { ok: true, value } или { ok: false, error: { code, message } }.

Канал / предварително натоварване метод Зареден товар / резултат
diagnostics:resolve / resolve(options) Валидирана цел/настройки → целеви и разрешени адреси. Най-много две едновременни искания за резолюция.
diagnostics:start / start(options) Валидирана цел/settings/tool подбор → непрозрачен идентификатор на длъжността и първоначален доклад.
diagnostics:cancel / cancel(id, tool?) Отменяне на един активен/quued инструмент или целия пробег.
diagnostics:get / get(id) Снимка на известен опит или запис на доклада.
diagnostics:history / history() Местната история обобщава.
diagnostics:removeHistory / removeHistory(id) Премахване на избрания елемент от историята.
diagnostics:copy / copy(id, format) Мейн пише редактиран доклад в клипборда.
diagnostics:export / export(id, format) JSON/CSV/TXT Чрез естествения прозорец за запис; рейнджърът не може да предостави път на файловата система.
diagnostics:import / import() Народен файлов берач, размер/schema/depth валидиране и редактиране преди съхранение.
diagnostics:progress / onProgress(callback) Решени адреси, инструмент за стартиране/завършване, пакети, хмел, HTTP проби и завършване; връща отписване обратно.

Не е изложена обща обвивка, файлова система или мрежа API. Контекстовата изолация, пясъчника, интеграцията на възела с увреждания и съществуващият динамометър CSP остават включени. Съществуващите договори за плъгини и updater проверка / изключения са непроменени.

Бюджети и местни данни

Изисквания към платформата и проверка

Платформа ICMP Маршрут Други протоколи
Windows 10/11 ping.exe -4/-6 tracert.exe -4/-6, ICMP Подути curl.exe с HTTP/2 както и HTTP/3. Локализираните RTT полета не зависят от думата "време".
macOS /sbin/ping, /sbin/ping6 /usr/sbin/traceroute, /usr/sbin/traceroute6, UDP; цяло число-секунда чака Сбръчкана къдрица с HTTP/2 както и HTTP/3.
Ubuntu/Linux ипутин ping -4/-6 стандарт traceroute -4/-6, УДП Сбръчкана къдрица с HTTP/2 както и HTTP/3; липсващите ICMP/пътни инструменти се отчитат отделно.

Не е добавена нова зависимост от npm. Изпълнението използва Node вградени и съществуващи ssh2. Той нито инсталира системни инструменти, нито изисква административни права. Противопожарните стени и ограниченията на UDP могат да попречат на изпитването да установи подкрепа; те не могат да бъдат изведени само от прекъсване.

Автоматизирано покритие е в diagnosticsCore.test.js, diagnosticsNetwork.test.js, diagnosticsHttp.test.js както и diagnosticsIpc.test.js: валидиране/IPv6 буквални, местни/местни DNS UDP + TCP тела, липсващи/двойни семейни отговори и решаващи грешки, CNAM / постоянство, OS аргумент / съхраняване на тела, ограничени реални детски процеси, блокирани ICMP наблюдения, реално локални HTTP/1.1 както и TLS h2, пренасочва/ограничение на тялото/timeouts/reuse, активирана/незабележима компресия, HTTP3 възможности/успешни резултати от анализ/отхвърляне на загуби, местно доверие в CA/mismatch/expiration и истински IPv6 HTTP/HTTPS, TCP връзка/refused/mock Таймаут, истински WebSocket и SSH ръкостискане преди удостоверяване, анулиране/cleanup/partial резултати, офлайн състояние, частна история кръгло пътуване / отхвърляне внос/износ, доверени IPC и предварително зареждане абонаменти.

npm test провежда детерминистични тестове без публични тестови сървъри. npm run test:diagnostics:ui работи scripts/smokeDiagnostics.js в графичен Electron работен плот, използвайки производство UI/preload/IPC и реални локални HTTP/компресни сонди. Несвързаните услуги са само в този изпитвателен колан. Той проверява навигационната поръчка, резултатите от протокола, постоянството, CZ/DE/EN, двете теми, тесен прозорец и предпочитания за пясъчник. Ако обвивката зададе ELECTRON_ RUN_AS_NODE, тя се изключва за тази команда.

Проверката на текущото работно време обхваща контролирани прехвърляния на QUIC, IPv4/IPv6, HTTPS на порт за непо подразбиране, 404 отговори, TLS неуспехи и реклама само за TCP услуги Alt-Svc. Пер-изграждане резултати придружават всяка версия.

Изрични незадължителни граници: без независимо валидиране на DNSSEC (изисква пълен валидиращ решаващ/доставчик на емисии жизнен цикъл), без одит на фара (само в работно време, без оневинен одит на TLS или отмяна/CT услуга, без искане за топла употреба HTTP3 и без измерване на топлинното използване на HTTP/3. Неподдържаните възможности се показват вместо симулирани.

Файлове в тази промяна

Създадени: седемте сервизни файла в src/main/diagnostics/; src/renderer/diagnostics.js, diagnosticsI18n.js и diagnostics.css. Четирите test/diagnostics*.test.js файлове; пет файла под test/fixtures/diagnostics/ (scripts/smokeDiagnostics.js); този документ.

Интегрирана/актуализирана: 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, корен README.md, .gitignore (четири изключения за публичното обзавеждане) и коренови гитлеаки позволяват списък тясно назоваване на умишлено обществено TLS Прикрепяне на клавиша за изпитване. Подписването на частен ключ CA е било изхвърлено; фиксирането никога не се използва от времето за изпълнение на приложението.