Мне нужно получить доступ к FTP-серверу на работе, но сервер будет принимать только локальные IP-адреса. Я не могу получить к нему доступ с моей домашней машины. Я смог подключиться через ssh к своей рабочей машине Unix через PuTTY и оттуда успешно открыть консольное FTP-соединение с FTP-сервером.
Я мог бы работать через это, но я бы предпочел не делать этого, поскольку это очень громоздко для меня. Я бы предпочел туннелировать FTP-соединение через рабочую машину через PuTTY, чтобы я мог использовать свой FTP-клиент, FileZilla, для удовлетворения моих потребностей FTP на сервере. Конечно это через порт 21.
Я знаю, что PuTTY способен переадресовывать порты через ssh, я просто не знаю, как его использовать.
Домой -> Работа -> Сервер.
Ответы:
Используйте SOCKS прокси.
Исходный порт теперь (локально) является прокси-сервером SOCKS. Настройте FileZilla для использования его в качестве SOCKS-прокси (см. Ниже). Через него откроется соединение с хостом, с которым вы работаете по ssh (на вашей рабочей машине), а затем подключитесь оттуда к любому IP-адресу, который вы ему предоставите. Работает для всего с поддержкой SOCKS, включая FTP.
Остальная часть конфигурации PuTTY остается неизменной - настройте порты (как показано) и затем подключите этот сеанс PuTTY к вашей рабочей машине через SSH.
Вот как должна выглядеть опция FileZilla:
Когда вы устанавливаете цель для FTP-соединения, используйте IP-адрес, а не имя хоста, потому что разрешение DNS может все еще происходить локально, и вы этого не хотите.
Все это безопасно и невидимо - оно выглядит как простое SSH-соединение со всем остальным в сети.
NB. Если вы хотите сделать это из командной строки, вы можете использовать PuTTY
plink.exe
для следующих действий:он достигает того же самого без необходимости создавать профиль PuTTY или использовать графический интерфейс.
источник
Во-первых, гораздо проще / возможно, лучше использовать SCP. Поскольку у вас есть SSH, вы также можете иметь доступ к SCP. Но я не знаю вашу сеть, так что к вопросу ...
Во-первых, убедитесь, что ваш клиент настроен на использование FTP в режиме ACTIVE. Я хотел предложить использовать пассивный режим, но вы не можете контролировать, какие порты будут использоваться.
Во-вторых, ограничьте количество портов, которые ваш FTP-клиент будет использовать в активном режиме, до нескольких. Меньше 10 будет хорошо. И вот почему.
В-третьих, создайте переадресацию удаленных портов для всех этих портов.
Это должно заставить его работать
источник
Вот как просмотреть файловую систему внутреннего сервера (за NAT), с помощью FileZilla или Nautilus File Manager - с использованием SFTP (сеанс SSH на TCP-порту 22) через сервер шлюза (вне NAT):
Затем создайте новое соединение.
В FileZilla:
Или в Наутилусе:
sftp://127.0.0.1:9090/
, затем вам будет предложено ввести учетные данные внутреннего сервера.Теперь вы сможете просматривать внутреннюю файловую систему сервера.
Примечание: Как вы можете видеть, он не требует установки SOCKS Proxy ни в Putty, ни в FileZilla :)
источник