Доступ до внутрішнього IP-адреси за допомогою загальнодоступних IP-адрес


38

У мене є DSL-модем із загальнодоступною IP-адресою ( 201.206.x.x), і у мене є веб-сервер у моїй внутрішній мережі ( 192.168.0.50).

Я налаштовував модем для переадресації запитів на порт 80 на свій веб-сервер, тому, якщо я отримую доступ 201.206.x.xз-за меж своєї мережі, вона показує мою веб-сторінку, те ж саме відбувається, якщо я отримую доступ 192.168.0.50з комп'ютера всередині моєї мережі.

Тепер проблема полягає в тому, що коли я намагаюся отримати доступ 201.206.x.xзі своєї внутрішньої мережі, браузер намагається підключитися до конфігурації модему DSL, а не перенаправляти запит на свій веб-сервер.

Які параметри я повинен змінити в модемі, щоб налаштувати це перенаправлення?


Варіант проблеми. У мене є кілька (2) хостинг-серверів, і я налаштував DNS (BIND9) для внутрішніх запитів. Як відобразити (на різний хостинг-сервер) зовнішні запити (на загальнодоступний IP) на основі імені хоста?
Kunal B.

Відповіді:


20

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

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

Будь-яка з цих пропозицій може бути реалізована на будь-якому хості за межами вашої мережі, як-от (безкоштовний) мікроакумулятор Amazon EC2.


Дякую, хоча я думаю, я буду дотримуватися редагування файлів HOSTS, оскільки це в основному особистий сайт, який я використовую для тестів сайтів, над якими працюю. ПК не працює навіть цілодобово.

3
Я вирішив цю проблему у власній домашній мережі, додавши запис A з тим самим іменем, як і моє зовнішнє ім'я dyndns на власному сервері DNS (також працює в моїй домашній мережі). Запис A вказує на правильне розташування моєї домашньої мережі, як і зворотний запис PTR. Але звичайно, не всі працюють у власному будинку DNS ...
LawrenceC

14

Я б сказав, що @Insyte займається чимось, коли він / вона говорить про проблему, яка є проблемою вирішення DNS.

Якщо припустимо, що у вас є така настройка:

  1. Публічний IP: 201.206.x.y
  2. Приватний IP: 192.168.0.50
  3. Переадресація портів для всіх 80 (і 443, якщо ви робите SSL) в IP 201.206.x.y192.168.0.50

Потім ви вводите в своєму браузері наступне:

http://www.yourwebsite.com

і виникає помилка. Отже, рішення: зламати файл хостів.

У Windows перейдіть до C:\windows\system32\drivers\etc\hosts (зауважте, у цьому файлі немає розширення). У Linux файл знаходиться в /etc/hosts.

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

Додайте це до файлу хостів:

192.168.0.50 www.yourwebsite.com

Потім перезапустіть браузер , введіть URL-адресу та violà! Це працює. Отже, це означає, що ваш веб-переглядач не покладається на ваш DNS для вирішення вашого домену до IP. Натомість ми переосмислюємо це і кажемо: Веб-переглядачу, просто перейдіть до мого внутрішнього IP-адреси для цього доменного імені, а не запитуйте DNS про IP-адресу .

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

Інша ідея - мати внутрішній проксі-сервер (для всіх веб-серфінгу тощо), а потім зламати файл хостів на проксі-сервері. Це означає, що ваш веб-переглядач скаже: " Проксі". Ви можете, будь ласка, отримати мені ресурс,http://www.mywebsite.com а проксі говорить " Звичайно", і тому, що мені сказали ігнорувати DNS для цього домену, я просто надам IP, який був жорстко закодований в мій файл хостів .


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

3
Що з ноутбуком чи смартфоном, який часто відвідує той самий сайт через внутрішню або зовнішню мережу?
ДРУГА

@TREE можете, будь ласка, розробити. Я не зовсім зрозумів ваше запитання.
Pure.Krome

У мене дуже схожа настройка, за винятком того, що я використовую доменні імена. Отже ззовні мережі мій домен підходить до мого зовнішнього IP-адреси, а зсередини - до внутрішнього IP-адреси. У мене є ноутбуки та смартфони, до яких часто звертаються зсередини та зовні, тому злому файлу хостів не буде працювати. Що я зробив - це, головним чином, те, що пропонує Ваша відповідь (Pure.Krome), лише замість того, щоб використовувати зовнішній сервер, я просто говорю DHCP-серверу на маршрутизаторі передбачити внутрішній DNS-сервер. Це здебільшого працює, але є прикрими відставаннями при комутації мереж, перш ніж все почне вирішуватися.
ДРУГА

9

Це поширена проблема в тому, як деякі маршрутизатори обробляють трафік, призначений для їх публічної адреси, з внутрішньої адреси - вони не дотримуються тих же правил переадресації портів, що і запити з-за меж мережі. Що вам потрібно шукати у ваших маршрутизаторах - це NAT-відображення . Це дозволить маршрутизатору обробляти внутрішні запити для публічної IP-адреси для використання тих же правил переадресації портів, як якщо б запит надходив за межі мережі.


1
NAT відображення. Я думаю, що саме це я шукав. На жаль, у мого модему цього немає. Спасибі!

що робити, коли ваш модем не підтримує цикл NAT ??
PrimitiveNom

2

Я можу допомогти вам краще, якби ви могли дати мені свій модем виготовити та моделювати ...

Але тут відбувається те, що зазвичай конфігураційна сторінка маршрутизатора чи модема повинна з’являтися лише під час відвідування їх внутрішнього IP-адреси (192.168.0.1)

Але тут, здається, відбувається те, що він ідентифікує вхідний запит (201.206.xx) як надходить зсередини, тож вирішує надати вам сторінку конфігурації замість звичайного маршруту до вашого веб-сервера ...

Тепер, якщо ви використовуєте модем рівня споживача, ви, ймовірно, не можете змінити це (вибачте)

Але, можливо, ви можете: Спробуйте перевірити, чи є налаштування "прослуховування" на вашій сторінці конфігурації адміністратора

Там ви можете спробувати змінити сторінку адміністрації на інший порт або обмежити адреси, які вони слухають


2

Можливо, проблема полягає в тому, що дозволено віддалене адміністрування.


2

Ви можете додати маршрут для доступу до загальнодоступної IP-адреси сервера безпосередньо через локальну IP-адресу. У Windows команда подібна

route add [public IP] mask 255.255.255.255 [the server's local IP]

Щоб додати стійкий маршрут, додайте -pпараметр до вищезгаданої команди.

Тоді кожного разу, коли ви відвідуєте загальнодоступну IP-адресу, комп'ютер перейде через локальний IP-сервер як шлюз. Оскільки сервер знає власну загальнодоступну IP-адресу, він обробить пакет від себе, замість того, щоб пересилати його в локальну мережу.

Ви повинні переконатися в локальній IP-статиці сервера.


Чому сервер знає власну загальнодоступну IP-адресу?
G-Man каже: «Відновіть Моніку»

Сервери точно знають свої IP-адреси. Або статичні, або динамічні IP-адреси. Я не впевнений, як саме працює маршрутизація. Думаю, кожна машина має карту маршруту. Коли він отримав пакунки, він вирішує, чи слід обробляти пакунок.
qevan

0

Маючи це саме питання. Я зміг виправити це, додавши ім'я хоста DNS до списку хостів маршрутизатора DNS мого маршрутизатора. Ці параметри я знайшов у списку розширених опцій мого маршрутизатора.


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