3

Возможный дубликат:
Подключение к собственной сети через внешний IP

Моя домашняя сеть обслуживается линией ADSL. Модем находится в режиме моста. Маршрутизатор выполняет PPPoE.

К компьютеру подключены три компьютера: два проводных Windows 7 и Ubuntu Linux через Wi-Fi.

Компьютеры предоставляют различные виды услуг, включая FTP и HTTP. Маршрутизатор имеет переадресацию портов с соответствующих портов на зарезервированные IP-адреса для компьютеров.

Если я пытаюсь подключиться к серверу внутри сети, например, к ftp://67.xx.xxx.xxx изнутри сети, запрос истекает. Однако, если я подключаюсь с использованием внутреннего сопоставленного адреса, такого как ftp://192.168.0.100 , все будет хорошо.

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

редактировать: следует отметить, что серверы могут быть доступны за пределами сети - скажем, в Starbucks через улицу - прекрасно, используя адрес, предоставленный провайдером и соответствующий порт.

1 ответ1

1

Переадресация портов перезаписывает только адрес назначения. Это прекрасно работает для внешних источников. Вот почему это не работает для внутренних источников:

  1. Вы пытаетесь подключиться к вашему внешнему адресу. Вы формируете пакет с внутренним источником и внешним назначением.

  2. Пакет принимает ваш маршрут по умолчанию к вашему маршрутизатору.

  3. Порт маршрутизатора пересылает пакет, меняя адрес назначения на внутренний адрес сервера.

  4. Сервер получает пакет с внутренним адресом источника (исходной машиной) и его внутренним адресом назначения (сервером).

  5. Сервер формирует ответный пакет с внутренним адресом источника и внутренним адресом назначения.

  6. Поскольку пункт назначения является локальным, этот пакет не принимает маршрут сервера по умолчанию. Он идет прямо к исходной машине.

  7. Исходная машина получает пакет ответа с внутренним адресом источника, но она ожидала ответа с внешним адресом (машиной, к которой она пыталась связаться).

  8. Исходный компьютер игнорирует пакет, и соединение не работает.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .