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

привязка sshd к неправильному IPv6-адресу

Я установил sshd для привязки к определенному адресу IPv6 с этой строкой в ​​моем sshd_config

ListenAddress fd00::ba88:e3ff:fefb:7bf0

После тестирования я заметил, что больше не могу подключаться по IPv6. Проверка netstat показал, что по какой-то причине последние 16 бит адреса игнорируются и привязаны к несуществующему адресу.

$ sudo netstat -npl | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4944/sshd
tcp6       0      0 fd00::ba88:e3ff:fefb:22 :::*                    LISTEN      4944/sshd

Проверка ifconfig дает эти IPv6-адреса

$ ifconfig | grep inet6
      inet6 addr: fd00::ba88:e3ff:fefb:7bf0/64 Scope:Global
      inet6 addr: fe80::ba88:e3ff:fefb:7bf0/64 Scope:Link
      inet6 addr: ::1/128 Scope:Host

В чем я ошибся при настройке демона?

По умолчанию netstat будет усекать отображаемые IP-адреса таким образом, чтобы адрес и номер порта умещались в 23 символа. Если вы хотите, чтобы отображались полные адреса, вам необходимо предоставить -W или --wide флаг netstat

Если вы воспользуетесь этой командой, она должна показать вам, что sshd слушает адрес, который вы просили:

sudo netstat -nplW | grep sshd

Однако вам следует исправить назначенный вами адрес, поскольку он нарушает RFC 4193 и, вероятно, в какой-то момент вызовет у вас проблемы. RFC 4193 разработан для предотвращения конфликтов адресов, но если вы не следуете стандарту, он не предотвратит коллизии. Адрес, присвоенный согласно спецификации, может выглядеть так: fde8:ca75:a94b::ba88:e3ff:fefb:7bf0