From b5781202c930a33ab24327bbd12673fb48138b74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jan 2026 12:22:36 -0500 Subject: [PATCH] Bump vitepress-plugin-llms from 1.9.3 to 1.10.0 (#793) * Bump vitepress-plugin-llms from 1.9.3 to 1.10.0 Bumps [vitepress-plugin-llms](https://github.com/okineadev/vitepress-plugin-llms) from 1.9.3 to 1.10.0. - [Release notes](https://github.com/okineadev/vitepress-plugin-llms/releases) - [Commits](https://github.com/okineadev/vitepress-plugin-llms/compare/v1.9.3...v1.10.0) --- updated-dependencies: - dependency-name: vitepress-plugin-llms dependency-version: 1.10.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Prettified Code! --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] --- docs/ru/config/dns.md | 42 ++++++++++---------- docs/ru/config/metrics.md | 1 + docs/ru/config/outbound.md | 6 +-- docs/ru/config/outbounds/dns.md | 1 + docs/ru/document/level-1/routing-with-dns.md | 2 +- package.json | 2 +- pnpm-lock.yaml | 18 ++++----- 7 files changed, 37 insertions(+), 35 deletions(-) diff --git a/docs/ru/config/dns.md b/docs/ru/config/dns.md index 0028fe4d..916f0d80 100644 --- a/docs/ru/config/dns.md +++ b/docs/ru/config/dns.md @@ -4,15 +4,15 @@ Встроенный модуль DNS в Xray имеет три основных назначения: -- На этапе маршрутизации (Routing): резолвинг доменов в IP и сопоставление правил на основе полученных IP для разделения трафика. Будет ли выполняться резолвинг и разделение трафика, зависит от значения `domainStrategy` в конфигурации модуля маршрутизации. Встроенный DNS-сервер используется для запросов только при установке следующих двух значений: - - "IPIfNonMatch": при запросе домена сначала выполняется сопоставление по правилам `domain`. Если совпадений нет, выполняется запрос к встроенному DNS-серверу для получения IP, после чего снова выполняется сопоставление правил маршрутизации по IP. - - "IPOnDemand": при обнаружении любого правила, основанного на IP, домен немедленно резолвится в IP для сопоставления. +- На этапе маршрутизации (Routing): резолвинг доменов в IP и сопоставление правил на основе полученных IP для разделения трафика. Будет ли выполняться резолвинг и разделение трафика, зависит от значения `domainStrategy` в конфигурации модуля маршрутизации. Встроенный DNS-сервер используется для запросов только при установке следующих двух значений: +- "IPIfNonMatch": при запросе домена сначала выполняется сопоставление по правилам `domain`. Если совпадений нет, выполняется запрос к встроенному DNS-серверу для получения IP, после чего снова выполняется сопоставление правил маршрутизации по IP. +- "IPOnDemand": при обнаружении любого правила, основанного на IP, домен немедленно резолвится в IP для сопоставления. -- Резолвинг целевого адреса для подключения: - - Например, в `freedom` Outbound, если `domainStrategy` установлен в `UseIP`, запрос, исходящий из этого Outbound, сначала будет разрешен в IP через встроенный сервер, а затем произойдет подключение. - - Например, в `sockopt`, если `domainStrategy` установлен в `UseIP`, системное подключение, инициированное этим Outbound, сначала будет разрешено в IP встроенным сервером. +- Резолвинг целевого адреса для подключения: +- Например, в `freedom` Outbound, если `domainStrategy` установлен в `UseIP`, запрос, исходящий из этого Outbound, сначала будет разрешен в IP через встроенный сервер, а затем произойдет подключение. +- Например, в `sockopt`, если `domainStrategy` установлен в `UseIP`, системное подключение, инициированное этим Outbound, сначала будет разрешено в IP встроенным сервером. -- Перехват DNS-трафика в режиме Transparent Proxy или работа в качестве рекурсивного DNS-сервера, открытого на порту 53. +- Перехват DNS-трафика в режиме Transparent Proxy или работа в качестве рекурсивного DNS-сервера, открытого на порту 53. ::: tip TIP 1 DNS-запросы, отправляемые встроенным DNS-сервером, автоматически перенаправляются в соответствии с конфигурацией маршрутизации (Routing). @@ -26,14 +26,14 @@ DNS-запросы, отправляемые встроенным DNS-серве Если запрашиваемый домен: -- Попадает в маппинг «домен - IP» или «домен - массив IP» в `hosts`, то этот IP или массив возвращается как результат DNS-резолвинга. -- Попадает в маппинг «домен - домен» в `hosts`, то значение (другой домен) становится текущим запрашиваемым доменом и снова проходит процесс обработки DNS, пока не будет получен IP или пустой ответ. -- Не попал в `hosts`, но попал в список доменов `domains` одного (или нескольких) DNS-серверов, то запрос выполняется через эти серверы в порядке приоритета правил. Если запрос к выбранному серверу не удался или `expectedIPs` не совпали, используется следующий подходящий сервер; в противном случае возвращается полученный IP. Если все подходящие серверы не смогли выполнить запрос или `expectedIPs` не совпали, компонент DNS: - - По умолчанию выполняет «DNS Fallback запрос»: последовательно опрашиваются серверы, которые «не использовались в предыдущем неудачном раунде и имеют `skipFallback` со значением по умолчанию `false`». Если запрос не удался или `expectedIPs` не совпали, возвращается пустой ответ; иначе — полученный IP. - - Если `disableFallback` установлено в `true`, «DNS Fallback запрос» не выполняется. -- Не попал ни в `hosts`, ни в списки `domains` DNS-серверов, то: - - По умолчанию последовательно используются «серверы с `skipFallback` по умолчанию `false`». Если первый выбранный сервер не смог выполнить запрос или `expectedIPs` не совпали, используется следующий; иначе возвращается IP. Если все выбранные серверы потерпели неудачу, возвращается пустой ответ. - - Если количество «серверов с `skipFallback` по умолчанию `false`» равно 0 или `disableFallback` установлено в `true`, используется первый DNS-сервер из конфигурации. При неудаче возвращается пустой ответ, при успехе — IP. +- Попадает в маппинг «домен - IP» или «домен - массив IP» в `hosts`, то этот IP или массив возвращается как результат DNS-резолвинга. +- Попадает в маппинг «домен - домен» в `hosts`, то значение (другой домен) становится текущим запрашиваемым доменом и снова проходит процесс обработки DNS, пока не будет получен IP или пустой ответ. +- Не попал в `hosts`, но попал в список доменов `domains` одного (или нескольких) DNS-серверов, то запрос выполняется через эти серверы в порядке приоритета правил. Если запрос к выбранному серверу не удался или `expectedIPs` не совпали, используется следующий подходящий сервер; в противном случае возвращается полученный IP. Если все подходящие серверы не смогли выполнить запрос или `expectedIPs` не совпали, компонент DNS: +- По умолчанию выполняет «DNS Fallback запрос»: последовательно опрашиваются серверы, которые «не использовались в предыдущем неудачном раунде и имеют `skipFallback` со значением по умолчанию `false`». Если запрос не удался или `expectedIPs` не совпали, возвращается пустой ответ; иначе — полученный IP. +- Если `disableFallback` установлено в `true`, «DNS Fallback запрос» не выполняется. +- Не попал ни в `hosts`, ни в списки `domains` DNS-серверов, то: +- По умолчанию последовательно используются «серверы с `skipFallback` по умолчанию `false`». Если первый выбранный сервер не смог выполнить запрос или `expectedIPs` не совпали, используется следующий; иначе возвращается IP. Если все выбранные серверы потерпели неудачу, возвращается пустой ответ. +- Если количество «серверов с `skipFallback` по умолчанию `false`» равно 0 или `disableFallback` установлено в `true`, используется первый DNS-сервер из конфигурации. При неудаче возвращается пустой ответ, при успехе — IP. ## DnsObject @@ -89,11 +89,11 @@ DNS-запросы, отправляемые встроенным DNS-серве Список статических IP. Значениями являются пары "домен": "адрес" или "домен": ["адрес 1","адрес 2"]. Адрес может быть IP или доменом. При резолвинге, если домен совпадает с записью в этом списке: -- Если адрес является IP, результатом будет этот IP. -- Если адрес является доменом, для получения IP будет использоваться этот новый домен, а не исходный. -- Если в адресе указано несколько IP и доменов, будет возвращен только первый домен, остальные IP и домены игнорируются. -- Если первое значение адреса начинается с решетки и цифры (например, `#3`), при использовании DNS Outbound ядро вернет пустой ответ и соответствующий `rcode` (код отказа), чтобы отклонить запрос. Если запрос пришел из внутреннего источника, он будет считаться неудачным. -- Если запрашиваемый домен совпадает с несколькими доменами в списке, возвращаются все связанные IP. +- Если адрес является IP, результатом будет этот IP. +- Если адрес является доменом, для получения IP будет использоваться этот новый домен, а не исходный. +- Если в адресе указано несколько IP и доменов, будет возвращен только первый домен, остальные IP и домены игнорируются. +- Если первое значение адреса начинается с решетки и цифры (например, `#3`), при использовании DNS Outbound ядро вернет пустой ответ и соответствующий `rcode` (код отказа), чтобы отклонить запрос. Если запрос пришел из внутреннего источника, он будет считаться неудачным. +- Если запрашиваемый домен совпадает с несколькими доменами в списке, возвращаются все связанные IP. Формат сопоставления (`domain:`, `full:` и т.д.) аналогичен `domain` в системе [маршрутизации](./routing.html#ruleobject). Отличие в том, что без префикса здесь по умолчанию используется `full:` (аналогично стандартному файлу hosts). @@ -351,4 +351,4 @@ DNS-запросы, отправляемые модулем DNS, бывают д > `serveStale`: true | false -> `serveExpiredTTL`: number \ No newline at end of file +> `serveExpiredTTL`: number diff --git a/docs/ru/config/metrics.md b/docs/ru/config/metrics.md index be214b01..0014104c 100644 --- a/docs/ru/config/metrics.md +++ b/docs/ru/config/metrics.md @@ -30,6 +30,7 @@ Перейдите по адресу `http://127.0.0.1:11111/debug/pprof/` или используйте `go tool pprof` для отладки. Для сообщения о проблемах с высоким потреблением памяти или утечками памяти необходимо предоставить файлы `/debug/pprof/heap` и `/debug/pprof/goroutine`. + ### expvars Перейдите по адресу `http://127.0.0.1:11111/debug/vars`. diff --git a/docs/ru/config/outbound.md b/docs/ru/config/outbound.md index 40f8bd06..247c6969 100644 --- a/docs/ru/config/outbound.md +++ b/docs/ru/config/outbound.md @@ -22,7 +22,7 @@ "streamSettings": {}, "proxySettings": { "tag": "another-outbound-tag", - "transportLayer": false + "transportLayer": false }, "mux": {} } @@ -79,8 +79,8 @@ Xray будет использовать случайный IP-адрес из ```json { - "tag": "another-outbound-tag", - "transportLayer": false + "tag": "another-outbound-tag", + "transportLayer": false } ``` diff --git a/docs/ru/config/outbounds/dns.md b/docs/ru/config/outbounds/dns.md index d1679349..444a373c 100644 --- a/docs/ru/config/outbounds/dns.md +++ b/docs/ru/config/outbounds/dns.md @@ -43,4 +43,5 @@ DNS — это исходящий протокол, который в основ Поскольку опция `nonIPQuery` по умолчанию отбрасывает (`drop`) все запросы, кроме A и AAAA, необходимо переключить её в режим `skip`, чтобы данная настройка могла вступить в силу (для типов, отличных от A/AAAA). Разумеется, можно не изменять `nonIPQuery` и использовать эту опцию исключительно для блокировки A или AAAA (отключение IPv4/IPv6), однако делать это **крайне не рекомендуется**. Для этих целей лучше использовать настройку `queryStrategy` во встроенном DNS. Внимание: если вы используете `blockTypes` только для блокировки A или AAAA, и при этом `nonIPQuery` установлен в значение `reject`, то блокировка также будет осуществляться путем возврата ответа DNS reject, а не простым отбрасыванием пакета. + ## Примеры конфигурации DNS diff --git a/docs/ru/document/level-1/routing-with-dns.md b/docs/ru/document/level-1/routing-with-dns.md index 8624e6fe..5d8bc366 100644 --- a/docs/ru/document/level-1/routing-with-dns.md +++ b/docs/ru/document/level-1/routing-with-dns.md @@ -286,4 +286,4 @@ Cloudflare Warp от "кибер-филантропа" Cloudflare идеальн Поэтому, если ваш клиент не умеет разделять трафик по приложениям (App split tunneling, доступно только на мобильных устройствах), любой метод обхода блокировок приведет к утечке вашего зарубежного IP. -В заключение хочу сказать: при обычных методах обхода блокировок утечка зарубежного IP практически неизбежна. Если вам требуется высокий уровень конфиденциальности, используйте Tor и подобные инструменты. Xray-core — это инструмент противодействия цензуре, ориентированный на пробивание "стен" (Firewall), а его возможности в области защиты приватности весьма ограничены. \ No newline at end of file +В заключение хочу сказать: при обычных методах обхода блокировок утечка зарубежного IP практически неизбежна. Если вам требуется высокий уровень конфиденциальности, используйте Tor и подобные инструменты. Xray-core — это инструмент противодействия цензуре, ориентированный на пробивание "стен" (Firewall), а его возможности в области защиты приватности весьма ограничены. diff --git a/package.json b/package.json index a260b686..d8fd7223 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "medium-zoom": "^1.1.0", "mermaid": "^11.12.2", "vitepress": "2.0.0-alpha.15", - "vitepress-plugin-llms": "^1.9.3", + "vitepress-plugin-llms": "^1.10.0", "vitepress-plugin-mermaid": "^2.0.17" }, "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b23a019..e821fa9d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 2.0.0-alpha.15 version: 2.0.0-alpha.15(postcss@8.5.6) vitepress-plugin-llms: - specifier: ^1.9.3 - version: 1.9.3 + specifier: ^1.10.0 + version: 1.10.0 vitepress-plugin-mermaid: specifier: ^2.0.17 version: 2.0.17(mermaid@11.12.2)(vitepress@2.0.0-alpha.15(postcss@8.5.6)) @@ -1192,8 +1192,8 @@ packages: path-data-parser@0.1.0: resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -1421,8 +1421,8 @@ packages: yaml: optional: true - vitepress-plugin-llms@1.9.3: - resolution: {integrity: sha512-iU6LQVGS35urNGW/RXHTtt9gj6kprV9ptJDX7ZiC+kgFtqiBMDo2bdXh2YG+KUGU3geKZWkWZcurhnrNCmofsA==} + vitepress-plugin-llms@1.10.0: + resolution: {integrity: sha512-dgD5KV8D9vXlQtAf/KUjSgr3QymH1fHT7XkQ/UuIqvIjnKdzZI+0gT3puGxUBuqgvlFjYWA6f8k80tXl6gwWkw==} vitepress-plugin-mermaid@2.0.17: resolution: {integrity: sha512-IUzYpwf61GC6k0XzfmAmNrLvMi9TRrVRMsUyCA8KNXhg/mQ1VqWnO0/tBVPiX5UoKF1mDUwqn5QV4qAJl6JnUg==} @@ -2728,7 +2728,7 @@ snapshots: path-data-parser@0.1.0: {} - path-to-regexp@8.3.0: {} + path-to-regexp@6.3.0: {} pathe@2.0.3: {} @@ -2981,7 +2981,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - vitepress-plugin-llms@1.9.3: + vitepress-plugin-llms@1.10.0: dependencies: gray-matter: 4.0.3 markdown-it: 14.1.0 @@ -2989,7 +2989,7 @@ snapshots: mdast-util-from-markdown: 2.0.2 millify: 6.1.0 minimatch: 10.1.1 - path-to-regexp: 8.3.0 + path-to-regexp: 6.3.0 picocolors: 1.1.1 pretty-bytes: 7.1.0 remark: 15.0.1