Є багато питань щодо "переадресації порту" , але, здається, не існує жодного, який чітко визначає, що це таке і для чого воно використовується. Тому:
Що таке переадресація порту?
Для чого він використовується, і навіщо він мені потрібен?
Є багато питань щодо "переадресації порту" , але, здається, не існує жодного, який чітко визначає, що це таке і для чого воно використовується. Тому:
Що таке переадресація порту?
Для чого він використовується, і навіщо він мені потрібен?
Відповіді:
Щоб справді пояснити переадресацію портів, спочатку потрібно зрозуміти трохи більше про те, що робить ваш маршрутизатор . Ваш постачальник послуг Інтернету призначає вашу Інтернет-адресу однієї IP-адреси. Усі комп'ютери в Інтернеті потребують унікальної IP-адреси, але у вас є кілька комп'ютерів у вашому домі та лише одна адреса. То як це працює?
Якщо ви знаєте, що це таке, і просто хочете знати, як це зробити : http://portforward.com/ має інструкцію із скріншотами для буквально сотні різних маршрутизаторів. Документація там захована за рекламною сторінкою для їх автоматичного інструменту portconfig. (Просто натисніть трохи, і ви знайдете його.)
Ваш домашній маршрутизатор має вбудовану функцію під назвою Переклад мережевих адрес або NAT. Всередині вашої мережі комп'ютери мають адреси, такі як 192.168.1.100. Усі адреси в діапазоні 192.168. * (Або в діапазоні 10. *) - це " приватні " або " зарезервовані " адреси. Ці адреси IANA офіційно призначає для використання у приватних мережах. Ваш маршрутизатор автоматично призначає таку адресу кожному комп'ютеру, підключеному через DHCP . Ці адреси - це те, як комп'ютери у вашій мережі спілкуються з маршрутизатором і один з одним.
Ваш маршрутизатор має окремий мережевий інтерфейс, який підключає його до Інтернету. Цей інтерфейс має зовсім іншу адресу, яку призначає ваш Інтернет-провайдер. Це та адреса, яку я згадував раніше, і ваш маршрутизатор використовує її для спілкування з іншими комп’ютерами в Інтернеті. На комп'ютерах у вашій мережі є приватні IP-адреси, що не підлягають маршрутизації , тобто, якщо вони надсилають пакети безпосередньо до Інтернету, пакети автоматично будуть відкинуті (пакети з приватними адресами не дозволяють просувати Інтернет через причини стабільності). Але ваш маршрутизатор має адресу маршрутизації . Переклад мережевих адрес, як випливає з назви, перекладається між цими двома типами адрес, що дозволяє декільком комп'ютерам у вашій мережі з’являтися в Інтернеті як один комп'ютер з однією адресою.
Хоча це може здатися складним, насправді досить просто, як це робить ваш маршрутизатор. Кожен раз, коли комп'ютер у вашій мережі хоче підключитися до комп'ютера в Інтернеті, він надсилає запит на з'єднання маршрутизатору (він знає, що надіслати його до маршрутизатора, оскільки його параметр Шлюз за замовчуванням встановлений на адресу маршрутизатора). Потім маршрутизатор приймає цей запит на з'єднання ("запит 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) ви втрачаєте цей рівень безпеки для цього комп’ютера: він тепер повністю відкритий для вхідних з'єднань з Інтернету, тому вам потрібно закріпити його так, ніби він безпосередньо підключений. Звичайно, щоразу, коли ви пересилаєте порт, комп'ютер на кінці прийому стає вразливим на цьому конкретному порту. Тому переконайтеся, що ви запускаєте сучасне програмне забезпечення, яке добре налаштоване.