Не могу переслать порт

912
PapaAtHome

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

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

0
Полные инструкции см. В разделе «Переадресация порта ZyXEL VMG8324-B10A для SSH] (http://portforward.com/english/routers/port_forwarding/ZyXEL/VMG8324-B10A/SSH.htm). DavidPostill 7 лет назад 0
Откуда вы пытались подключиться? Внутри вашей локальной сети? Daniel B 7 лет назад 1
@ Даниэль Б: Я пытался подключиться изнутри (ноутбук -> провайдер ddns -> ПК). PapaAtHome 7 лет назад 0
Просто обнаружил на работе, что не могу пропинговать свою домашнюю сеть. Также выяснилось, что traceroute с http://ping.eu/traceroute/ на мой домашний IP-адрес не работает. И я использую IP-адреса WAN, а не один изнутри, это было бы глупо. Может быть, пришло время задать некоторые вопросы моему провайдеру. PapaAtHome 7 лет назад 0
Только что получил удаленный доступ к порту 80 на ZyXEL! Конфигурация для доступа по http немного скрыта (меню «Обслуживание» -> «Удаленный MGMT»). Включил и протестировал доступ через мой смартфон. Получил форму авторизации. Достаточно хорошо для доказательства того, что служба ddns работает. Поэтому я снова выключил его. :-) PapaAtHome 7 лет назад 0

2 ответа на вопрос

0
Daniel B

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

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

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

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

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

Я не знаю, доступен ли порт 80 на стороне WAN ZyXEL, я нахожу документацию немного неясной по этому вопросу. Я обязательно закрою его, если смогу. Я использовал порт 80 и 8080 для тестирования. Я знаю, что он доступен внутри и на Linksys E3000, его конфигурация намного проще. Большое спасибо за предложение использовать мой мобильный телефон, я не думал об этом раньше! Сегодняшнее внешнее тестирование показало, что оно * не * работает, не на порту 80, а также на порте 22. Я подожду ответов и посоветуюсь от своего провайдера, прежде чем продолжить. PapaAtHome 7 лет назад 0
Это вероятно не доступно на стороне WAN. Однако это достигается исключительно с помощью правил брандмауэра. Правила, которые не применяются, потому что ваш пакет не приходит из Интернета. Это означает, что вам нужно «выполнить эксплойт самостоятельно». Что так же просто, как посещение веб-сайта. // Вы настроили переадресацию порта SSH на обоих маршрутизаторах? Вы также должны рассмотреть возможность избавления от двойного NAT, это не очень хорошая установка. Daniel B 7 лет назад 0
Предложение использовать мой телефон только что изменило ситуацию. Весь другой текст (в обоих ответах) очень полезен и информативен. Но умение эффективно и правильно тестировать стало для меня дорогой к успеху. PapaAtHome 7 лет назад 0
0
TOOGAM

«Я могу установить 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.)

Спасибо за расширенный ответ! И да, я намеренно не упомянул номер IP на стороне WAN, который является 203.0.113.256 ;-) ZyXEL использует порт 2222 для SSH, или он по крайней мере сообщил мне, что использует порт 2222 в тот момент, когда я перенаправил порт 22. Чего я не знаю, так это того, доступен ли этот номер порта на стороне WAN. Ответ Даниэля Б. важен, но я не могу понять, почему. Сегодня я проверил соединение с внешней стороны и не смог установить контакт. Я сделал запросы с моим IPS. PapaAtHome 7 лет назад 0
Да, конечно, ваш IP-адрес 203.0.113.256. Тем более, что последний октет максимально равен 255. Я предполагаю, что вы не хотели заканчивать последний комментарий «Системой предотвращения вторжений», а скорее «Интернет-провайдер». Вы могли бы извлечь выгоду из сетевого прослушивания / наблюдения; проверьте ваш роутер на такую ​​поддержку. В противном случае «netstat -na» может помочь показать, какие соединения были установлены. В основном, способ проверить, доступно ли соединение SSH, состоит в том, чтобы попытаться установить соединение. Если вы хотите получить больше информации, дайте нам больше вопросительных знаков. TOOGAM 7 лет назад 0
Спасибо за комментарий, вы мне уже очень помогли. Теперь я знаю, что ddns работает (см. Примечание в моем исходном сообщении). Я собираюсь попробовать SSH-соединение извне. Я буду держать вас в курсе моих успехов. Я буду следить за вашим замечанием о слежке за сетью. Но «netstat -na» покажет мне только соединения на ПК, на котором он работает. Для этого мне придется поискать документацию ZyXEL. Интернет-провайдер, да, Интернет-провайдер. PapaAtHome 7 лет назад 0