Невозможно перенаправить порт

Невозможно перенаправить порт

Я потратил день на поиски того, как перенаправить порт с моего маршрутизатора на мой ПК, но безуспешно. И теперь у меня нет зацепок... и я расстроен. Я видел много страниц с описаниями и возможными решениями, но почему-то не вижу правильного ответа. Так что извините, если это повторяющийся вопрос, я не так это вижу.

Вот что я пытаюсь сделать: я хочу иметь доступ к своему ПК дома, когда я на работе. Для этого я использую службу ddns.

Некоторые сценарии работают, а некоторые нет: Это моя «стандартная» конфигурация.

У меня два ПК, настольный и ноутбук. На обоих у меня есть SSH-сервер (bitvise) и SSH-клиент (PuTTY). На настольном компьютере установлена ​​Windows 10, а на ноутбуке — Windows 7. Я могу установить SSH-подключение с настольного компьютера на ноутбук и наоборот, что говорит мне, что порт 22 открыт на обоих компьютерах. Верно?

ISP
 |
ZyXEL VMG8324-B10A (forward port 22 to 192.168.1.105)
 | .1  (192.168.1.x)
 |
 +- .105 PC (desktop, W10, SSH server on port 22)
 |
 +- .107 PC (laptop, W7, SSH server on port 22)

Служба ddns позволяет мне подключаться к моей домашней сети. Если я пытаюсь подключиться к порту 80, я просто получаю экран входа в мой маршрутизатор, никаких проблем. Я даже пробовал это со вторым маршрутизатором, настроенным на порт 8080, и исходным сервером, перенаправляющим порт 8080 на этот второй сервер. Никаких проблем.

Вот как выглядит эта установка.

ISP
 |
ZyXEL VMG8324-B10A (forward port 8080 to 192.168.1.2)
 | .1  (192.168.1.x)
 |
 | .2
LinkSys E3000 (configuration available on port 8080)
 | .1  (10.233.1.x)

Мне удалось подключиться к конфигурации LinkSys (на порту 8080) через провайдера ddns. Никаких проблем. Верно?

Как было сказано ранее, я могу установить соединение между SSH-клиентом 192.168.1.105 и SSH-сервером 192.168.1.107, а также между SSH-клиентом 192.168.1.107 и SSH-сервером 192.168.1.105.

Но я не могу подключиться через ddns ни к одному SSH-серверу.

Теперь я вижу страницу конфигурации (порт 80) для ZyXEL и для LinkSys E3000 (переадресация порта 8080 работает). Почему не работает для порта 22?

Вот правила переадресации в ZyXEL:

# Status Name      WAN WAN_IP ServerIP      TriggerStart End TranslationStart End Protocol
1 active SSH       wan -      192.168.1.105 22           22   22           22   TCP/UDP
2 active http8080  wan -      192.168.1.105 8080         8080 8080         8080 TCP/UDP

Ничего странного. И SSH-связь между ПК и ноутбуком возможна, ничего странного. Где мне искать связь от ddns к ПК? Что я забыл?

Любые предложения приветствуются!

Редактировать: 5 сентября 2016 г.

Проблема решена! С помощью ответов ниже я смог решить некоторые проблемы с конфигурацией, и несколько минут назад мне удалось подключить RDC с моего Android к моему ПК. Здорово!

решение1

Вы написали, что находитесь внутри сети и происходит следующее:

Служба ddns позволяет мне подключаться к моей домашней сети. Если я пытаюсь подключиться к порту 80, я просто получаю экран входа в систему для моего маршрутизатора

Это означает, что ваш маршрутизатор не поддерживает NAT loopback. Чтобы правильно проверить переадресацию портов, вам нужно находиться вне локальной сети. Например, вы можете использовать свой телефон с мобильным широкополосным доступом для проверки.

Ping фильтруется по умолчанию на большинстве маршрутизаторов потребительского класса. Это, конечно, безопасность через неизвестность. Это также делает диагностику проблем неоправданно сложной, поэтому вы можете просто отключить эту опцию.

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

решение2

«Я могу установить SSH-подключение с настольного компьютера на ноутбук и наоборот, и это говорит мне, что порт 22 открыт на обоих компьютерах. Верно?»

Да. Это означает, что сервер SSH запущен, и никакой программный брандмауэр (на любой машине) не блокирует этот трафик.

Обратите внимание, что это не означает, что вы можете войти по SSH из другой сети. Брандмауэр Windows может применять разные правила в зависимости от того, является ли сеть «Частной», «Общественной» или «Гостевой». Поэтому то, что программный брандмауэр разрешает одно соединение, не означает, что другое соединение будет работать. Я не утверждаю, что это, скорее всего, является источником вашей проблемы, но если это так, то обнаружить это может быть очень сложно, если вы не задумываетесь об этом.

Позвольте мне также убедиться, что вы понимаете, что такое «открытый порт». Мы имеем в виду номера портов TCP и номера портов UDP. Эти «порты» — просто числа. Когда «порт» открыт, это означает, что к этому порту можно подключиться.

Итак, когда кто-то пытается отправить SSH-запрос на IP-адрес вашего дома, ваш интернет-провайдер добросовестно передаст этот трафик на маршрутизатор в вашем здании. Если результатом является успешное соединение, то порт открыт.

