Назад | Перейти на главную страницу

Подключение к SSH-порту 22 через доменное имя, но не через публичный IP-адрес

У меня есть маршрутизатор Draytek, настроенный для перенаправления SSH-соединений на внутренний сервер только с определенных IP-адресов. Мы с клиентами можем успешно подключаться извне, за исключением того, кто не может подключиться к общедоступному статическому IP-адресу нашего маршрутизатора, а только к его доменному имени. router.domain.com Должен ли маршрутизатор иметь назначенное ему доменное имя ?? Не совсем уверен, почему они могут подключаться только к доменному имени, а не к ip - совет оценен

Основываясь на ограниченной информации в вопросе, невозможно точно сказать, почему подключение с использованием имени хоста работает, но подключение к тому же самому серверу с использованием IP-адреса не работает.

Однако я предполагаю, что наиболее вероятным объяснением является то, что клиент зависит от DNS64 + NAT64 для подключения к серверу. Поскольку адреса IPv4 закончились, развертывание различных типов решений CGN стало более распространенным. Один из них - DNS64 + NAT64, и у них есть ограничение, заключающееся в том, что клиенты не могут подключаться к серверам IPv4 по IP-адресу.

Что произойдет, когда такой клиент подключится к серверу, поддерживающему только IPv4, следующее:

  • Клиент отправляет запрос AAAA для server.example.com
  • Сервер DNS64 отправляет запрос AAAA для server.example.com
  • Авторитетный сервер отправляет НЕТ.
  • Сервер DNS64 отправляет запрос для server.example.com
  • Авторитетный сервер отвечает 192.0.2.1
  • DNS64 переводит 192.0.2.1 в 64:ff9b::192.0.2.1
  • Клиент подключается к NAT64 по адресу 64:ff9b::192.0.2.1
  • NAT64 переводит 64:ff9b::192.0.2.1 к 192.0.2.1

Если клиент - OpenSSH, вы можете использовать ssh -v на стороне клиента, чтобы узнать, к какому IP-адресу он подключается. Если сервер поддерживает только IPv4, а клиент подключается к IPv6-адресу, когда ему задано имя хоста, вы будете знать, что клиент зависит от DNS64 + NAT64.

Возможные меры, если вы не можете подключиться к IP-адресу из-за NAT64:

  • Включите IPv6 на сервере и создайте запись AAAA вместе с текущей записью A. Теперь клиент может подключиться напрямую к IPv6-адресу сервера. Это предпочтительный метод, даже если клиент продолжает использовать соединения по имени хоста, поскольку он удалит зависимость от NAT64.
  • Оставьте как есть. Вы сказали, что соединения с использованием имени хоста сервера работают. Таким образом, DNS64 + NAT64 работает по назначению, и нет необходимости что-либо менять немедленно. В большинстве случаев соединения с использованием имени хоста считаются лучшей практикой, чем подключение напрямую к IP-адресу, поэтому нет реальной причины прекращать использование имени хоста.
  • Попросите клиента подключиться с использованием имени хоста один раз, чтобы узнать IPv6-адрес, с которым сопоставлен DNS64, а затем продолжите подключение через NAT64, используя этот IPv6-адрес. (Работает, но кажется немного глупым)
  • Попросите клиента использовать NAT464. Это решение, предназначенное для случая, когда клиентское программное обеспечение поддерживает только IPv4, но клиент подключен к сети доступа только с IPv6. Однако, если соединения по имени хоста уже работают, вам не нужен NAT464, и вам лучше использовать одно из других решений.