Обычно это означает, что вы перенаправили порт на неправильный IP-адрес в локальной сети.
По умолчанию Ubuntu не фильтрует входящие попытки соединения с брандмауэром. Поэтому, если вы не изменили настройки брандмауэра в Ubuntu, попытка открыть соединение с любым портом TCP, от 1 до 65535, будет либо:
Это вызывает именно ту ситуацию, которую вы описали. Таким образом, вы, скорее всего, можете это исправить, убедившись, что порт перенаправляется на правильный IP-адрес в локальной сети.
... тогда вам придется устранить неполадки.
Правильно ли указан порт для локальной сети? То есть, если вы не изменили конфигурацию сервера SSH, установлен ли порт 57757 на стороне WAN для перенаправления на порт 22 на сервере OpenSSH? (Вы можете перепроверить это.)
Возможно, есть проблема с выбранным вами портом (57757). Попробуйте другой и посмотрите, работает ли это лучше.
(Если этого не произойдет, и вы продолжите выполнять эти инструкции, либо измените его обратно или замените «57757» ниже на новый номер.)
Попробуйте перезапустить сервер OpenSSH. Это может помочь, если есть проблемы с сетью. Если это не помогает, попробуйте перезагрузить маршрутизатор и кабельный / DSL / ISDN модем.
Если по какой-либо причине вы не можете перезапустить все три устройства, я рекомендую перезапустить все, что сможете. Если вы не можете перезапустить службу OpenSSH, по крайней мере, вы можете перезапустить службу и (более вероятно, исправить это) отключить интерфейс и снова запустить его.
Чтобы перезапустить сервер OpenSSH:
sudo restart ssh
Чтобы отключить сетевой интерфейс, сначала выясните, на каком интерфейсе он находится:
ifconfig
Как правило, для машины с одной картой Ethernet и / или одной беспроводной картой Ethernet есть, eth0
а беспроводная есть wlan0
.
Если вы хотите отключить и перезапустить проводное Ethernet-соединение, запустите:
sudo ifdown eth0
Затем запустите:
sudo ifup eth0
Кроме того, вы можете запустить:
sudo ifconfig eth0 down
С последующим:
sudo ifconfig eth0 up
Если машина использует NetworkManager для управления интерфейсом, на котором работает сервер OpenSSH, я все же рекомендую попробовать описанные выше способы, но вы также можете попробовать отключить и повторно подключиться в NetworkManager.
Для соединения Ethernet также попробуйте отсоединить кабель и снова подключить его. Для беспроводного соединения попробуйте выключить его с помощью аппаратного переключателя (если он есть) и снова включить.
Здесь происходит что-то странное, и ни одно из этого не занимает много времени - стоит быть внимательным, прежде чем предпринимать более кропотливые шаги по устранению неполадок.
Как вы пытаетесь получить к нему доступ со стороны глобальной сети? Если вы используете для этого машину в локальной сети (просто подключаясь из локальной сети к IP-адресу WAN вашего маршрутизатора), это поддерживается только для некоторых маршрутизаторов. В конце концов, задача маршрутизатора - маршрутизировать трафик между сторонами WAN и LAN, а не маршрутизировать трафик от одной стороны к себе. Поддержка подключения к перенаправленным портам на IP-адресе WAN из локальной сети - скорее исключение, чем правило, хотя многие домашние / офисные маршрутизаторы имеют эту функцию.
Поэтому, если вы не тестируете переадресацию порта с хоста на стороне WAN, вам следует это сделать. Ваши варианты для этого:
Подключите себя со стороны WAN. Это работает, если у вас есть доступ к машине, например, SSH-доступ к удаленной машине в школе, на работе, в доме друга или тому подобное.
Подключите тестовый компьютер между маршрутизатором и всем, что обеспечивает его подключение к Интернету. Если у вас есть кабельный / DSL / ISDN модем с портом Ethernet, и к нему подключен маршрутизатор, вы можете подключить коммутатор к модему и подключить маршрутизатор к коммутатору. Подключите компьютер к коммутатору. Сначала посмотрите, получает ли эта машина доступ в Интернет - в наши дни многие провайдеры предоставляют два или более отдельных IP-адреса. Если этого не произойдет , перейдите на страницу настройки вашего маршрутизатора и проверьте его маску подсети WAN IP и WAN , затем статически назначьте IP-адрес подключенному коммутатору компьютеру, который находится в той же подсети.
Этот метод имеет некоторые недостатки. Это боль! Кроме того, теоретически интернет-провайдер может неправильно настроить свою сеть, чтобы тестовая машина, подключенная к коммутатору, могла выходить в Интернет. (Если только ваш провайдер не намерен разрешить вам подключаться к нескольким WAN IP ивы выбрали WAN IP для тестовой машины, которую назначил вам ваш провайдер, и трафик между ним и истинным хостом WAN должен быть заблокирован / сброшен провайдером. Но у некоторых интернет-провайдеров есть странные практики, так что, кто знает?) Если это произойдет, это вряд ли вызовет серьезные проблемы (и даже если это произойдет, у вас есть подключение только на несколько минут). Тем не менее, это может рассматриваться как попытка получить дополнительный доступ за пределами вашей подписки, и, что более важно, если другой пользователь имеет такой же IP-адрес, это может помешать его соединению. Поэтому, если вы хотите попробовать этот методНе пытайтесь подключиться к Интернету с тестовой машины, немедленно остановитесь, если вы обнаружите, что тестовая машина может подключиться к Интернету, и не пытайтесь сделать это вообще, если это запрещено или не рекомендовано вашим провайдером. (И не используйте это, если сторона WAN вашего маршрутизатора является офисной локальной сетью, без предварительной консультации с сетевым администратором. Это не поставщик услуг Интернета, и не предполагается, что ресурсы предоставляются для предотвращения нежелательного доступа.)
Существует вариант этой техники, который иногда более уместен. Ваш маршрутизатор, вероятно, получает информацию о своем подключении - IP-адрес, маску подсети, IP-адрес шлюза (маршрутизатора) в глобальной сети, который он использует, когда он не знает, куда отправить что-либо, и информацию о DNS-серверах - от вашего Интернет-провайдер, через DHCP, через кабельный / DSL / ISDN модем. Вот почему вам необходимо подключить маршрутизатор к модему, чтобы придать ему необходимую конфигурацию, чтобы сделать результаты тестирования на стороне WAN значимыми. Но маршрутизатор обычно запоминает эту информацию, если он действительно подключен к сети на стороне глобальной сети. Таким образом, вы можете подключить маршрутизатор, модем и тестовый компьютер, но затем быстро ипрежде чем что-либо делать с тестовой машиной, кроме того, чтобы убедиться, что коммутатор видит его как подключенный , отключите модем.
Используйте бесплатный сервис в Интернете для проверки ваших портов. Поскольку вставка тестового компьютера между интерфейсом WAN вашего маршрутизатора и Интернетом (см. Выше) весьма сложна - и поскольку он покажет порт как доступный, даже если он недоступен из-за блокировки вашим провайдером (что также верно для подключения к WAN IP маршрутизатора со стороны локальной сети) - обычно лучше использовать веб-сервис сканирования портов.
Существует много служб сканирования портов. (Некоторые используют фразу «проверь свой брандмауэр», полагая, что большинство людей пытаются заблокировать, а не облегчить доступ.) Это одно из них. Если вы решите использовать его, нажмите « Продолжить» , введите 57757 в текстовое поле и нажмите « Использовать указанный настраиваемый зонд порта» . Для того, чтобы заставить сервер работать, вы хотите , чтобы он был «открытым». «Закрыт» означает, что порт доступен, но сервер не запущен (и поэтому попытка подключения была отклонена). «Скрытность» означает, что порт был недоступен - как если бы там не было никакой машины (или как если бы порт был переадресован там, где нет машины).
Итак, вы определили, что он действительно недоступен из Интернета. Потенциально вы можете отсканировать его (в идеале со стороны глобальной сети), чтобы получить подробную информацию, хотя часто это не дает полезной информации.
Если вы хотите сделать это, то на стороне WAN вы можете запустить:
sudo nmap -sS -sV -p57757 -vv WAN-IP
Если порт отображается как отфильтрованный, это подтверждает, что отправленные туда пакеты, вероятно, никуда не движутся (или блокируются / отбрасываются по пути).
Стоит проверить, не возникает ли проблема, связанная с тем, что порт, подключенный к глобальной сети, отличается от порта, который фактически прослушивает сервер. Переадресация порта 55757 в WAN на порт 22 на машине LAN должна заставить все работать нормально, но, возможно, где-то (сервер, клиент) что-то предполагает, что номер порта одинаков с точки зрения сервера и клиента.
Предположительно, вы не можете перенаправить порт 22 через маршрутизатор. Возможно, ваш интернет-провайдер блокирует этот порт. Но если вы можете сделать это, сделайте это!
В противном случае, вы можете сделать сервер OpenSSH действительно прослушивает порт 57757.
Для этого создайте резервную копию файла конфигурации сервера:
cd /etc/ssh
sudo cp sshd_config sshd_config.old
Затем отредактируйте его:
gksu gedit sshd_config
Или используйте консольный текстовый редактор, если на машине нет графического интерфейса:
sudo nano -w sshd_config
В верхней части файла появляется этот блок текста:
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes
Просто измените Port 22
строку вверху, чтобы сказать Port 57757
вместо этого.
Вы можете добавить порт, а не менять его. Тем не менее, я рекомендую тестировать с самой простой эффективной конфигурацией.
Смотрите man sshd_config
подробности о настройке сервера OpenSSH.
Сохраните файл, выйдите из текстового редактора и перезапустите сервер SSH:
sudo restart ssh
Теперь измените порт перенаправления на маршрутизаторе, чтобы порт 57757 переадресовывал на порт 57757 (не 22) на сервере OpenSSH, и посмотрите, доступен ли он из Интернета.
Если он все еще не работает, посмотрите, не блокирует ли брандмауэр Ubuntu трафик, исходящий из-за пределов локальной сети.
(Это маловероятно, если вы сами не настроили его таким образом, но если все ваши настройки верны и ни один из вышеперечисленных шагов не выявил ничего о проблеме, стоит проверить.)
Бегать:
sudo iptables -L
По умолчанию в Ubuntu вывод выглядит так:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Это простая разрешающая политика, по сути, эквивалентная отсутствию брандмауэра. (Действительно, если модуль брандмауэра netfilter не был скомпилирован в ваше ядро, ваша система будет работать так же, как и с указанными выше настройками, хотя iptables
команда, которая запрашивает netfilter
настройки, конечно же, не будет работать.)
Если ваша конфигурация не выглядит так, прочитайте, man iptables
чтобы выяснить, что они делают, и / или отредактируйте свой вопрос (или, если вы читаете эту статью с другим человеком с похожей проблемой, опубликуйте новый вопрос), чтобы включить их. Обратите внимание, что ваши iptables
правила могут раскрыть конфиденциальную информацию о вашей конфигурации. С практической точки зрения это обычно не так - с возможным исключением правил о конкретных хостах, которые заблокированы, или если ваша конфигурация очень плохая / ненадежная - обычно полезность этой информации для злоумышленника, особенно для машины на домашняя / офисная локальная сеть за NAT-маршрутизатором минимальна.