Теперь есть два способа, которыми маршрутизатор может обработать этот трафик, чтобы порт был открыт.

  • Один из таких способов — чтобы маршрутизатор запускал программу, которая отвечает на этот порт. Так, для порта 22 это обычно означает, что маршрутизатор запускает SSH-сервер. (А для порта 80 это обычно означает, что маршрутизатор запускает HTTP-сервер, который мы часто называем «веб-сервером».)

  • Другой возможный подход заключается в том, что маршрутизатор передает трафик другому устройству. Обычно это делается путем отправки трафика устройству в другой подсети. Когда устройство делает это, оно «маршрутизирует» трафик. Вот почему мы часто называем эти вещи «маршрутизатором».

Чтобы второй подход сработал, маршрутизатору необходимо знать, в какую систему отправлять трафик. Это можно сделать с помощью процесса, называемого «переадресацией портов». Вся «переадресация портов» на самом деле заключается в том, чтобы сообщить маршрутизатору, на какой номер порта ожидается поступление трафика, а затем в какую систему трафик отправляется.

Теперь, если вы проверите конфигурацию маршрутизатора, вы можете обнаружить, что раздел «переадресация портов» пуст. Так как же в этом случае можно маршрутизировать SSH? Ну, у многих маршрутизаторов есть раздел конфигурации, называемый «демилитаризованной зоной», очень часто сокращенно «DMZ». То, как работает эта DMZ, на самом деле является просто довольно специальным правилом для переадресации портов. В конечном итоге вы указываете, какой компьютер будет использовать маршрутизатор, и маршрутизатор будет отправлять все порты на этот компьютер, если только в разделе «переадресация портов» не указано более конкретное правило. Я думаю, что большинство маршрутизаторов обычно не помещают DMZ в раздел переадресации портов, возможно, потому, что конфигурация DMZ может заставить маршрутизатор пересылать IP-трафик, отличный от только от этих портов.

В общем, вы можете сделать только одно с входящим трафиком на порту 22. Хорошо, я предполагаю, что можно сделать больше, чем одно, например, направить трафик из офиса в Сиэтле на ноутбук, а трафик из Токио на настольный компьютер. Однако такие сложные настройки не распространены. Гораздо более распространенным было бы просто настроить переадресацию портов, чтобы она отправляла другой порт (например, 2222) на вашу другую машину и чтобы эта машина прослушивала нестандартный порт.

(Или маршрутизатор может выполнить некоторую трансляцию, чтобы входящий трафик на порт 2222 перенаправлялся на стандартный порт 22 другой машины. Но тогда машина, получающая трафик, даже не должна знать, что порт 2222 был использован. Сокрытие такой информации может сделать журналы менее полезными, и тогда вам придется помнить, что маршрутизатор выполняет такую ​​трансляцию. Вместо того, чтобы просто прослушивать порт 2222, все часто становится более ясно.)

Обратите внимание, что ICMP (используемый ping и множественными реализациями traceroute) не использует порт TCP или порт UDP. (ICMP находится выше IP. Однако, несмотря на то, что IP использует «уровень 3» сетевой модели OSI, ICMP на самом деле не может считаться протоколом, находящимся на «уровне 4» модели OSI, поскольку он не предоставляет типичную функцию отслеживания разговоров, которая, как правило, отличает протокол «уровня 4».)

Итак, теперь вы видите, что открытие порта 22 на маршрутизаторе не обязательно поможет обеим машинам получать трафик SSH.

Поймите, что ваш ZyXEL, скорее всего, имеет два адреса IPv4 (предполагая, что ваш Интернет использует IPv4). Один из них — 192.168.1.1. Этот адрес можно безопасно нам сообщить, потому что он указан вЗапрос предложений 1918. Другой — публичный адрес. Похоже, что этот адрес меняется (так как вы используете DynDNS). Не говорите нам этот адрес. (Для разговора вы можете сделать вид, что он начинается с "203.0.113.", что на самом деле является набором адресов, зарезервированных для примеров/документации, как отметилRFC 5735 страница 5.)

Вам может быть проще просто не использовать Dynamic DNS, а получить статический IP от вашего интернет-провайдера. Я знаю местного интернет-провайдера, который может выдать статический IP (клиенту) по запросу, бесплатно. Они могут захотеть взять с вас плату (и, если так, вы также можете спросить, какова цена за /29, который представляет собой блок из 8, из которых 5 обычно используются клиентом). Это не означает, что ваш маршрут Dynamic DNS не может работать, но я просто предлагаю еще один вариант для рассмотрения.

Служба ddns позволяет мне подключаться к моей домашней сети. Если я пытаюсь подключиться к порту 80, я просто получаю экран входа в систему моего маршрутизатора, никаких проблем.

Вы не сказали, какой IP-адрес вы используете при подключении к порту 80. Но поскольку вы сказали это сразу после разговора об использовании DDNS, похоже, вы говорите об использовании вашего публичного IP-адреса. Если это действительно так, то последний абзацОтвет Дэниела Б.вполне обоснованное предупреждение. Маршрутизаторы потребительского класса печально известны тем, что не имеют достаточной защиты для своих веб-интерфейсов, поэтому найдите опцию, которая указывает, что ваш веб-интерфейс должен быть доступен только с использованием проводного подключения LAN. (Не доверяйте ни подключениям из Интернета, ни Wi-Fi.)

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