Тунелювання FTP-з'єднання з дому, де сервер приймає лише локальні IP-адреси


11

Мені потрібно отримати доступ до FTP-сервера на роботі, але сервер прийме лише локальні IP-адреси. Я не можу отримати доступ до нього зі своєї домашньої машини. Мені вдалося ввійти в свою робочу машину Unix через PuTTY і звідти успішно відкрити консольне FTP-з'єднання з FTP-сервером.

Я міг би це зробити, але я вважаю за краще не робити це, бо це дуже громіздко для мене. Я вважаю за краще тунельне FTP-з'єднання через робочу машину через PuTTY, щоб я міг використовувати мій FTP-клієнт на вибір FileZilla для виконання своїх FTP-потреб на сервері. Звичайно, це через порт 21.

Я знаю, що PuTTY здатний пересилати порти через ssh, я просто не впевнений, як ним користуватися.

Головна -> Робота -> Сервер.


Нічого принципово не відрізняється від завантаження проти завантаження через проксі-з'єднання SOCKS. Велика різниця у вашому домашньому підключенні до Інтернету, швидше за все, матиме низьку продуктивність для завантаження (вихідної) порівняно із завантаженням (вхідною). Нам, мабуть, знадобиться більше журналів, щоб мати можливість діагностувати його.
ВісімBitTony

Я дійшов висновку, що я, мабуть, повністю вирішував іншу проблему і буду працювати над новим питанням, що стосується цієї конкретної проблеми. Дуже дякую за допомогу EightBitTony!
Бен Якобсон

Ви можете зареєструвати свій обліковий запис помилок сервера з тими самими обліковими записами, що і тут, щоб повернути це питання @ben
випадково

Відповіді:


13

Використовуйте проксі-сервер SOCKS.

Вікно PuTTY

Порт джерела тепер (локально) проксі-сервер SOCKS. Налаштування FileZilla використовувати його як проксі-сервер SOCKS (див. Нижче). Це відкриє з'єднання через це до хоста, на якому ви ssh (ваш робочий апарат), а потім підключиться звідти до будь-якої IP-адреси, яку ви йому надаєте. Працює для всього, що підтримує SOCKS і включає FTP.

Решта конфігурації PuTTY просто залишається тією ж - налаштуйте порти (як показано), а потім підключіть цей сеанс PuTTY до своєї робочої машини через SSH.

Ось як повинен виглядати варіант FileZilla,

введіть тут опис зображення

Коли ви ставите ціль для FTP-з'єднання, використовуйте IP-адресу, а не ім'я хоста, оскільки роздільна здатність DNS все ще може відбуватися локально, і ви цього не хочете.

Вся справа безпечна і непомітна - це схоже на базове SSH-з'єднання з будь-чим іншим у мережі.

Примітка. Якщо ви хочете зробити це з командного рядка, ви можете використовувати PuTTY, plink.exeщоб зробити наступне,

plink -ssh -D 9090 you@your.work.laptop.example

він досягає того ж, не створюючи профіль PuTTY або використовувати GUI.


Мені подобається такий спосіб робити це трохи більше, ніж моя відповідь. Ви можете встановити проксі-сервер SOCKS у filezilla в розділі "Загальний проксі" і не забудьте використовувати його в "пасивному режимі".
Філіп Кулінг

2

По-перше, набагато простіше / можливо, краще використовувати SCP. Оскільки у вас SSH, вам також буде доступний SCP. Але я не знаю вашої мережі, що стосується питання ...

По-перше, переконайтеся, що ваш клієнт налаштований на використання FTP в активному режимі. Я хотів запропонувати використовувати пасивний режим, але ви не можете контролювати, які порти будуть використовуватися.

По-друге, обмежте кількість портів, які ваш клієнт FTP використовуватиме в активному режимі, аж до пригорщі. Менше, що 10 було б добре. І ось чому.

По-третє, створіть віддалений порт для всіх цих портів.

Це має змусити його працювати


2

Ось як переглядати файлову систему внутрішнього сервера (за NAT), за допомогою FileZilla або за допомогою Nautilus File Manager - за допомогою SFTP (сеанс SSH на TCP-порту 22), через сервер шлюзу (за межами NAT):

  1. Перший запуск у Терміналі:

sudo ssh -L 9090: {внутрішнє ім’я сервера або IP}: 22 root @ {ім'я хоста або IP-сервера шлюзу}

  1. Потім створіть нове з'єднання.

    У FileZilla:

    • Хост: sftp: //127.0.0.1
    • Ім'я користувача / пароль: облікові дані внутрішнього сервера.
    • Порт: 9090 (той же порт, що і в команді терміналу).

Або в Наутілусі:

sftp://127.0.0.1:9090/, тоді вам буде запропоновано ввести внутрішні облікові дані сервера.

Тепер ви маєте можливість переглядати внутрішню файлову систему сервера.


введіть тут опис зображення

Примітка. Як ви бачите, не потрібно встановлювати прокси SOCKS ні в Putty, ні в FileZilla :)


Дякую! Це саме те, що я шукав!
lorenzo-s
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.