2015-02-14 3 views
1

Я пытаюсь получить доступ к веб-серверу за NAT. Задача состоит в том, что, поскольку может существовать несколько веб-серверов, регистрация маршрутизатора на основе порта здесь не является приемлемым решением.Есть ли способ получить доступ к веб-сайту за NAT?

Я извиняюсь, это больше похоже на общий вопрос, потому что я действительно не знаю, с чего начать после чтения онлайн-источников, связанных с обходом NAT, какой метод выбрать: прокси, туннелирование, WebRTC, ICE?

Я немного экспериментирую с libnice. Он выведет строку, которая выглядит как список кандидатов, который может быть отправлен удаленному одноранговому узлу, чтобы он мог подключиться. Но не представляется очевидным, как вставлять строку в URL-адрес Http.

Ваша помощь очень ценится. Благодарю.

ответ

1

У вас может быть несколько веб-серверов, работающих под брандмауэром NAT, путем перенаправления портов на каждый веб-сервер.

Например:

yourip:8080 ->port forward-> web server 0 running on 192.168.1.10 
yourip:8081 ->port forward-> web server 1 running on 192.168.1.11 
yourip:8082 ->port forward-> web server 2 running on 192.168.1.12 
+0

Спасибо за ответы. Хотя ваше решение может работать, я боюсь, что для каждого экземпляра может потребоваться нетривиальная конфигурация и задача управления. Я забыл упомянуть, что это динамичная ситуация: веб-серверы можно запускать и закрывать в любое время. Это странный случай: в моем приложении мы настроили веб-сервер только для отправки/получения данных. – user180574

+0

В этом случае я не уверен, что понимаю ваш вопрос. Если в вашей локальной сети есть несколько веб-серверов (скажем, 192.168.1.10, 192.168.1.11, 192.168.1.12 и т. Д.), Все за NAT-маршрутизатором с одним открытым IP-адресом, то как вы представляете пользователя за пределами вашей локальной сети указывая, какой из веб-серверов, к которым они хотят получить доступ? – mti2935

+0

Вы подразумеваете, что ICE (включая STUN или TURN) не поддерживает несколько программ (каждый на другой машине), которые прослушивают один и тот же порт? Я предполагаю, что каждая программа пробивает другое отверстие. Не совсем уверен, но я могу сделать простой тест, используя libnice. – user180574