Что такое переадресация портов и для чего она используется?

Есть много вопросов по пересылка портов , но, похоже, четко указывает, что это такое и для чего он используется. Итак:

  1. Что такое перенаправление портов?

  2. Для чего он нужен и зачем мне это нужно?

191 голос | спросил 5 revs, 4 users 61%
KronoS
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

1 ответ


280

Основы

Чтобы действительно объяснить переадресацию портов, вам сначала нужно понять немного больше о том, что делает ваш маршрутизатор . Ваш интернет-провайдер назначает IP-адрес один для вашего интернет-соединения. Все компьютеры в Интернете нуждаются в уникальном IP-адресе, но у вас есть несколько компьютеров в вашем доме и только один адрес. Итак, как это работает?

Если вы знаете, что это такое и просто хотите знать, как это сделать : http://portforward.com/ имеет инструкции со скриншотами для буквально сотен разных маршрутизаторов. Документация скрыта за рекламной страницей для их автоматического инструмента portconfig. (Просто нажмите немного, вы найдете его.)

NAT - Что это? Почему мы его используем?

У вашего домашнего маршрутизатора есть функция «Трансляция сетевых адресов» или NAT. Внутри вашей сети компьютеры имеют такие адреса, как 192.168.1.100. Все адреса в диапазоне 192.168. * (Или в диапазоне 10. *) " личные или " зарезервировано " , Эти адреса официально назначаются IANA для использования внутри частных сетей. Ваш маршрутизатор автоматически присваивает такой адрес каждому компьютеру, подключенному через DHCP . Эти адреса связаны с тем, как компьютеры в вашей сети взаимодействуют с маршрутизатором и друг с другом.

Ваш маршрутизатор имеет отдельный сетевой интерфейс, который соединяет его с Интернетом. Этот интерфейс имеет совсем другой адрес, назначенный вашим интернет-провайдером. Это тот адрес, который я упоминал ранее, и ваш маршрутизатор использует его для связи с другими компьютерами в Интернете. Компьютеры внутри вашей сети имеют немаршрутизируемые частные IP-адреса, что означает, что если они отправляют пакеты непосредственно в Интернет, пакеты будут автоматически удалены (пакеты с частными адресами не могут проходить через Интернет для обеспечения стабильности причины). Но ваш маршрутизатор имеет адрес маршрутизируемого . Трансляция сетевых адресов, как следует из названия, переводит между этими двумя типами адресов, позволяя нескольким компьютерам внутри вашей сети появляться в Интернете как один компьютер с одним адресом.

Подробности

Хотя это может показаться сложным, на самом деле довольно просто, как это делает ваш маршрутизатор. Каждый раз, когда компьютер внутри вашей сети хочет подключиться к компьютеру в Интернете, он отправляет запрос на соединение к маршрутизатору (он знает, чтобы отправить его на маршрутизатор, поскольку его параметр Default Gateway установлен на адрес маршрутизатора). Затем маршрутизатор принимает этот запрос на соединение («запрос SYN» в TCP /IP) и изменяет адрес источника («ответ на» или обратный адрес) и изменяет его с частного IP-адреса компьютера на общедоступный IP-адрес маршрутизатор, так что ответ будет отправлен маршрутизатору. Затем он принимает к сведению в базе данных (называемой таблицей NAT ), что соединение было инициировано, чтобы впоследствии запомнить его.

Когда ответ возвращается с удаленного компьютера («SYN-ACK»), маршрутизатор просматривает его таблицу NAT и видит, что соединение с этим хостом на этом порту ранее инициировалось частным компьютером в вашей сети, изменяет адрес получателя на частный адрес компьютера и перенаправляет его в вашу сеть. Таким образом, пакеты могут продолжать перемещаться между сетями, при этом маршрутизатор прозрачно меняет адреса, чтобы он работал. Когда соединение завершается, маршрутизатор просто удаляет его из таблицы NAT.

Или подумайте об этом так:

Это может быть немного легче визуализировать с помощью метафоры - допустим, вы являетесь экспедитором в США, работающим с китайскими клиентами. Они должны отправлять пакеты многим клиентам в США, но для таможенных /бумажных документов проще отправлять пакеты только в одном месте. Итак, пакет приходит к вам от одного из ваших клиентов в Китае (частная сеть, в этом примере) с фактическим пунктом назначения в США (в Интернете). Вы меняете ярлык адреса в поле на адрес США (общедоступный), и вы меняете адрес возврата на свой собственный публичный адрес (так как он не может быть возвращен прямо в Китай без неудобства для клиента) и передать его почтовой службе , Если клиент возвращает продукт, он приходит к вам. Вы просматриваете его в своих записях и смотрите, из какой компании в Китае оно прибыло, и измените пункт назначения на эту компанию (ее частный адрес) и адрес возврата на свой частный адрес, чтобы они могли отправить обратно через вас.

