> Языковая редактура этого перевода продолжается. Если фрагмент неясен, сверьтесь с [английским оригиналом](https://www.sm.ch-j.eu/docs/i18n/en/server-diagnostics.md). # Диагностика серверов Встроено в боковую панель ядра в порядке Plugins β Server Digitarications ≥ Hash & Schum. Для этого не требуется сеанс SSH или загрузка лейбина. Все коды рабочего времени, испытания и арматура находятся в `app/`; модуль не зависит от хранилищ для братьев и сестер. Хранилище не имеет `doc.md`, поэтому этот документ и оба READMES описывают реализацию. ## Рабочий поток пользователей Введите имя узла, адрес IPv4 или IPv6 либо URL HTTP(S)/WS(S). Для имён узлов и IP-адресов без схемы по умолчанию используется HTTPS; явные URL сохраняют путь, запрос и порт. Учётные данные в URL, неподдерживаемые схемы, пробельные и управляющие символы, а также имена узлов, похожие на команды shell, отклоняются. Литеральные адреса IPv6 автоматически заключаются в квадратные скобки; идентификаторы зон, в том числе для локальных адресов канала, не поддерживаются анализатором URL. Выбрать Auto (предпочтение IPv4, иначе IPv6), IPv4 или IPv6. Решить адреса для выбора конкретного текущего ответа. Обзор показывает все ответы, по которым принято решение; пробники проверяют выбранный адрес или один адрес на семью, в отношении которой запрашивается помощь. Обе семьи измеряются независимо. Одно только присутствие AAA никогда не подразумевает рабочего подключения IPv6. Запустить диагностику DNS, пинг, индикатор, HTTP, сжатие, TLS и выбранные порты TCP. Веб-Сокет не против. Каждый инструмент также имеет отдельный контроль. Один диагностический прогон может быть проведен одновременно. Завершенный запуск означает, что инструменты закончились, а не то, что каждый зонд преуспел. Нет никакого вердикта по одеялу никчемного сервера. Временное отключение, количество пакетов, повторение, максимальные хмелье, решение DNS, выбор протокола, теплое подключение и сопоставление HTTP/HTPS являются взаимозаменяемыми. Изменение цели очищает ранее выбранный IP. История может вновь открыться, сравнить два доклада, удалить, импортировать JSON, копирование или экспорт JSON/CSV/TXT через диалоги с коренными ядрами. Тема Light/dark/system относится к разделу диагностики и сохранена в существующей конфигурации UI. CZ/DE/EN сразу же следует языку приложения. ## Компоненты и поведение протокола | Компонент | Внедрение и интерпретация | | --- | --- | | `common.js` | подтверждает целевые показатели/варианты, предельные значения и значения энума; преобразование IDNA; цифровые статистические данные исключают неизвестные величины. | | `dnsDiagnostics.js` | System system Serviction использует `dns.lookup` для соблюдения конфигурации OS и хранения файлов. Записные запросы с использованием UDP DNS, ограничивённых TCP запасным вариантом для редуцированных ответов против `dns.getServers()` или специально выбранного обычая/общественного разрешителя. Никаких имплицитных изменений в публичном DNS. | | `processTools.js` | выполняет OS ping/tracerout с массивом аргументов и `shell: false` с ограниченным выходом, эксплицитным тайм-аутом и отменой/уничтожением. Оценивает ответы на пакеты и хмель, а не рассматривает продолжительность процесса как RTT. | | `httpDiagnostics.js` | Связанный купол для HTTP/1.1, HTTP/2 и HTTP/3; строгая проверка сертификатов и крепление семейства IP. Каждая версия запрашивается независимо; фактическая версия регистрируется. | | `socketDiagnostics.js` | Explicit TLS, ограничённые TCP соединения/пассивные транспаранты, предаутентизация SSH наблюдение с использованием существующей зависимости ssh2, и факультативная проверка RFC 6455 Upgrate. | | `diagnosticsService.js` | запускает и отменяет инструменты, выбирает/подтверждает адреса, направляет прогресс, сохраняет частичные измерения и владеет предельным сроком. | | `historyStore.js` | Вертикальная локальная история, редактирование, химическая проверка импорта и экспорт измеряемых данных. | ### КС/СС и маршруты Невыполнение четырех индивидуальных запросов МЦППП. Результаты включают в себя данные по каждому упаковочному замеренному RTT, полученные/отправляемые подсчеты, потери, мин/average/max, стандартное отклонение от нормы численности населения, среднее абсолютное различие между последовательными измеренными RTT (замеренными джиттерами), TTL/Hop Предельным значением при печати и временны́ми знаками. Ответ `<1 ms` считается полученным с верхним пределом, вместо того чтобы изобретать числовое RTT. Неизвестные РТТ исключаются из статистики запоздалости. Статистика использует сохраненное окно не более чем в пакетах 500; отправка /received/loss охватывает весь процесс. На графиках показаны последние наблюдения 200 с четкими обозначениями ответов, ответов подрезолюция, недостающих ответов и четких сроков запроса/процесса. Недостающий ответ может отражать фильтрацию, потерю пакетов или временной отрезок; эти наблюдения не могут окончательно определить файервол. Недостающие исполнимые данные, ошибки в местных разрешениях и неверные ссылки на инструменты являются отдельными ошибками инструментов, а не потерей пакетов или отсутствием сервера. Не запрашивается никакой эскалации привилегий. Протоки, адреса, индивидуальные зонды, средства и наблюдаемые процентные доли без ответа. Обратный DNS урегулируется после маршрута с использованием выбранного решающего устройства. Повторение сравнивается с наблюдаемыми последовательности адресов хоп-адреса; различия могут отражать балансирование нагрузки. Неоплаченные промежуточные прыжки не определяют сломанный маршрут. Первичные метаданные и методы зондов представлены в расширенных деталях. macOS требует целых секундных остановок индикаторов; регистрируется эффективная закруглённая временнóсть. ### DNS Двенадцать видов рекордов - A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR, DS и DNSCY. DNS Проволочка для обработки проверки операций/вопросов, размер записей, петли сжимателей и пределы сообщений. Ответы: сохранение записей TTL, время запроса, решающая сторона и NXDOMAIN/NODATA/SERVFAIL/refused/timeout США. OS-адреса поиска не могут обеспечить TTL; отдельный запрос записи может быть. Последовавший за ним CNAME имеет восемь связей с обнаружением цикла. Последовательность повторяет ответы A/AAAA от выбранного решающего органа и выполняет переднеподтверждённые PTR для IP-литеральных испытаний DNS. Измененные ответы - это наблюдения, а не доказательство ошибки DNS. В запросах для SPV используется имя цели в том виде, в каком оно указано; при необходимости введите название сервиса, например `_service._tcp.example.org`. DNSSEC всегда имеет **not аттестованный **. Присутствие DS/DNSKEY и даже AD-флаг решающего лица никогда не рассматриваются как независимая проверка. ### HTTP, характеристики и сжатие HTTP/1.1 принимает эту версию как подтверждающую только после того, как она была действительно возвращена. HTTPS HTTP/2 требует согласованного h2; никакой обратной маркировки не производится. В Cleartext HTTP/2 используются предварительные знания, а не зонд усовершенствования HTTP/1.1. Проверка TLS остается строгой по каждому запросу HTTP/WebSocket. Число ручных перенаправлений ограничено восемью; циклы, недопустимые назначения и превышение лимита приводят к явной ошибке. Полная цепочка фиксирует смену доменов и переходы с HTTPS на HTTP; изменения схемы и префикса www видны в исходных и конечных URL. Учётные данные и схемы перенаправления, отличные от HTTP(S), отклоняются. Каждый переход на другой узел разрешается независимо через выбранный резолвер с запрошенным семейством IP. Измерения включают DNS (при выполнении), TCP, TLS, окончательный ответ TTFB, общий ТТФБ, включая DNS/перенаправления, загрузку, перенаправку и общее время на стене, фактические байт предприятия, скорость передачи, состояние, заголовки ответов, фактический адрес сервера/порт, ALPN и подтвержденное повторное использование подсоединения. DNS/TCP/TLS фазами, не выполненными на прикреплённом или повторном подсоединении, являются `N/A`- Не фальшивые нули. КМСД не имеет фазы ТКП; его рукопожатие регистрируется отдельно. Накладные расходы на передачу заголовков или полную проводку не указываются в качестве оценки по принципу " предприятие-байт " . Это серверы/сети времени, а не записи страниц или баллов маяка. Каждый выбранный протокол использует одну и ту же цель и повторение. IPv4/IPv6 и HTTP/HTTPS являются прямыми вариантами сопоставления. В альтернативной схеме используется порт дефолта. Каждый протокол начинает независимый процесс, предусматривающий объединение клиентов на выборку. Повторное использование связи не утверждается. Статистика общего времени включает мин./average/median/max/nearest-rank P95 и отдельный коэффициент погрешности при транспортировке/протокола; коды состояния HTTP остаются видимыми даже в том случае, когда сервер успешно возвращает 4хх/5xx ответ. Компрессия посылает идентификационные данные, gzip, дефлятировать, br и (когда время работы поддерживает его) zstd как отдельные запросы на кодирование приемки. Кодирование содержания должно соответствовать, а ограниченное декомпрессией должно быть успешным. Соотношение рассчитывается только в том случае, если декодированный хеш, окончательный URL и статус соответствуют исходной линии идентификации. Игнорированные коды не поддерживаются; изменяющиеся/динамические тела не имеют отношения. Это наблюдение за этим URL/статусом, а не за универсальной поддержкой сервера. Проверка задерживаемых лиц показывает наличие и ценность HSTS, CSP, X-контент-тип-варианты, реферер-политика, разрешения-политика и X-рамочные варианты. Директива о рамных патрулях CSP может заменить последнюю. Присутствие не доказывает правильной конфигурации политики или надежности вебсайта. ### Требования и доказательства HTTP/3 HTTP/1.1, HTTP/2 и HTTP/3 используют тот же связанный клиент. macOS arm64 и Linux x64 использование кудрявого крючка 8.22.0, OpenSSL 3.5.9нг/http2 1.70.0, ngtcp2 1.25.0 и нг/http3 1.18.0. Windows x64 использует официальное здание Curl.se curl-for-win 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, марка и pкг-config. Источники крепятся по версии и вверх по течению SHA-256 в `scripts/native/dependencies.lock.json`. Сценарий проверяет каждую скачку, статическо связывает библиотеки перевозок третьих сторон и не дает результатов без HTTP2/HTTP3/SSL - характеристики. Только библиотеки операционной системы остаются динамичными. Windows использует прикреплённый официальный двоичный архив, а не локально собранную транспортную стопку Windows. Связанный файл CA имеет свой собственный хеш; лицензии на компоненты и происхождение вверх по течению сопровождают время работы. Клиент и трастовый магазин установлены вне приложения в `resources/native-runtime/-/`. Каждая диагностическая проверка компонентов перед их использованием осуществляет проверку хеширования, архитектуры и работоспособности. Файлы конфига, прокси, TLS, а также переменные впрыска в библиотеку исключаются. Кёрл работает с абсолютным маршрутом, отключается, проверяется доверие CA, четко решённое IP семейство, нет печенья, не перенаправляется автоматически и ограниченная производительность и время. Перенаправления подтверждаются и репродукция производится по заявке. Поддержка HTTPS в портах, кроме 443. HTTP/3 использует `--http3-only` и подтверждается только после завершения передачи сообщения HTTP версии 3, а также успешной проверки сертификата. Ответы на ошибки HTTP, такие как 404, могут подтвердить протокол. Альт-Свк - это реклама, а не доказательство. Временное отключение QIFC, отказ сертификата, несрабатывание DNS, отказ в подсоединении, несовместимость протокола и неисправность элемента остаются различными. Время UDP оставляет серверную поддержку непроверенной. Время рукопожатия QIFC не указывается в качестве времени ТКП. Каждое измерение начинается с отдельного процесса/соединения. Теплое опцион не требует повторного использования связи для связуемого клиента. Это обеспечивает согласованность сопоставления протоколов. Доклады включают в себя версии, возможности, проверку TLS и сроки QIFC, а данные истории/экспорта удаляют тела, запросы по URL и заголовки аутентификации. Обновить эти булавки и восстановить каждую поддерживаемую платформу при обновлении транспортной стопки или трастового магазина CA. Публикуемые артефакты и снимки источника неизменяемы. ## Основные ИУК Предварительная загрузка показывает только `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?)` | Отменить один активный/каучуковый инструмент или весь запуск. | | `diagnostics:get` / `get(id)` | Snapshot известного или сохраненного сообщения. | | `diagnostics:history` / `history()` | Местные исторические резюме. | | `diagnostics:removeHistory` / `removeHistory(id)` | Удалить выбранный предмет истории. | | `diagnostics:copy` / `copy(id, format)` | Main пишет отредактированный известный отчет в буфер обмена. | | `diagnostics:export` / `export(id, format)` | JSON/CSV/TXT с помощью диалога сохранения; дистрибьютор не может предоставить путь файловой системы. | | `diagnostics:import` / `import()` | Сборщик файлов коренного населения, размер/schema/depth Проверка и редактирование перед хранением. | | `diagnostics:progress` / `onProgress(callback)` | Решенные адреса, запуск/завершение инструмента, пакеты, хмель, образцы HTTP и завершение; возвращает неподписываемый звонок. | Никакая общая оболочка, файловая система или сеть API не подвергаются воздействию. Сохраняется возможность изоляции контекста, песчаного ящика, интеграции узла с отключенным конусом и существующего дистрибьютора CSP. Существующие контракты подключателя и проверка/исключения обновленного варианта не изменились. ## Бюджеты и местные данные - Один прогон, два активных инструмента, не более двух ПИ-семейных зондов за один инструмент; ТКП дополнительно ограничивает каждый адрес четырьмя соединениями. - Временная отсрочка на период действия обязательств 250–30000 ms; 1–100 пакеты, 1–20 повторяются, 1–40 хм, 1–16 Порты. Регулярные полеты останавливаются на пять минут, постоянные пинг - на тридцать минут. В субпроцессе индикатора есть еще один цоколь 180-секундный. - Производимый процесс обычно 256 KiB; HTTP орган образования 2 MiB; декомпрессированное тело 8 miB; HtTP очерченные заголовки; не ответные органы входят в историю. - Сохранять максимум пакетов 500/прогрессов, пять прогонов в памяти, тридцать репортеров истории и 10 MiB истории. В истории используется частный писатель `/diagnostics/history.json` (модель 0600). - Импорт является не более чем 2 MiB, схема 1, с ограничённым гнездом и подтвержденными результатами. Клетки CSV снимаются и префиксы формулы нейтрализованы. В докладах, хранящихся в системе /copied/exported, не учитываются запросы/фрагменты адресов, полномочия, печенье, заголовки аутентификаторов и сырые тела. Первичные детали показывают измеренные структурированные данные, а не улавливание пакетов или сохранение органа реагирования. - Отсутствие синхронизации облаков, автоматического входа в систему, изменения конфигурации сервера или агрессивного/отсутствующего сканирования. Пользователь выбирает цель /ports/resolver. ## Требования Платформы и проверка | Платформа | ICMP | Путь | Другие протоколы | | --- | --- | --- | --- | | Windows 10/11 | `ping.exe -4/-6` | `tracert.exe -4/-6`КС/СС | Спутаны curl.exe при этом HTTP/2 и HTTP/3. Локализованные поля RTT не зависят от слова PPtime. | | macOS | `/sbin/ping`, `/sbin/ping6` | `/usr/sbin/traceroute`, `/usr/sbin/traceroute6`, UDP; целая секунда ожидания | Связанная свертка с HTTP/2 и HTTP/3. | | Ubuntu/Linux | iputils `ping -4/-6` | стандартный `traceroute -4/-6`, СДП | Связанная свертка с HTTP/2 и HTTP/3; недостающие инструменты КС/СС/грузовые инструменты сообщаются отдельно. | Не было добавлено никакой новой зависимости от Npm. В процессе реализации используется узел, встроенный и существующий Ssh2 приложения. Она не устанавливает системные инструменты и не запрашивает административные права. Файерволы и ограничения ПДП могут помешать проведению испытания на предмет установления опоры; их нельзя вывести из одного лишь тайма. Автоматизированное покрытие `diagnosticsCore.test.js`, `diagnosticsNetwork.test.js`, `diagnosticsHttp.test.js` и `diagnosticsIpc.test.js`:: утверждение/IPv6 Буллы, местные/местные DNS УПД+ТКП, недостающие/двухсемейные ответы и ошибки решающих органов, КНАМЕ/согласие, аргументация/партизанная арматура ОС, ограниченные реальные процессы в отношении детей, заблокированные наблюдения КККП, реальные локальные наблюдения HTTP/1.1 и TLS h2, предельные значения для перенаправки/тела/timeouts/reuse, сжатие включено/унижено, HTTP3 Потенциал/успешный отказ/отклонение, местный трастовый фонд CA/mismatch/expiration и реальными IPv6 HTTP/HTPS, подсоединение TCP/refused/mock Время ожидания, настоящий WebSocket и SSH Рукопожатия, аннулированные до аутентизации/cleanup/partial :: результаты, офлайновое государство, частный исторический круглосуточный отказ/импорт/экспорт, доверие к ИПК и предварительная загрузка подписки. `npm test` проводит детерминистские тесты без публичных испытательных серверов. `npm run test:diagnostics:ui` запускает `scripts/smokeDiagnostics.js` в графическом рабочем столе Electron с использованием производства UI/preload/IPC и реальных местных HTTP/компрессионных зондов. Не связанные с этим услуги оказываются только в этом испытательном привязном устройстве. Он проверяет порядок навигации, результаты протокола, стойкость, CZ/DE/EN, обе темы, узкоизотопное перелив и предпочтения песчаного ящика. Если корпус устанавливает ELECTRON_RUN_AS_NODE, отключите его для этой команды. Текущая проверка рабочего времени охватывает контролируемые поставки QIFC, IPv4/IPv6, HTTPS на порту, не являющемся дефолтом, 404 ответы, TLS Несрабатывание и реклама Alt-Svc только для TCP. Каждый выпуск сопровождается результатами каждого строительства. Эксплицитные факультативные пределы: отсутствие независимой проверки DNSEC (требует полного подтверждения функционирования решающего органа/траст-анкерного цикла), отсутствие ревизии маяка (только время работы сервера/сети), отсутствие депрециированной ревизии 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 был выброшен; при подаче заявки зажимная арматура никогда не используется.