1

Странная проблема: у меня есть рабочий стол под управлением Ubuntu 10.04 за маршрутизатором Netgear WNR1000, выполняющим NAT. Я хотел бы иметь возможность ssh на рабочий стол с моего ноутбука (под управлением Windows 7 и Cygwin). Находясь дома, рабочий стол и ноутбук соединены по беспроводной связи (рабочий стол находится в другой комнате, чем маршрутизатор). sshd вроде бы работает нормально, так как ssh localhost с рабочего стола работает без проблем. Кроме того, ssh my.ip.address с моего ноутбука, когда он не находится за маршрутизатором, работает нормально (я пересылаю порт 22 на маршрутизаторе на мой рабочий стол). Тем не менее, ssh same.ip.address из локальной сети , не может с "Connection отказался". ssh 192.168.local.ip.address завершается ошибкой с другим сообщением "Время ожидания истекло". Я могу подключиться, если я сначала ssh к машине за пределами локальной сети.

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

1 ответ1

1

Частично эта проблема заключается в том, что ваш NAT-шлюз не выполняет закрепление NAT (иногда это называется "отражение NAT"). Именно тогда шлюз NAT позволяет клиенту на частной стороне подключаться к общедоступному IP-адресу NAT, и он достаточно умен, чтобы понять, что у него есть сопоставление портов, и, таким образом, перевернуть пакет обратно и отправить его на хост с отображением портов на приватная сторона NAT. Вы можете посмотреть, есть ли на вашем маршрутизаторе параметр для закрепления NAT, который нужно просто включить, но есть вероятность, что он просто не может этого сделать. Вы можете проверить, что у вас установлена последняя версия прошивки от Netgear (возможно, они исправили ее позже), или посмотреть, сможете ли вы запустить на своем Netgear дистрибутив встроенного ПО, например DD-WRT. Возможно, DD-WRT или какой-либо другой дистрибутив, поддерживающий вашу коробку Netgear, имеет надлежащий код закрепления NAT.

Другая часть этой проблемы заключается в том, что вы не можете напрямую подключиться с хоста на частной стороне NAT к другому хосту на частной стороне NAT, напрямую используя частные IP-адреса. Единственное, о чем я могу подумать, это то, что некоторые точки доступа Wi-Fi имеют флажок, чтобы отключить то, что называется «Intra-BSS Relay» спецификацией IEEE 802.11. Иногда пользовательский интерфейс может назвать это "включить изоляцию клиента" или "отключить связь между клиентом" или что-то в этом роде.

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