Это отлично работает, но есть проблема. Что делать, если клиент долженотправить что-то в компанию, скажем, денежный перевод в оплату за что-то? Или, допустим, компьютер в Интернете инициирует соединение с маршрутизатором (запрос SYN), скажем, веб-серверу, который находится в сети. Письмо /пакет имеет только общий адрес маршрутизатора, поэтому маршрутизатор на самом деле не знает, куда его отправить! он может быть предназначен для любого из компьютеров в частной сети или ни для одного из них. Возможно, вы столкнулись с этой проблемой, когда звоните кому-то домой - когда они звонят вам, это не проблема, но когда вы их называете, у них нет возможности узнать, кому нужен звонок, поэтому неверный человек может ответить.

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

И, наконец, мы перейдем к Port Forwarding

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

  • Faux-DMZ: у многих маршрутизаторов есть функция DMZ. Это означает демилитаризованную зону, которая является своего рода конфигурацией сетевой безопасности. DMZ на домашних маршрутизаторах часто называют faux-DMZ, потому что в нем отсутствуют особенности фактической DMZ. То, что он делает, - это самый простой вид обработки входящих соединений: все входящие запросы на соединение будут отправляться одному из указанных в вашей сети. Это очень просто - вы вводите IP-адрес в конфигурацию вашего маршрутизатора, и все входящие соединения идут туда. Это не всегда работает, потому что у вас может быть несколько компьютеров, которым необходимо принимать входящие соединения. Для этого у нас есть ...
  • Переадресация портов: все запросы сетевого подключения включают в себя «порт». Порт - это просто номер, и это часть того, как компьютер знает, что такое пакет. IANA указала, что порт 80 используется для HTTP. Это означает, что входящий пакет, который указывает номер порта 80, должен быть запросом, предназначенным для веб-сервера. Переадресация портов на вашем маршрутизаторе позволяет ввести номер порта (или, возможно, диапазон или комбинацию номеров, в зависимости от маршрутизатора) и IP-адрес. Все входящие соединения с соответствующим номером порта будут перенаправлены на внутренний компьютер с этим адресом.
  • UPnP-порт вперед: пересылка UPnP работает точно так же, как и переадресация портов, но вместо того, чтобы настраивать ее, программное обеспечение на компьютере внутри сети автоматически устанавливает маршрутизатор для пересылки трафика на заданный порт.


Пример

Давайте рассмотрим пример использования. Многие многопользовательские видеоигры (например, Counter Strike) позволяют запускать игровой сервер на вашем компьютере, к которому могут подключаться другие люди, чтобы играть с вами. Ваш компьютер не знает всех людей, которые хотят играть, поэтому они не могут подключиться к ним - вместо этого они должны отправлять новые запросы на подключение к вашему компьютеру из Интернета.

Если у вас не было ничего настроенного на маршрутизаторе, он получит эти запросы на соединение, но не знает, какой компьютер в сети имеет игровой сервер, поэтому он просто игнорирует их (или, более конкретно, он отправит обратно пакет, указывающий, что он не может подключиться). К счастью, вы знаете номер порта, который будет на запросах на подключение к игровому серверу. Таким образом, на маршрутизаторе вы устанавливаете порт вперед с номером порта, который ожидает игровой сервер (например, 27015), и IP-адрес компьютера с игровым сервером (например, 192.168.1.105).
Маршрутизатор будет знать, чтобы переадресовывать входящие запросы на соединение в 192.168.1.105 внутри сети, и компьютеры, находящиеся за пределами, смогут подключаться.

Другим примером может быть локальная сеть с двумя компьютерами, где вторая с IP 192.168.1.10 размещает веб-сайт с использованием Apache. Поэтому маршрутизатор должен перенаправлять входящий порт 80 запросов на этот аппарат. Используя переадресацию портов, обе машины могут работать в одной и той же сети одновременно.

Пример перенаправления портов

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

Заметка о безопасности

Одна из приятных особенностей NAT заключается в том, что она обеспечивает некоторую беспроблемную встроенную защиту. Многие люди блуждают по интернету, ищущие машины, которые уязвимы ... и они делают это, пытаясь открыть соединения с различными портами. Это входящие соединения, поэтому, как обсуждалось выше, маршрутизатор будет их отбрасывать.Это означает, что в конфигурации NAT только сам маршрутизатор уязвим для атак, связанных с входящими подключениями. Это хорошо, потому что маршрутизатор намного проще (и, следовательно, он менее уязвим), чем компьютер, на котором работает полная операционная система с большим количеством программного обеспечения. Вы должны помнить о том, что путем DMZing компьютера внутри вашей сети (установка его как адресата DMZ) вы потеряете этот уровень безопасности для этого компьютера: теперь он полностью открыт для входящих соединений из Интернета, поэтому вам нужно закрепите его так, как если бы он был напрямую подключен. Конечно, в любой момент, когда вы пересылаете порт, компьютер на принимающей стороне становится уязвимым для этого конкретного порта. Поэтому убедитесь, что вы запустили обновленное программное обеспечение, которое хорошо настроено.

ответил Serge Stroobandt 29 Jpm1000000pmMon, 29 Jan 2018 17:51:31 +030018 2018, 17:51:31

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132