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

Привязка к 0.0.0.0 принимает только локальные адреса

Я не серверный парень, и мои навыки работы с сетью немного устарели, так что это может быть простой вопрос. На совершенно новой машине с Archlinux я установил sshd и сказал ему привязаться к 0.0.0.0:9223. После запуска я использовал netstat, чтобы подтвердить, что он прослушивает *: 9223.

Выполнение "ssh -p 9223 localhost" подключилось нормально, но удаленное подключение не удалось. Затем я попробовал "ssh -p 9223 [REMOTE_IP]" на сервере, и это не удалось.

После попытки найти источник проблемы и неудачи я установил sshd для привязки к [REMOTE_IP], и внезапно все заработало.

Итак, мой вопрос: что заставит сокет, привязанный к 0.0.0.0, игнорировать соединения с IP-адреса интерфейса eth0?

Возможно, ваш интерфейс eth0 использует протокол IPv6. Когда вы настраиваете ssh-сервер с ListenAddress 0.0.0.0 в /etc/ssh/sshd_config вы отключили протокол IPv6. netstat тогда есть только одна запись для ssh, начиная с tcp. Добавить строку ListenAddress :: также слушать tcp6. netstat должен сообщить вам две записи для ssh-сервера, один на tcp6 :::9223 и один на tcp 0.0.0.0:9223