Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 55 additions & 3 deletions docs/config/dns/hosts.ru.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# hosts

Блок **hosts** — встроенный аналог системного файла `/etc/hosts`. Mihomo отдаёт указанный IP для домена мгновенно, без обращения к внешним DNS-серверам.

```{.yaml linenums="1"}
hosts:
'*.clash.dev': 127.0.0.1
Expand All @@ -8,9 +10,59 @@ hosts:
baidu.com: google.com
```

Ключи поддерживают [маску доменов](../../handbook/syntax.md#domain-wildcards)
## Включение

Для активации блока `hosts` в корневом разделе `dns:` укажите:

```{.yaml linenums="1"}
dns:
use-hosts: true # читать внутренний блок hosts
use-system-hosts: true # читать /etc/hosts операционной системы
```

## Синтаксис масок

Значения поддерживают строки/массивы, перенаправление доменов не поддерживает массивы
Mihomo поддерживает три формы записи:

| Формат | Пример | Описание |
|--------|--------|----------|
| Точное совпадение | `'example.com': 1.1.1.1` | Срабатывает только на этот домен |
| Wildcard-маска | `'*.example.com': 2.2.2.2` | Покрывает поддомены, НЕ корень |
| Максимальный охват | `'+.example.com': 3.3.3.3` | Корень + все поддомены |

!!! note
Полные доменные имена имеют более высокий приоритет, чем доменные имена с использованием масок, например: foo.example.com > \*.example.com > .example.com
Полные доменные имена имеют приоритет над масками: `foo.example.com > *.example.com > +.example.com`

## Сценарии применения

### Локальная сеть (LAN)

Назначение понятных имён устройствам в домашней сети:

```{.yaml linenums="1"}
dns:
hosts:
'nas.lan': 192.168.1.10
'router.keenetic': 192.168.1.1
```

### Блокировка рекламы и телеметрии (null-routing)

Отправка нежелательных доменов в несуществующий адрес `0.0.0.0` — запросы обрываются на уровне ядра, без нагрузки на CPU:

```{.yaml linenums="1"}
dns:
hosts:
'*.telemetry.microsoft.com': 0.0.0.0
'*.doubleclick.net': 0.0.0.0
```

### Обход DNS-подмены провайдера (IP-pinning)

Если провайдер подменяет DNS-ответы (DNS-hijacking), но целевой IP доступен напрямую — пропишите его жёстко:

```{.yaml linenums="1"}
dns:
hosts:
'example.com': 185.199.108.153
```
14 changes: 10 additions & 4 deletions docs/config/dns/index.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,11 @@ dns:

Поддерживаемые алгоритмы:

- lru: Least Recently Used (наименее недавно использованный), значение по умолчанию
- arc: Adaptive Replacement Cache (адаптивная замена кэша)
- `lru`: Least Recently Used (наименее недавно использованный), значение по умолчанию
- `arc`: Adaptive Replacement Cache (адаптивная замена кэша)

!!! tip ""
`arc` эффективнее на неравномерных нагрузках, но потребляет немного больше памяти.

## prefer-h3

Expand Down Expand Up @@ -99,6 +102,9 @@ dns:

Когда параметр `fake-ip-filter-mode` установлен в значение `rule`, включается режим на основе правил, и синтаксис `fake-ip-filter` изменяется:

!!! warning "Ограничения режима rule"
В режиме `rule` список `fake-ip-filter` принимает **только доменные** типы правил: `DOMAIN*`, `GEOSITE`, `RULE-SET`, `MATCH`. Строки `IP-CIDR,...`, `GEOIP,...` или `IP-ASN,...` приведут к ошибке парсинга: *rule type 'IP-CIDR' not supported, only domain-based rules allowed*. Исключения по подсетям задавайте в блоке `rules:`, а не в DNS-фильтре.

```{.yaml linenums="1"}
dns:
fake-ip-filter-mode: rule
Expand All @@ -114,7 +120,7 @@ dns:

## fake-ip-ttl

Настройте TTL, возвращаемый запросами fakeip; не изменяйте его без крайней необходимости.
Настройте TTL, возвращаемый запросами fakeip (по умолчанию 1 секунда). Не изменяйте без крайней необходимости.

## use-hosts

Expand Down Expand Up @@ -170,7 +176,7 @@ DNS-сервер для разрешения доменных имен чере

Резервные серверы разрешения доменных имен, обычно используются зарубежные DNS-серверы для обеспечения достоверности результатов.

После настройки `fallback` по умолчанию включается `fallback-filter` с `geoip-code` равным cn.
После настройки `fallback` по умолчанию включается `fallback-filter` с `geoip-code` равным cn. Для пользователей в РФ замените `geoip-code` на `RU` в явной конфигурации `fallback-filter`.

## fallback-filter

Expand Down
75 changes: 68 additions & 7 deletions docs/config/dns/type.ru.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,123 @@
# Поддерживаемые типы
# Поддерживаемые типы DNS

В блоках `nameserver`, `fallback`, `default-nameserver` и `nameserver-policy` протокол определяется префиксом (схемой) перед адресом.

## UDP

Классический незашифрованный DNS. Префикс `udp://` можно опускать — запись `8.8.8.8` считается UDP. Самый быстрый, но легко перехватывается и подменяется провайдером.

```{.yaml linenums="1"}
- 223.5.5.5
- udp://223.5.5.5
```

## TCP

DNS через TCP-соединение. Медленнее UDP, но защищает от простейшего спуфинга (подмены пакетов на лету).

```{.yaml linenums="1"}
- tcp://8.8.8.8
```

## DNS over TLS
## DNS over TLS (DoT)

Трафик упаковывается в TLS-туннель. Провайдер видит факт подключения к серверу, но не содержимое запросов.

```{.yaml linenums="1"}
- tls://1.1.1.1
```

## DNS over HTTPS
## DNS over HTTPS (DoH)

Самый популярный шифрованный протокол. Запросы маскируются под обычный HTTPS-трафик, что затрудняет их блокировку.

```{.yaml linenums="1"}
- https://doh.pub/dns-query
```

## DNS over QUIC
## DNS over QUIC (DoQ)

Современный шифрованный протокол на базе QUIC. Сочетает свойства DoT/DoH со скоростью UDP.

```{.yaml linenums="1"}
- quic://dns.adguard.com:784
```

## system

Принудительное использование системных DNS-настроек ОС (файл `/etc/resolv.conf` или настройки KeeneticOS).

```{.yaml linenums="1"}
- system://
- system
```

## dhcp

Динамический подхват DNS-серверов, полученных роутером по DHCP от конкретного интерфейса провайдера.

```{.yaml linenums="1"}
- dhcp://en0
```

Только для cmfa, использует системный dns
`dhcp://system` использует системный DNS:

```{.yaml linenums="1"}
- dhcp://system
```

## rcode

Виртуальный тип, возвращающий клиенту статический DNS-ответ **без отправки запроса в интернет**. Используется в `nameserver-policy` для мгновенной блокировки или фильтрации.

```{.yaml linenums="1"}
- rcode://success # Нет ошибки
- rcode://format_error # Ошибка формата
- rcode://server_failure # Ошибка сервера
- rcode://name_error # Несуществующий домен
- rcode://name_error # NXDOMAIN — домен не существует
- rcode://not_implemented # Не реализовано
- rcode://refused # Запрос отклонен
```
```

!!! tip "Блокировка трекеров через rcode"
Используйте `rcode://name_error` в `nameserver-policy` для глухой блокировки рекламных и трекерных доменов быстрее и легче, чем через `hosts`.

## Дополнительные параметры

К URI публичных DNS-серверов можно добавлять хвост через `#` и `&`:

```{.yaml linenums="1"}
dns:
nameserver:
- 'https://8.8.8.8/dns-query#proxy&ecs=1.1.1.1/24&ecs-override=true'
proxies:
- name: proxy
type: ss
```

### Прокси/интерфейс для соединения

`#proxy` — использовать указанный прокси для DNS-запроса. `#RULES` — следовать правилам маршрутизации (аналог `respect-rules`).

!!! note ""
Для запросов через прокси настройте `proxy-server-nameserver`, чтобы избежать проблемы курицы и яйца.

### h3

Принудительный HTTP/3 для DoH-соединения. Не конфликтует с `prefer-h3`.

### skip-cert-verify

Пропуск проверки сертификата TLS.

### ecs / ecs-override

Указание подсети в EDNS Client Subnet. `ecs-override` принудительно заменяет адрес.

### disable-ipv4 / disable-ipv6

Отбрасывание A или AAAA ответов соответственно.

### disable-qtype-\<int\>

Отбрасывание определённых типов ответов. Например, `disable-qtype-65` блокирует разрешение HTTPS (TYPE65).
22 changes: 19 additions & 3 deletions docs/config/experimental.ru.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Экспериментальная конфигурация

Блок **experimental** содержит низкоуровневые параметры оптимизации сетевого стека Go (движок `quic-go`) и преобразования IP-адресов. Может влиять на скорость QUIC-трафика (HTTP/3) и совместимость с ТСПУ провайдера.

```{.yaml linenums="1"}
experimental:
quic-go-disable-gso: false
Expand All @@ -9,12 +11,26 @@ experimental:

## quic-go-disable-gso

Отключить `GSO`
Отключение механизма Generic Segmentation Offload (GSO) для QUIC-трафика.

- `false` (по умолчанию) — GSO включён. Сетевой стек формирует крупные блоки данных, нарезка на пакеты ложится на аппаратный чип сетевой карты. Рекомендуется для большинства роутеров.
- `true` — GSO отключён. Может помочь при обрывах голосовых звонков или ошибках в логе на старых драйверах Linux.

## quic-go-disable-ecn

Отключить `ECN`
Отключение Explicit Congestion Notification — механизма явного уведомления о перегрузках.

- `false` (по умолчанию) — ECN активен. Позволяет роутерам и серверам предупреждать друг друга о перегрузках без сброса пакетов, снижая задержки.
- `true` — ECN отключён. Рекомендуется, если QUIC-протоколы (Hysteria2, TUIC) работают нестабильно — некоторые ТСПУ некорректно обрабатывают ECN-флаги.

!!! warning "Для РФ"
Если Hysteria2 или TUIC работают с «плавающей» скоростью, попробуйте `quic-go-disable-ecn: true`.

## dialer-ip4p-convert

Включить преобразование адреса [IP4P](https://github.com/heiher/natmap/wiki/faq#域名访问是如何实现的)
Включение преобразования адресов формата [IP4P](https://github.com/heiher/natmap/wiki/faq#域名访问是如何实现的).

IP4P упаковывает IPv4-адрес и порт в один IPv6-адрес. Применяется в P2P-сетях (торренты, игровые лобби) для обхода NAT без UPnP.

- `false` (по умолчанию) — выключено. Оставляйте, если нет задач под P2P/IP4P.
- `true` — включено. Mihomo конвертирует IP4P-адреса на лету для корректной маршрутизации.
8 changes: 7 additions & 1 deletion docs/config/general.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ unified-delay: true

## TCP одновременность

Включить одновременные TCP-соединения, которые будут использовать все IP-адреса, разрешенные DNS для соединений, используя первое успешное соединение.
Включить одновременные TCP-соединения, которые будут использовать все IP-адреса, разрешенные DNS для соединений, используя первое успешное соединение. Значительно ускоряет открытие сайтов.

Возможные значения: `true/false`

Expand Down Expand Up @@ -298,6 +298,9 @@ geodata-mode: true
* `standard`: стандартный загрузчик
* `memconservative`: загрузчик, оптимизированный для устройств с ограниченной памятью (значение по умолчанию)

!!! tip "Для домашних роутеров"
Режим `memconservative` удерживает базы гео-данных на флеш-накопителе, загружая в ОЗУ только нужные фрагменты. Предотвращает падение ядра по нехватке памяти (OOM). Настоятельно рекомендуется для Keenetic и других роутеров с ограниченной памятью.

```{.yaml linenums="1"}
geodata-loader: memconservative
```
Expand All @@ -308,6 +311,9 @@ geodata-loader: memconservative
geo-auto-update: false
```

!!! warning "Для Keenetic с XKeen"
Если вы используете XKeen, установите `geo-auto-update: false` — XKeen сам обновляет гео-базы через свои скрипты по крону. Включение автообновления в ядре может привести к конфликтам.

Интервал обновления в часах

```{.yaml linenums="1"}
Expand Down
3 changes: 3 additions & 0 deletions docs/config/inbound/tun.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ tun:

Автоматическая настройка глобальной маршрутизации, автоматически направляет весь глобальный трафик в TUN-устройство

!!! warning "Для Keenetic + XKeen"
Включение `auto-route: true` на роутере с XKeen часто означает захват дефолтного маршрута всей системы и конфликтует с цепочкой **nftables → nfqws → tproxy Mihomo**. Это может привести к петлям маршрутизации или обходу nfqws. На типичном Keenetic+XKeen чаще используют прозрачный tproxy-порт, а не полный TUN-захват. Перед включением TUN ознакомьтесь со схемой маршрутов и mark.

## auto-redirect

Поддерживается только на Linux, автоматически настраивает iptables/nftables для перенаправления TCP-соединений, требует включенного `auto-route`
Expand Down
20 changes: 15 additions & 5 deletions docs/config/ntp/index.ru.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# NTP

Блок **ntp** запускает встроенную службу синхронизации времени внутри ядра Mihomo. Точное время необходимо для проверки TLS-сертификатов, временных токенов (VMess/VLESS) и успешного рукопожатия с удалённым VPS.

```{.yaml linenums="1"}
ntp:
enable: true
Expand All @@ -11,20 +13,28 @@ ntp:

## enable

Включение службы NTP
Включение или выключение встроенной службы NTP.

## write-to-system

Синхронизировать со временем системы, требуется запуск от root или с правами администратора.
Синхронизация полученного времени с системными часами устройства.

!!! warning "Права доступа"
Для работы параметра требуется запуск от `root` (Linux/Entware) или Администратора (Windows).

## server

Адрес сервера NTP, по умолчанию `time.apple.com`
Хост NTP-сервера. Примеры: `pool.ntp.org`, `time.google.com`, `time.apple.com`.

Указывайте реальное имя хоста, а не URL со схемой `http://`.

## port

Порт сервера NTP, по умолчанию `123`
Порт NTP-сервера. Стандартный — `123` (UDP). Изменение без необходимости на стороне сервера не требуется.

## interval

Интервал синхронизации времени в минутах, по умолчанию 30 минут
Интервал между синхронизациями в минутах. По умолчанию — 30.

!!! tip "Для Keenetic"
На Keenetic уже есть встроенная синхронизация времени. Но если при загрузке или сбое сети время «уплывает», NTP-модуль Mihomo служит страховкой: при первом подключении к сети он корректирует часы, предотвращая `TLS handshake timeout` на прокси-узлах.
3 changes: 3 additions & 0 deletions docs/config/proxies/index.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ proxies:

Версия IP, используемая прокси для исходящих соединений. Если это не direct, влияет на IP-адрес, используемый при разрешении имени сервера.

!!! tip "Совместимость с nfqws"
При использовании nfqws2 рекомендуется `ipv4` или `ipv4-prefer` — меньше обходов через IPv6, которые nfqws может не учитывать.

Допустимые значения: `dual`/`ipv4`/`ipv6`/`ipv4-prefer`/`ipv6-prefer`, по умолчанию `dual`

* ipv4: Использовать только IPv4
Expand Down
Loading