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

Вот что я пытаюсь сделать: я хочу иметь доступ к своему ПК дома, когда я на работе. Для этого я использую сервис 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 на мой ПК. Ницца!

2 ответа2

0

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

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

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

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

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

0

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

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

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

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

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

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

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

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

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

Теперь, если вы проверите конфигурацию вашего маршрутизатора, вы можете обнаружить, что ваш раздел "переадресация портов" пуст. Итак, как можно маршрутизировать SSH в этом случае? Ну, у многих маршрутизаторов есть раздел конфигурации, называемый "демилитаризованной зоной", очень часто сокращенно "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. Об этом адресе можно сказать нам безопасно, потому что это адрес, указанный в RFC 1918. Другой публичный адрес. Похоже, что этот адрес меняется (так как вы используете DynDNS). Не говорите нам этот адрес. (Для разговора вы можете сделать вид, что он начинается с «203.0.113.», Который на самом деле представляет собой набор адресов, зарезервированных для примеров / документации, как отмечено в RFC 5735, стр. 5. )

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .