Прослушивание портов замазочного туннеля не работает

Цель состоит в том, чтобы подключиться к моему домашнему компьютеру извне. Интернет-провайдер блокирует все порты (и требует $$$ за бизнес-пакет со статическим IP-адресом), поэтому простая переадресация портов на домашнем маршрутизаторе не работает.

Я использовал шпатлевку для туннелирования порта прослушивания на удаленный сервер: R2221:###.###.###.###:2221 (чтобы упростить задачу, тестовый сервер представляет собой простой ftp-сервер, работающий на моем машина с домашними окнами) (должен быть указан весь IP-адрес - если OpenSSH 1.0 работает на подстановочном адресе linux box, это приводит к отказу в подключении) (GatewayPorts включены).

Netstat -a подтверждает, что порт 2221 на Linux-боксе открыт и прослушивается. Однако всякий раз, когда я пытаюсь подключиться к этому порту, он просто зависает. FTP-клиент командной строки говорит «подключен к ###.###.###.###» и все. Запуск netstat снова показывает десятки открытых подключений к порту 2221, все они исходят из моего окна Windows (я пытался использовать браузер, а также ftp-клиент командной строки).

Какой шаг я пропустил?

Пробовал с RDP, VNC и FTP - все они зависают, все подключаются при подключении через мою домашнюю сеть (или мой домашний роутер).

РЕДАКТИРОВАТЬ Настройка выглядит следующим образом:

На ПК 1 (Windows) работает служба FTP на порту 2221. Он использует PuTTY для туннелирования прослушивающего порта на ПК 2 (Linux). ПК 2 показывает порт прослушивания при запуске netstat. Подключение к порту 2221 на ПК 2 либо с ПК 2, либо с ПК 3 приводит к зависанию.

РЕДАКТИРОВАТЬ 2 И это сработало. Это исправило использование 127.0.0.1 вместо IP-адреса удаленной машины. Большое спасибо.


person user2971878    schedule 21.09.2014    source источник


Ответы (1)


Вы уверены, что ваша команда -R верна? Из того, что вы говорите, я полагаю, что команда должна быть R2221:127.0.0.1:2221. Параметр -R ssh в форме port:host:hostport делает следующее: открывает порт port на удаленной стороне и перенаправляет соединение с этим портом на локальный адрес host:hostport, и это соединение сделал с локальной машины.

Чтобы ваш локальный компьютер (тот, на котором работает ssh-клиент, например, PuTTY) подключался к вашему локальному FTP-серверу, работающему на том же компьютере, используйте 127.0.0.1 в качестве адреса.

Это также объясняет, почему вы видите странное поведение: когда вы на самом деле подключаетесь к xxx.xxx.xxx.xxx:2221, он перенаправляет соединение на тот же адрес xxx.xxx.xxx.xxx:2221, и вы получаете своего рода петлю. .

person afenster    schedule 21.09.2014
comment
Да, я уверен, что это удаленный порт (и я использую PuTTY, а не командную строку для его создания). Но позвольте мне попробовать 127.0.0.1... - person user2971878; 21.09.2014
comment
Позвольте мне попытаться понять ваши сетевые настройки. У вас есть домашний компьютер с Windows и вы хотите получить доступ к его порту с любого удаленного адреса. Вы ssh (используя PuTTY) на удаленный сервер с R2221:127.0.0.1:2221. После этого порт 2221 на удаленном сервере будет перенаправлен на порт 2221 вашего локального компьютера с Windows, что, как я полагаю, вам нужно. - person afenster; 21.09.2014
comment
Что касается неиспользования командной строки, параметры переадресации портов PuTTY просто имитируют соответствующие параметры ssh (-R в вашем случае), поэтому чтение ssh(1) руководства по параметру -R даст гораздо больше информации о предмете, чем может дать документация PuTTY :) - person afenster; 21.09.2014