Нет маршрута к хосту: я могу подключиться по SSH к себе через IP, который мне назначил мой маршрутизатор, но не к себе через IP, который мне назначил мой интернет-провайдер.

Нет маршрута к хосту: я могу подключиться по SSH к себе через IP, который мне назначил мой маршрутизатор, но не к себе через IP, который мне назначил мой интернет-провайдер.

Я уверен, что на этот вопрос уже был дан ответ, но я не уверен, что искать. (Я пробую что-то вроде «telnet ubuntu ssh daemon unable to connect».)

  1. Я могу войти по SSH10.0.0.9
  2. Я могуtelnet 10.0.0.9 22
  3. sudo service ssh statusвключен
  4. /etc/hostsи /etc/hostnameматч.
  5. gufwвыключен.
  6. netstat -nat | grep 22показывает, 0.0.0:*есть LISTENи :::*есть LISTEN.
  7. Я считаю, что порт на маршрутизаторе открыт правильно.Перенаправление порта

Так какое недостающее звено мне нужно проверить, что я мог сделать неправильно? Почему я не могу sshв 65.x.x.x, когда я могу sshв 10.x.x.x?

Я буду очень признателен любому, кто может предоставить ссылку на существующий ответ или более подходящие условия поиска.


  • пример вывода tcpdump -n -i ${interface} tcp port ssh or tcpdump -n -i ${interface} host ${external_client_ip_addr}:

19:20:43.747445 IP 116.10.191.232.24689 > 10.0.0.9.22: Flags [.], ack 1, win 65535, length 0 19:20:43.747562 IP 116.10.191.232.24689 > 10.0.0.9.22: Flags [P.], seq 1:24, ack 1, win 65535, length 23 19:20:43.747575 IP 10.0.0.9.22 > 116.10.191.232.24689: Flags [.], ack 24, win 14600, length 0 19:20:43.759613 IP 10.0.0.9.22 > 116.10.191.232.24689: Flags [P.], seq 1:42, ack 24, win 14600, length 41 19:20:44.504741 IP 116.10.191.232.24689 > 10.0.0.9.22: Flags [P.], seq 24:832, ack 42, win 65494, length 808 19:20:44.504800 IP 10.0.0.9.22 > 116.10.191.232.24689: Flags [P.], seq 42:1026, ack 832, win 16968, length 984

OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to 67.x.x.x [67.x.x.x] port 22. debug1: connect to address 67.x.x.x port 22: No route to host ssh: connect to host 67.x.x.x port 22: No route to host

решение1

На снимке экрана, который вы разместили, показан "конечный порт" 23. Возможно, что это перенаправляет диапазон портов, но также возможно, что начальный и конечный порты относятся к "внешнему порту" и "внутреннему порту" соответственно, в этом случае у вас проблема. Попробуйте изменить "конечный порт" на 22. Также проверьте ваш /etc/hosts.{allow,deny}.

решение2

Мне кажется, что ваш провайдер блокирует порт 22, возможно, из-за Heartbleed, скорее всего, чтобы отпугнуть поставщиков бесплатных оболочек unix. Я бы посоветовал сопоставить его с другим внешним портом, посмотреть, изменится ли ситуация.

Связанный контент