подключение к частному IP - PullRequest
       40

подключение к частному IP

3 голосов
/ 06 августа 2009

Я хочу подключиться к системе, которая находится за маршрутизатором. Я знаю общедоступный адрес маршрутизатора, а также частный IP-адрес (фиксированный всегда) системы. Как мне установить сокет соединение с приватным ip?

Ответы [ 4 ]

4 голосов
/ 06 августа 2009

Вот почему некоторые люди говорят, что они за «брандмауэром», когда они за роутером. Злые Вирусы Интернета не могут использовать какое-либо программное обеспечение на компьютере за маршрутизатором (при условии, что администратор маршрутизатора не настроил его забавным образом, например, включив DMZ ).

У вас еще есть несколько вариантов:

  • Поговорите с администратором маршрутизатора и сделайте так, чтобы он перенаправил порт для вас
  • Выньте маршрутизатор и поместите ваш «целевой» компьютер там, где был ваш маршрутизатор, или включите DMZ (это имеет смысл, только если позади маршрутизатора был только один компьютер). Warrning : сначала установите брандмауэр на целевой компьютер!
  • Поверните розетку на 180 градусов. Заставьте компьютер за маршрутизатором установить соединение с сервером, который имеет публичный IP-адрес
  • Используйте что-то вроде UPnP , если ваш роутер поддерживает это
  • Получите выделенный IP-адрес для вашего компьютера и настройте маршрутизатор для переключения всего трафика с этого IP-адреса на ваш компьютер (это похоже на DMZ, но будет работать, если за маршрутизатором установлено более одного компьютера). Warrning : сначала установите брандмауэр на целевой компьютер!
  • Использовать обход NAT. Есть очень хорошая статья на эту тему здесь . Упрощенная версия заключается в том, что клиент устанавливает соединение с каким-либо удаленным сервером. Сервер может видеть номер открытого порта на маршрутизаторе клиента, и этот порт назначается клиентскому компьютеру, поэтому он (или какой-либо другой компьютер, предоставляющий эту информацию) может установить соединение с этим портом и обратиться к клиентскому приложению. Warrning : это работает не со всеми маршрутизаторами. Некоторые маршрутизаторы просто не позволяют этому случиться.
1 голос
/ 06 августа 2009

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

1 голос
/ 06 августа 2009

Строго говоря, ответ на ваш вопрос «вы не можете». Однако вы можете включить DNAT (Трансляция сетевых адресов назначения) на вашем маршрутизаторе. Вы подключаетесь к определенному порту на маршрутизаторе, и он перенаправляет соединение на внутренний ip. Внутренний ip (и порт) настраиваются в настройках маршрутизатора и не известны подключающемуся клиенту.

1 голос
/ 06 августа 2009

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

...