Неможливо отримати доступ до зовнішньої служби з внутрішньої локальної мережі


11

У мене дивна проблема переадресації портів. Я спробував відкрити свій порт 22 для зовнішньої мережі. Я мав доступ до нього, поки я не перебуваю в локальній мережі. Я можу отримати доступ до нього, наприклад, зі свого офісу. Але зсередини локальної мережі я можу отримати доступ до порту за допомогою локального ip, але не можу отримати доступ до порту за допомогою зовнішнього IP-адреси. Це як би маршрутизатор блокує петлю. Я перевірив усі налаштування маршрутизатора, відключив усе, що стосується брандмауера / фільтрації. Будь-які ідеї?

Відповіді:


5

Якщо припустити, що Spiff є правильним, і ваш маршрутизатор не може обробляти переадресацію портів на зовнішній ip зсередини мережі, є невелика робота (і це звучить так);

Ви можете редагувати файл хостів, який можна знайти в / etc / hosts в більшості unix-систем та на C: \ Windows \ system32 \ driver \ тощо \ у Windows.

якщо ви додасте

192.168.0.15  example.com

у цьому файлі ваш комп’ютер буде переходити до ip, який простежується, коли ви намагаєтесь отримати доступ до example.com. Звичайно, це доведеться робити на кожному комп'ютері, який ви хочете використовувати в мережі.

Ви можете ознайомитись зі статтею wikipedia, щоб дізнатись більше про те, де її знайти: https://en.wikipedia.org/wiki/Hosts_file


13

Враховуючи, що ви згадали про переадресацію портів, я припускаю, що ваш домашній шлюз діє як NAT - або точніше NAPT - шлюз. Те, що ви намагаєтеся зробити, називається "шпилька NAT" або "NAT стрижка волосся", посилаючись на те, як буквальна шпилька для волосся подвоюється назад (та сама алюзія використовується терміном "поворот шпильки" для різкого згину, де дорога подвоюється назад на себе).

Деякі NAT-шлюзи є лайно і не підтримують закріплення волосся. Можливо, час вивчити варіанти оновлення.


Це досить новий маршрутизатор, тому я сумніваюся, що це проблема.
erotsppa

6
"Нове" не означає "високої якості". На ринку завжди є багато лайна в будь-який момент.
Spiff

І цей коментар справджується через вісім років!
Tim_Stewart

@erotsppa - Як каже Tim_Stewart, "це відповідає дійсності на 8 років пізніше" (2018) ... все зводиться до вартості і того, що потрібно для реалізації рішення проти попиту на таке рішення. Ваш типовий "домашній" модем / маршрутизатор не потребує такої функціональності ... Однак у бізнесу будуть дуже різні вимоги (наприклад, персонал, який працює за межами сайту, не повинен змінювати налаштування, щоб отримати їх, скажімо, електронною поштою (якщо вони використовують електронний поштовий сервер), яка працює під час роботи в офісі та коли вони працюють за межами сайту тощо. Пристрої бізнес-класу часто ефективніші та мають ці можливості.
Kinnectus

3

На це є справжня проста відповідь. NAT стає на шляху.

  1. Ваш комп'ютер відкриває з'єднання з [ExternalIP]
  2. Ваш маршрутизатор пересилає це з'єднання до [SSHInternalIP]. Ваш SSH-сервер бачить з'єднання від [YourInternalIP].
  3. Ваш SSH-сервер надсилає свої пакети до [YourInternalIP].
  4. Ваш комп'ютер бачить дивний пакет, що надходить з IP, з яким він ніколи не спілкувався, і відкидає його.
  5. Підключення до TCP / 22 не вдається, оскільки тричасне рукостискання TCP ніколи не завершується.

Ви намагаєтесь поговорити з громадським IP, але відповіді надходять із внутрішньої IP-адреси. Ваш комп’ютер не може змусити обох працювати разом. Рішення полягає в тому, щоб використовувати внутрішній IP, коли ви позаду маршрутизатора. Я вирішую цю проблему на своїх ноутбуках, використовуючи різні рядки підключення ssh залежно від місця, де я перебуваю.


2

З того, що я розумію під час запуску маршрутизатора OpenBSD з NAT, Spiff правильний у своїй відповіді: проблема, яку ви відчуваєте, викликана тим, що NAT-шлюз не підтримує те, що ви намагаєтеся зробити.

Ваша робоча станція надсилає пакети з вихідним IP-адресою внутрішньої адреси (скажімо, 10.0.0.2), але адресою призначення є ваш зовнішній IP. Коли пакети прибувають на ваш (SSH?) Сервер на порт 22, сервер безпосередньо відповідає на вашу робочу станцію, і NAT не відбувається; Тепер, коли ваша робоча станція отримує відповідь від 10.0.0.3, коли очікувала відповіді з вашої зовнішньої адреси, вона скидає пакети.

Це здається тривіальною проблемою, але її можна вирішити, оновивши файл HOSTS вашої робочої станції, додавши внутрішній DNS-сервер (або редагуючи записи DNS-сервера) або створивши правило NAT для обробки внутрішніх-> зовнішніх> внутрішніх трафік.

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