Я не серверный парень, и мои навыки работы с сетью немного устарели, так что это может быть простой вопрос. На совершенно новой машине с 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