У меня есть статический IP-адрес на VPN-маршрутизаторе Planet VRT-311S и порт 22 (UDP и TCP), перенаправленный на сервер Ubuntu в локальной сети. Я все еще не могу подключиться к серверу Ubuntu.
В настоящее время я использую следующую команду на внешнем компьютере:
ssh -p 22 <router's ip address>
Я все еще не могу подключиться к серверу Ubuntu. Как я могу решить эту проблему?
Устройство маршрутизации с общедоступным IP-адресом должно перенаправлять трафик порта 22 на сервер Ubuntu, который находится за брандмауэром. Если вы сообщите нам, что это за брандмауэр / граничное устройство, мы сможем указать вам более конкретное направление.
РЕДАКТИРОВАТЬ: Вам нужно будет убедиться, что трафик действительно отправляется на ваш сервер Ubuntu. Запустите tcpdump чтобы узнать, попадает ли SSH-трафик на ваш сервер. Если это не так, проблема с граничным маршрутизатором все еще существует. Если это так, то вы можете сосредоточиться на сервере Ubuntu. Как только вы это поймете, мы сможем вам больше помочь.
РЕДАКТИРОВАТЬ 2: Если вы настроили переадресацию порта для порта 22, маршрутизатор обрабатывает перевод всего трафика, привязанного к порту 22, на общедоступный IP-адрес и немедленно отправляет трафик на сервер Ubuntu. Затем сервер Ubuntu видит трафик, поступающий от маршрутизатора, и любые ответы на трафик порта 22 отправляются на маршрутизатор, который затем пересылает его вам. Маршрутизатор обрабатывает всю трансляцию трафика, поддерживая таблицу с указанием того, кто к какому порту обращается, и назначая уникальные сеансы каждому коммуниканту. Таким образом, даже несколько человек могут общаться с сервером Ubuntu через ssh, используя внешний IP-адрес.
Например: если у вас дома есть внешний IP-адрес 1.1.1.1, а ваш офисный маршрутизатор имеет внешний IP-адрес 2.2.2.2, а сервер Ubuntu имеет локальный IP-адрес 192.168.1.10 (за маршрутизатором 2.2.2.2), трафик идет так:
tdpdump здесь может оказаться излишним. Просто сделать telnet <yourip> 22
извне и telnet localhost 22
на вашем сервере ubuntu. Сервер Ssh должен немедленно ответить чем-то вроде «SSH-2.0-OpenSSH_5.8p1-hpn13v10».
Если telnet от localhost не работает, у вас проблемы с вашим ssh-сервером. Если Telnet от localhost работает, но не извне, это, вероятно, проблема, связанная с маршрутизатором. Если оба работают, это может быть проблема с вашим ssh-клиентом.
И еще одна догадка: проверьте правила вашего брандмауэра на сервере. Вы можете распечатать их, запустив /sbin/iptables -L
.
Обновите свой ответ результатами диагностики telnet и списком правил вашего брандмауэра, чтобы мы могли дать вам лучший совет.