(Я не уверен, что Superuser — подходящий сайт, чтобы задать этот вопрос)
Я всегда испытываю трудности с переадресацией портов и хотел бы понять некоторые основные аспекты:
- Мне нужно было открыть порт
27015
для выделенного сервера игры, поэтому я:- Переадресовал порт
27015
на моем маршрутизаторе на сервер [192.168.xx.xx:27015
] - Открытый порт
27015
в брандмауэре Windows
- Переадресовал порт
- Когда ясканированныйпорт был закрыт, и монитор ресурсов Windows также показывал, что он закрыт, однако, когда я запустил свое приложение, порт оказался открытым в обоих этих инструментах.
Какой принцип лежит в основе переадресации портов?
- Это происходит из-за того, что когда я открываю
27015
WANIP:27015 на своем маршрутизаторе, он открыт, но затем мне приходится подключаться к нему с локального компьютера по заданному порту? - Будет ли работать открытие порта
27030
на моем компьютере и перенаправление ?27015
27030
Почему порт не отображался открытым, когда сервер был отключен?
- Чтобы узнать, открыт ли порт, нужно ли, чтобы порт был открыт в дополнение к приложению, прослушивающему его?
решение1
открытие 27030 на моем компьютере и сопоставление ящика 27015 с локальным компьютером 27030 тоже сработало бы?
Да.Затем сервер должен быть настроен на прослушивание порта 27030 на локальном компьютере (и локальный брандмауэр должен быть настроен так, чтобы это разрешалось), но удаленный клиент должен подключаться к порту 27015 вашего внешнего IP-адреса.
Чтобы узнать, открыт ли порт, вам нужно, чтобы этот порт был открыт В ДОПОЛНЕНИЕ к приложению, прослушивающему его?
Да.Посмотрите документацию nmap
(инструмент для сканирования портов)говорит об этом:
open
Приложение активно принимает TCP-соединения, UDP-датаграммы или ассоциации SCTP на этом порту. Их обнаружение часто является основной целью сканирования портов. Люди, заботящиеся о безопасности, знают, что каждый открытый порт — это путь для атаки. Злоумышленники и пентестеры хотят использовать открытые порты, в то время как администраторы пытаются закрыть или защитить их с помощью брандмауэров, не мешая законным пользователям. Открытые порты также интересны для сканирования, не связанного с безопасностью, поскольку они показывают службы, доступные для использования в сети.
закрыто
Закрытый порт доступен (он получает и отвечает на пакеты зондирования Nmap), но на нем нет прослушивающего приложения. Они могут быть полезны для отображения того, что хост находится на IP-адресе (обнаружение хоста или сканирование ping), а также как часть обнаружения ОС. Поскольку закрытые порты доступны, может быть стоит выполнить сканирование позже на случай, если некоторые из них откроются. Администраторы могут рассмотреть возможность блокировки таких портов с помощью брандмауэра. Тогда они будут отображаться в отфильтрованном состоянии, обсуждаемом далее.
Есть больше штатов, признанных nmap
. Сайт, который вы использовалиможет или не может отличить их всех друг от друга(напримерможет бытьвнутри это так, но, возможно, он предназначен для вывода «закрыто» для всего, что не открыто). Я хочу сказать: наличие прослушивающего приложения имеет значение, поэтому общий ответ на ваш вопрос — да.
решение2
Когда вы «зондируете» (за неимением лучшего термина) IP:Port, может произойти 5 разных вещей:
- Ничего: соединение просто «отключается» без ответа.
- Сообщение ICMP, или которое бывает нескольких типов (например, сообщение о перенаправлении или недоступности порта)
- Соединение (трехстороннее рукопожатие Syn:SynAck), но ничего более от приложения. [«Зависшее» соединение]
- Подключение, но ничего от приложения, кроме тайм-аута/отключения через некоторое время. [например, простой telnet к DNS-серверу на порту 53]
- Удачной вам сессии подачи заявлений. :-)
Что именно вы получите, зависит от того, насколько далеко вы зайдете по этому пути.
В случае №1 у вас проблема с маршрутизацией или брандмауэром [Некоторые брандмауэры настроены так, чтобы просто отбрасывать проблемные пакеты.]
Для случая №2, снова множественный выбор: Если ICMP «порт закрыт», проблема либо в брандмауэре, либо в приложении. Для «перенаправления» — маршрутизатор на пути.
В случаях № 3 и № 4 либо вы (источник) не используете протокол, ожидаемый вашим приложением, либо у целевого приложения возникла проблема.
Возвращаясь к вопросу OP: изначально маршрутизаторы не заботятся о статусе назначения. Если они соответствуют настроенным требованиям, они с радостью установят соединение между источником и назначением IP:Port по запросу. Вот почему, даже если вы настроили переадресацию портов на своем маршрутизаторе, он все равно отображается как «открытый», если вы неправильно настроили какой-либо внутренний брандмауэр или не запустили приложение во внутренней системе.
Когда вы это сделаете, вы столкнетесь с ситуацией №5: успешное подключение приложения.
Удачи.