ClashX: устранение тайм-аута соединения — порты, DNS и проверка узлов

Частые причины тайм-аута соединения

Тайм-аут в ClashX обычно вызван одной из следующих причин. Понимание источника проблемы поможет быстро её устранить:

  • Занятость порта — ClashX по умолчанию использует порты 7890 (HTTP) и 7891 (SOCKS5). Если эти порты заняты другим приложением, ClashX не сможет принимать трафик, и прокси перестанет работать.
  • DNS-отравление — В некоторых сетевых средах DNS-запросы перехватываются или подменяются, и доменные имена разрешаются на неверные IP-адреса. Это не позволяет ClashX подключиться к нужному прокси-серверу.
  • Недоступность узла — Прокси-узлы могут стать недоступными из-за обслуживания сервера, превышения лимита трафика или блокировки. Это самая распространённая причина тайм-аутов.
  • Блокировка брандмауэром — Встроенный брандмауэр macOS или сторонние программы безопасности могут блокировать сетевые подключения ClashX.

Шаг 1 — Проверьте настройки портов

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

Проверка занятости портов

Откройте Терминал и выполните команду для проверки порта 7890:

lsof -i :7890

Если есть вывод — порт уже занят. Посмотрите столбец COMMAND, чтобы определить программу, затем закройте её или смените порт ClashX.

Также проверьте SOCKS5-порт

lsof -i :7891

Просмотр системных настроек прокси

Убедитесь, что системный прокси macOS указывает на правильный порт:

# Проверить HTTP-прокси
networksetup -getwebproxy Wi-Fi

# Проверить SOCKS-прокси
networksetup -getsocksfirewallproxy Wi-Fi

Изменение портов ClashX

Если порт конфликтует, измените номера портов в конфигурации ClashX:

# config.yaml
port: 7892          # HTTP-прокси порт
socks-port: 7893    # SOCKS5-прокси порт

После изменения перезапустите ClashX.

Шаг 2 — Проверьте конфигурацию DNS

Неправильная настройка DNS — одна из главных причин тайм-аутов соединения.

Тест на утечку DNS

Перейдите на dnsleaktest.com и запустите стандартный тест, чтобы проверить, проходят ли DNS-запросы через прокси. Если обнаружены DNS-серверы вашего провайдера — есть утечка DNS.

fake-ip vs redir-host

ClashX поддерживает два режима улучшения DNS:

  • fake-ip (рекомендуется) — возвращает фиктивные IP-адреса, предотвращая DNS-отравление и ускоряя подключение.
  • redir-host — использует реальные IP-адреса для лучшей совместимости, но может быть подвержен DNS-отравлению.

Рекомендуемая конфигурация DNS

# config.yaml
dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - https://doh.pub/dns-query
    - https://dns.alidns.com/dns-query
  fallback:
    - https://1.1.1.1/dns-query
    - https://dns.google/dns-query
  fallback-filter:
    geoip: true
    geoip-code: CN

Очистка кеша DNS

После изменения настроек DNS рекомендуется очистить системный кеш:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Шаг 3 — Проверьте доступность узлов

Недоступность узлов — самая частая причина тайм-аутов. Следующие методы помогут быстро диагностировать проблему.

Тест задержки

В строке меню ClashX нажмите правой кнопкой мыши на списке узлов и выберите «Benchmark» или «Speed Test». Избегайте узлов с задержкой более 500 мс или отображающих «Timeout».

Переключение узлов

Попробуйте переключиться на узел с меньшей задержкой. В первую очередь выбирайте:

  • Узлы с задержкой менее 100 мс
  • Узлы, географически ближайшие к вам
  • Узлы с меньшей нагрузкой в непиковые часы

Обновление подписки

Если все узлы показывают тайм-аут, возможно, срок подписки истёк. Обновите её вручную:

# Обновление через Терминал (необязательно)
curl -o ~/.config/clash/config.yaml "ВАША_ССЫЛКА_ПОДПИСКИ"

Или выберите «Config» → «Update» в меню ClashX для обновления конфигурации.

Расширенная диагностика

Если предыдущие шаги не помогли, попробуйте расширенные методы диагностики.

Конфликт с брандмауэром и VPN

Проверьте, не блокирует ли брандмауэр macOS приложение ClashX:

# Проверить состояние брандмауэра
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

# Добавить ClashX в белый список брандмауэра
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ClashX.app

Если одновременно работает другое VPN-приложение (например, Tunnelblick, WireGuard), оно может конфликтовать с маршрутизацией ClashX. Отключите другие VPN перед тестированием.

Режим TUN

ClashX Pro поддерживает режим TUN (расширенный режим), который перехватывает весь системный трафик. Если в обычном режиме происходит тайм-аут, попробуйте включить TUN:

# config.yaml (ClashX Pro)
tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true

Проверка системных настроек прокси

Убедитесь, что в ClashX включена опция «Set as System Proxy». Также можно проверить вручную:

# Проверить работу прокси
curl -x http://127.0.0.1:7890 https://www.google.com -I

# Список всех сетевых служб
networksetup -listallnetworkservices

Часто задаваемые вопросы

В: После запуска ClashX постоянно отображается «Timeout». Что делать?

О: Сначала проверьте, работает ли интернет-подключение (открываются ли обычные сайты). Если сеть в порядке, следуйте 3-шаговому методу из этой статьи: проверьте порты, DNS и узлы. В большинстве случаев переключение узла решает проблему.

В: Почему после переключения узла всё равно тайм-аут?

О: Возможно, все узлы стали недоступны. Попробуйте обновить подписку для получения новых узлов или свяжитесь с провайдером для уточнения статуса сервиса.

В: Влияет ли режим fake-ip на доступ к локальным сайтам?

О: Нет, если правила маршрутизации настроены правильно. Убедитесь, что в конфигурации есть правила для прямого подключения к локальным доменам.

В: Как определить — проблема в узле или в локальной сети?

О: Выполните в Терминале ping 127.0.0.1, чтобы убедиться в работоспособности сетевого стека, затем выполните curl -x http://127.0.0.1:7890 https://www.google.com для проверки прокси. Если ping работает, а curl — нет, проблема в узле.