2011-03-19 22:41:21 +0000 2011-03-19 22:41:21 +0000
38
38
Advertisement

Доступ к внутреннему IP-адресу с помощью публичного IP-адреса

Advertisement

У меня есть DSL модем с публичным IP адресом (201.206.x.x), и у меня есть веб сервер в моей внутренней сети (192.168.0.50).

Я настроил модем на переадресацию запросов на порт 80 на мой веб-сервер, поэтому, если я получаю доступ к 201.206.x.x из-за пределов моей сети, он показывает мою веб-страницу, то же самое произойдет, если я получаю доступ к 192.168.0.50 с компьютера внутри моей сети.

Теперь, проблема в том, что когда я пытаюсь получить доступ к 201.206.x.x из моей внутренней сети, браузер пытается подключиться к конфигурации DSL модема, вместо того, чтобы перенаправлять мой запрос на веб сервер.

Какие настройки я должен изменить в модеме, чтобы настроить это перенаправление?

Advertisement

Ответы (8)

20
20
20
2011-03-19 23:02:55 +0000

Проблема заключается в том, что переписывание пакетов обычно может происходить только при обходе брандмауэра. Вообще говоря, маршрутизаторы не могут выполнить необходимую перезапись, когда запрос поступает из той же сети, в которую он был бы перезаписан. Общим решением этой проблемы является размещение веб-прокси за пределами сети, который обходит запрос обратно через брандмауэр. 0x2 и 0x2 и я подозреваю, что ваша конкретная проблема заключается в том, что вы хотите получить доступ к веб сайту через его DNS имя хоста. Вы можете справиться с этим, используя “split-horizon” DNS, поэтому он обращает внимание на то, откуда приходит запрос, и отвечает соответствующим образом: Если запрос приходит из вашей сети, он раздает 192.168.0.50 запросам, приходящим из вашей сети, а публичный IP всем остальным.

Любое из этих предложений может быть реализовано на любом хосте вне вашей сети, например, на (бесплатном) Amazon EC2 micro экземпляре.

14
14
14
2011-03-20 00:32:24 +0000

Я бы сказал, что @Insyte что-то замышляет, когда он говорит о том, что проблема заключается в DNS разрешении … а это значит, что проблема заключается в перезаписи пакетов (прочтите @Insyte post еще раз для этого объяснения).

Предположим, что у вас следующая настройка:

  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

и возникает ошибка. Итак, решение: взломайте файл hosts.

В Windows перейдите на C:\windows\system32\drivers\etc\hosts (обратите внимание, в этом файле нет расширения). В Linux файл находится в /etc/hosts.

Если вы откроете этот файл в Блокноте, вы увидите все записи, которые используются для переопределения DNS. Если вы хотите обновить этот файл, вам нужно будет открыть Блокнот (или любую другую программу, которую вы используете для редактирования файла) с правами администратора - иначе вы не сможете сохранить файл.

Добавьте это в ваш хост-файл:

192.168.0.50 www.yourwebsite.com

Тогда перезапустите браузер, введите URL и violà! Это работает. Это означает, что ваш браузер не полагается на DNS для преобразования вашего домена в IP. Вместо этого, мы переопределяем это и говорим: Browser, просто перейдите на мой внутренний IP для этого доменного имени, вместо того, чтобы спрашивать DNS для IP-адреса.

Если вы находитесь в офисе, то вы можете получить доступ ко всем людям, которым нужно получить доступ к этому внутреннему веб сайту, взломать их хост-файл, или если у вас есть внутренний DNS, то вы можете добавить запись в него.

Другая идея заключается в том, чтобы иметь внутренний прокси-сервер (для всех веб-серфингов и т.д.), а затем взломать файл hosts на прокси-сервере. Это означает, что ваш браузер скажет, Proxy, пожалуйста, дайте мне ресурс http://www.mywebsite.com и прокси скажет Sure, и так как мне сказали игнорировать DNS для этого домена, я просто дам IP, который был жестко закодирован в файле моих хостов.

9
Advertisement
9
9
2011-03-20 01:27:58 +0000

Это распространенная проблема с тем, как некоторые маршрутизаторы обрабатывают трафик, предназначенный для их публичных адресов, с внутреннего адреса - они не следуют тем же правилам переадресации портов, что и запросы извне сети. Что вам нужно искать в ваших маршрутизаторах, так это NAT отражение. Это позволит маршрутизатору обрабатывать внутренние запросы для публичного IP-адреса, чтобы использовать те же правила переадресации портов, как если бы запрос пришел из-за пределов сети.

2
2
2
2011-03-19 23:00:42 +0000

Я могу помочь тебе лучше, если ты дашь мне свой модем и модель…

Но здесь происходит то, что обычно страница конфигурации маршрутизатора или модема должна появляться только при посещении их внутреннего IP (192.168.0.1)

Но кажется, что здесь происходит то, что она идентифицирует входящий запрос (201.206.x.x) Так как приходит изнутри, то решает дать вам страницу конфигурации вместо обычного маршрута к вашему веб-серверу…

Теперь, если вы используете модем потребительского уровня, вы, вероятно, не сможете изменить это (извините)

Но, возможно, вы сможете: Попробуйте проверить, есть ли настройки ‘прослушивания’ на странице конфигурации администратора

Там вы можете попробовать либо изменить вашу страницу администрирования на другой порт, либо ограничить прослушивание адресов для

2
Advertisement
2
2
2011-03-19 23:08:12 +0000

Возможно, проблема в том, что удаленное администрирование разрешено.

2
2
2
2015-03-12 03:14:55 +0000

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

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

Чтобы добавить постоянный маршрут, добавьте параметр -p к вышеприведенной команде.

Затем каждый раз, когда вы посещаете публичный IP, компьютер будет проходить через локальный IP сервера в качестве шлюза. Так как сервер знает свой собственный публичный IP, он будет обрабатывать пакет сам от себя, вместо того, чтобы пересылать его в локальную сеть.

Вы должны убедиться, что локальный IP-адрес сервера статический.

0
Advertisement
0
0
2015-12-05 05:31:19 +0000

Имея такую же проблему. Я смог это исправить, добавив имя DNS хоста в список DNS Host Mapping моего маршрутизатора. Я нашел эти параметры в списке дополнительных опций своего роутера.

0
0
0
2016-04-09 16:37:43 +0000

На моем маршрутизаторе мне пришлось отключить “NAT-ускорение” (Cut Through Forwarding), так как это прервало NAT-кольцо…

Advertisement