Есть много вопросов о «переадресации портов» , но, похоже, нет такого, который бы четко указывал, что это такое и для чего он используется. Так:
Что такое переадресация портов?
Для чего он используется и зачем он мне нужен?
router
port-forwarding
port
community-faq
James Mertz
источник
источник
Ответы:
Основы
Чтобы по-настоящему объяснить переадресацию портов, сначала нужно немного больше понять, что делает ваш маршрутизатор . Ваш интернет-провайдер назначает один 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), скажем, к веб-серверу, который находится в сети. Письмо / пакет имеет только публичный адрес маршрутизатора, поэтому маршрутизатор фактически не знает, куда его отправить! он может быть предназначен для любого из компьютеров в частной сети или ни для одного из них. Возможно, вы столкнулись с этой проблемой, когда звоните кому-то на домашний телефон - когда они звонят вам, это не проблема, но когда вы звоните им, у них нет возможности узнать, кому звонят, поэтому не тот человек может ответить.
Хотя людям достаточно легко разобраться с этим, для компьютеров это намного сложнее, потому что не каждый компьютер в вашей сети знает все другие компьютеры.
И наконец мы добираемся до переадресации портов
Переадресация портов - это то, как мы решаем эту проблему: это способ сообщить вашему маршрутизатору, на какой компьютер в сети должны быть направлены входящие соединения. У нас есть три разных способа сделать это:
Пример
Давайте посмотрим на пример использования. Многие многопользовательские видеоигры (например, Counter Strike) позволяют запускать игровой сервер на вашем компьютере, к которому другие люди могут подключаться, чтобы играть с вами. Ваш компьютер не знает всех людей, которые хотят играть, поэтому он не может подключиться к ним - вместо этого им приходится отправлять новые запросы на подключение к вашему компьютеру из Интернета.
Если на маршрутизаторе ничего не настроено, он получит эти запросы на подключение, но он не будет знать, на каком компьютере в сети установлен игровой сервер, поэтому он просто проигнорирует их (или, точнее, отправит обратно пакет, указывающий, что он не может подключиться). К счастью, вы знаете номер порта, который будет указан в запросах на подключение к игровому серверу. Итак, на маршрутизаторе вы устанавливаете порт с номером порта, который ожидает игровой сервер (например, 27015), и IP-адресом компьютера с игровым сервером (например, 192.168.1.105).
Маршрутизатор будет знать, как переадресовывать входящие запросы на соединение 192.168.1.105 внутри сети, и компьютеры снаружи смогут подключаться.
Другим примером может быть локальная сеть с двумя компьютерами, где вторая с IP 192.168.1.10 размещает веб-сайт с использованием Apache. Поэтому маршрутизатор должен пересылать входящие запросы порта 80 на эту машину. Используя переадресацию портов, обе машины могут работать в одной сети одновременно.
Видеоигры, пожалуй, самое распространенное место, где обычные пользователи сталкиваются с переадресацией портов, хотя большинство современных игр используют UPnP, поэтому вам не нужно делать это вручную (вместо этого, оно полностью автоматическое). Это необходимо делать всякий раз, когда вы хотите иметь возможность напрямую подключиться к чему-либо в вашей сети (а не через какого-либо посредника в Интернете). Это может включать запуск собственного веб-сервера или подключение по протоколу удаленного рабочего стола к одному из ваших компьютеров.
Записка о безопасности
Одна из приятных особенностей NAT заключается в том, что он обеспечивает некоторую простую встроенную защиту. Многие люди бродят по Интернету в поисках уязвимых компьютеров ... и делают это, пытаясь открыть соединения с различными портами. Это входящие соединения, поэтому, как обсуждалось выше, маршрутизатор их отбросит. Это означает, что в конфигурации NAT только сам маршрутизатор уязвим для атак с участием входящих соединений. Это хорошо, потому что маршрутизатор намного проще (и, следовательно, менее подвержен уязвимости), чем компьютер, на котором установлена полная операционная система с большим количеством программного обеспечения. Поэтому вы должны иметь в виду, что, DMZing компьютер внутри вашей сети (устанавливая его в качестве пункта назначения DMZ), вы теряете этот уровень безопасности для этого компьютера: теперь он полностью открыт для входящих подключений из Интернета, так что вам нужно защитить его, как если бы он был напрямую подключен. Конечно, каждый раз, когда вы перенаправляете порт, компьютер на принимающей стороне становится уязвимым на этом конкретном порту. Поэтому убедитесь, что вы используете современное программное обеспечение, которое хорошо настроено.
источник