Как подключиться к другому компьютеру за несколькими шлюзами, используя IP? - PullRequest
0 голосов
/ 25 июня 2011

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

Предположим, я хочу подключиться к машине за несколькими шлюзами.Скажем, я хочу подключиться к домашнему компьютеру с офисного компьютера.Мой домашний компьютер находится за шлюзом моего интернет-провайдера, а затем за домашним беспроводным маршрутизатором.Допустим, я знаю IP для всех них.(глобальный IP для шлюза моего провайдера, локальный IP для моего беспроводного маршрутизатора в н / ж моего провайдера и локальный IP моего домашнего компьютера в моем доме).Как мне установить TCP-соединение с моим домашним компьютером?Стандартная программа сокетов Беркли принимает только один IP-адрес, и поэтому я могу подключаться только к компьютерам с глобальными IP-адресами.

Есть ли решение?Я прав насчет розеток в Беркли?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 июля 2011

Вам нужно знать только IP-адрес назначения для подключения из приложения, адрес шлюза предназначен для пересылки (маршрутизации) пакетов, которые обрабатываются сетевым стеком ОС. Однако, если пункт назначения находится за NAT, вы будете знать только общедоступный IP-адрес устройства назначения. Даже в этом случае все, что у вас есть, это IP-адрес, и вы на самом деле не знаете, происходит ли NAT.

Если пункт назначения фиксирован, вы можете настроить переадресацию портов на устройстве NAT (если вы им управляете). В противном случае вы только что поняли, что NAT - это чистое зло

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

0 голосов
/ 25 июня 2011

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

Концепция, которую вы ищете, называется DNAT или Переадресация портов .

Допустим, вы решили подключиться к порту 1234 на ПК. Адрес ПК - Local2. Адрес беспроводного маршрутизатора (в сети с провайдером): Local1.

  • Беспроводной маршрутизатор должен выполнить перевод Local1:X -> Local2:1234
  • Маршрутизатор ISP должен выполнить перевод Public:1234 -> Local1:X

X означает, что можно использовать любой порт.

...