Есть ли способ преодолеть переадресацию портов маршрутизатора в приложении TCP / IP? - PullRequest
1 голос
/ 09 июля 2009

Мне нужно подключиться к компьютеру через TCP / IP. У меня есть внешний ip, но без переадресации портов я не могу подключиться к серверу.

Есть ли способ настроить сервер так, чтобы он принимал соединение по внешнему ip и порту, заданному сервером, без настройки маршрутизатора? (Как emule делает это? Или другое одноранговое приложение?)

Ответы [ 4 ]

3 голосов
/ 09 июля 2009

Вам нужно прояснить ситуацию. Целевой компьютер находится за маршрутизатором, который выполняет NAT?

Если это так, ответ - нет.

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

Однако есть несколько способов обойти подобные проблемы, вызванные NAT. Обычно они включают компьютер за NAT, создающий исходящее соединение, которое затем используется для связи. Смотри, например,

http://en.wikipedia.org/wiki/Hole_punching

Универсальный Plug and Play, как указано в другом ответе, также может это позволить.

2 голосов
/ 09 июля 2009

В идеале вы хотите, чтобы клиент NATed инициировал соединение, но если это невозможно, вам нужно рассмотреть STUN или UPnP

STUN - это набор инструментов и протоколов, который позволяет пробивать дыры через NAT. Это может потребовать сотрудничества с сервером без NAT. Это может произойти сбой в зависимости от реализации NAT

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

0 голосов
/ 09 июля 2009

В основном вам нужна программа на этом компьютере, которая будет инициировать соединение. Таким образом, такие программы, как FogCreek CoPilot, LogMeIn и т. Д., Позволяют удаленно администрировать машины за маршрутизаторами NAT без настройки маршрутизатора.

0 голосов
/ 09 июля 2009

Я думаю, вам нужно взглянуть на Universal Plug and Play:

http://en.wikipedia.org/wiki/Universal_Plug_and_Play

...