Как получить доступ к сети удаленно без перенаправления сервера или порта - PullRequest
2 голосов
/ 04 марта 2012

В настоящее время я разрабатываю приложение для iPad, которое подключается к клиентскому ПК в локальной сети и доставляет сообщения.Я установил приложение Python на клиент после прочтения следующего урока: http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server

Он отлично работает для локальных подключений.Приложение открывает порт для подключения, и приложение iPad подключается с использованием локального IP-адреса клиента и порта.

Что произойдет, если я захочу подключиться к общедоступному IP-адресу?Я попробовал это, и это не работает.Я получил общедоступный IP-адрес клиента со следующего сайта: http://www.whatismyip.com/

, и я использовал то же приложение Python, чтобы открыть порт.Я предполагаю, что мне нужно открыть порт на моем маршрутизаторе и передать его клиенту.Но есть ли способ сделать это без доступа к настройкам моего маршрутизатора.Я хочу получить мгновенный доступ, чтобы пользователю не приходилось беспокоиться о настройках.

Точно так же, как это делает Skype, многопользовательские игры или другие онлайн-сервисы.Мой вопрос немного общий, а не конкретный.Извини за это.Я надеюсь, что это может помочь и другим людям.

1 Ответ

3 голосов
/ 07 марта 2012

Предположительно машина, к которой вы пытаетесь подключиться, находится за устройством маршрутизатора / NAT.Другими словами, он не подключен напрямую к Интернету.

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

Skype, игры и онлайн-сервисы все инициируют свои соединения из частной сети наружу к серверу в публичной сети.Исходящий сетевой трафик запускает временное правило NAT (преобразование сетевых адресов), которое позволяет дейтаграмм, возвращающимся из пункта назначения, направляться обратно на частный хост.

Но другой входящий трафик будет заблокирован, если вы специально не зададите правило вмаршрутизатор / NAT говорит ему, куда отправлять данные.Как еще он узнает, на какой адрес направлять данные?

Таким образом, существует только три способа связи с машиной за NAT-маршрутизатором:

  • Сначала он должен связаться с вами..
  • Кто-то должен настроить NAT / маршрутизатор для перенаправления общего порта на частный компьютер.
  • Вы оба должны связаться с третьим компьютером, который действует как посредник.

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

...