SSH Linux с установленным клиентом/сервером OpenSSH; настройки зависят от дистрибутива

SSH не подключается к серверу по IPv6

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

По IPv4 SSH доступен, но по IPv6 не работает. Нужно проверить наличие глобального IPv6, маршрут, DNS-запись AAAA, прослушивание sshd и фильтрацию IPv6, не открывая сервер всему интернету.

В этой статье
  1. Как распознать проблему и когда применять инструкции
  2. Причины и признаки
  3. Подробная проверка и безопасное решение
  4. Как проверить результат и что делать, если не помогло

#Как распознать проблему и когда применять инструкции

По IPv4 SSH доступен, но по IPv6 не работает. Нужно проверить наличие глобального IPv6, маршрут, DNS-запись AAAA, прослушивание sshd и фильтрацию IPv6, не открывая сервер всему интернету. Уточните модель/сборку системы, наличие резервной копии и способ восстановить доступ, прежде чем применять действия.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
У узла нет глобального IPv6Адрес только fe80:: или вообще отсутствуетip -6 addr не показывает глобального адресаСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
DNS направляет на старый IPv6AAAA не совпадает с текущим адресом сервераping -6 идёт на другой адресСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
sshd не слушает IPv6AddressFamily inet или ListenAddress привязан к IPv4ss -lnt показывает только 0.0.0.0Смотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.

#Подробная проверка и безопасное решение

  1. Шаг 1. Сравните работу IPv4 и IPv6 с одного клиентаОткройте терминал клиента Linux/macOS. Ключи -4 и -6 принудительно выбирают семейство адресов; замените имя и логин. Если IPv4 работает, сохраните этот канал на время проверки.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    ssh -4 -o ConnectTimeout=8 user@server.example.org
  1. Шаг 2. Проверьте конкретно IPv6 и запишите ошибкуВ том же клиентском терминале выполните вторую проверку. Network is unreachable означает отсутствие маршрута, Connection refused — отсутствие слушателя/отказ; тайм-аут может указывать на фильтрацию. Не изменяйте firewall до диагностики.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    ssh -6 -vv -o ConnectTimeout=8 user@server.example.org
  1. Шаг 3. Посмотрите адреса на сервереВ действующем IPv4 SSH-сеансе или консоли провайдера проверьте интерфейсы. Для подключения из интернета нужен маршрутизируемый глобальный IPv6; адрес fe80:: действует лишь в пределах канала.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    ip -6 addr show scope global
  1. Шаг 4. Проверьте путь и DNSНа клиенте найдите AAAA для имени и сравните с глобальным адресом сервера. getent ahostsv6 может отсутствовать в некоторых системах; используйте dig AAAA, если установлен пакет DNS-утилит.
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    getent ahostsv6 server.example.org
  1. Шаг 5. Определите фактический слушающий адрес sshdНа сервере с правами администратора посмотрите прослушивание. Если только 0.0.0.0:22, проверьте AddressFamily и ListenAddress в sshd_config; перед правкой сделайте копию и проверку sshd -t, сохраните IPv4-сеанс.
  2. Выполняется в терминале сервера с правами администратора; требуется разрешение владельца
    Linux · Терминал (Bash)КомандаНужен sudo
    Выполняется в терминале сервера с правами администратора; требуется разрешение владельца. Уточните фактические адреса и имена, прочитайте вывод и не выполняйте действия, если среда отличается от описанной.
    sudo ss -lntp | grep ":22"
  1. Шаг 6. Проверьте фильтрацию именно IPv6На сервере выясните, что реально применяется: nftables, ip6tables, ufw, firewalld и правила облачного провайдера. Просмотрите правила, но не добавляйте широкое разрешение на все адреса.
  2. Если nft не установлен, выясните действующий инструмент межсетевого экрана
    Linux · Терминал (Bash)КомандаНужен sudo
    Если nft не установлен, выясните действующий инструмент межсетевого экрана.
    sudo nft list ruleset
  1. Шаг 7. Сверьте путь из другой IPv6-сетиПовторите команду ssh -6 из сети с подтверждённым глобальным IPv6; проверьте подключение и журнал sshd. Если работает только из одной сети, ищите маршрутизацию или фильтр между клиентом и сервером.

#Как проверить результат и что делать, если не помогло

По IPv6 клиент подключается к тому же ожидаемому серверу, что и по IPv4, а команда ssh -6 работает с IPv6-сети. Проверка по IPv4 не доказывает работоспособность IPv6. Если симптомы не исчезли, сохраните точное сообщение об ошибке и выполненные проверки; не повторяйте опасные процедуры циклически.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.