Как подключиться к открытому порту

от admin

Как подключиться к открытому порту

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

netcat

Ещё nc умеет UDP.

точно, про netcat там было

Запустил, уже больше минуты висит, ничего не пишет в ответ.

не надо проверять локальные порты через nmap. Это делается через netstat -tunelp

Мне не локальный нужно проверить, а удаленный, который за НАТом

К UDP вообще, внезапно, нельзя *подключиться* т.к. это connectionless протокол. Можно на том конце открыть порт в nc и слушать, а снаружи тем же nc в него плевать.

Надеюсь, ты проверяешь с внешнего хоста, а не изнутри сети?

Роутинг внешинх занатеных портов во внутреннюю сеть — дело не тривиальное и скорее всего у тебя не настроено (там нужен double-nat).

Как научиться открывать сетевые порты в Windows 7 и 10

Довольно часто люди сталкиваются с непонятными, на первый взгляд, проблемами в работе программ или игр, связанными с невозможностью их подключения к серверу. Многие начинают искать причину не там, где нужно, пеняя на плохое интернет-соединение, несовместимость ПО или его высокие системные требования. Ответ может крыться в заблокированном канале передачи данных. Для этого нужно открыть порты в операционной системе Windows.

В нашей новой статье мы кратко расскажем вам об общем назначении портов и как их разблокировать в ОС Windows, приведя несколько примеров.

Что такое «Порт» и зачем он нужен

Основная задача персонального компьютера – обрабатывать информацию, используя для этого множество программ разного назначения. Большая часть программ обращается к собственному серверу для получения и отправки пакетов данных, например, регулярных обновлений или отдельных файлов (файлообменники). Передача информации происходит по определенному каналу – порту. Каждый порт (туннель) имеет свой номер, являющийся идентификатором и определяющий его назначение. Например, чтобы воспользоваться удаленным рабочим столом другого компьютера, нужно проверить статус и при необходимости открыть порт 3389.

При установке новой игры или другого софта по умолчанию происходит автоматическая проверка туннеля и подключение к серверу. Брандмауэр Windows выводит окно на экран с предложением о разрешении или запрете активности данной программы в сети. Если такового не наблюдается и ПО не хочет подключаться – нужно открыть его порт на компьютере.

Проверка статуса портов

Перед открытием туннеля сначала нужно проверить открытые порты в Windows. Для этого отлично подойдет обычная командная строка.

  1. Открываем меню «Пуск/Программы/Стандартные» и выбираем программу «Командная строка».

Другой способ – введите «cmd» (без кавычек) в поисковую строку Пуска и нажмите «Enter».

  1. В открывшейся командной строке задаем команду «netstat –aon | more» без кавычек. Система отобразит состояние всех активных туннелей.

Смотрим на два последних столбца и находим нужный номер. Напротив номера выведен его статус:

  • Listening – идет опрос свободного порта системой. Он является открытым.
  • Established – идет передача данных, порт занят.
  • Close wait – процесс прекращения передачи данных.
  • Time wait – порт не отвечает.
  1. Открыв «Диспетчер задач» комбинацией клавиш Ctrl+Alt+Delete, вы сможете узнать, чем занят нужный порт, сопоставив его номер из консоли с идентификатором процесса.

Если требуемый порт отсутствует или занят – переходим к следующему пункту.

Открываем порт через Брандмауэр Windows

Брандмауэр служит защитой (экраном) от внедрения опасных и шпионских программ и вирусов, которые могут проникнуть из интернет-сети. Он отслеживает исполняемые процессы и трафик. С его помощью можно разблокировать порты для конкретной задачи.

Процесс деблокирования выглядит так:

  1. Заходим в «Пуск/Панель управления/Система и безопасность» и находим «Брандмауэр ЗащитникаWindows» (либо «Брандмауэр Windows»).
  2. Выбираем пункт «Дополнительные параметры».

  1. В этом меню содержится список процессов, использующих каналы для подключения к серверам. Для того чтобы открыть порты в брандмауэре, нажимаем на «Правила для входящих подключений» и «Создать правило».
  2. Если вам известно, какой именно канал вам нужен, то указываем пункт «Для порта».

Ради примера попробуем открыть порт 27015 для сетевого шутера Counter-Strike 1.6.

Выбираем «Разрешить подключение» и жмем «Далее».

Выделяем галочками все варианты.

Вписываем имя программы, например, «CS 1.6» и нажимаем кнопку «Готово».

Созданное нами правило появится в общем списке. Теперь порт для игры открыт. Этот способ является стандартным и он идентичен для последних версий Windows, начиная с «семерки».

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

По тому же принципу вы можете открыть порт 8080 и 443, которые отвечают за передачу данных через http-сервер и https-сервер повышенной безопасности для онлайн-игр, сервисов, кассовых аппаратов и прочих услуг.

Открываем порт 80

Данный канал является главным для передачи данных между ПК и Всемирной сетью по протоколу http. Порт 80 не освободить вышеописанным способом, так как он контролируется специальным системным драйвером http.sys.

На этот раз мы обратимся к командной строке.

  1. Открываем командную строку известным способом и вводим команду «netsh http «add iplisten ipaddress=::» (без кавычек) и жмем «Enter».
  2. Второй шаг – это внесение изменения в файл блокнота hosts, находящийся по пути «C:\Windows\System32\drivers\etc\hosts». В нем необходимо добавить запись «127.0.0.1 local» (без кавычек). После этого перезагрузить свой ПК и проверить статус порта 80.
  1. Если это не помогло, то открываем меню «Пуск/Панель управления/Программы/Программы и компоненты» и нажимаем на «Включение или отключение компонентовWindows».
  2. Отключаем службы IIS, снимая все галочки с пунктов.

Перезагружаем компьютер и опять проверяем доступность 80 порта.

Применение стороннего софта CurrPorts

В рассмотренных выше способах использовались лишь стандартные ресурсы Windows, однако, в Сети есть несколько программ для открытия портов на Windows. Первой на обзоре мы выбрали «CurrPorts» версии 2.51 от разработчика Nir Sofer. Она помогает узнать все свои активные порты на Windows и пригодится для их быстрого освобождения, удаляя ненужный или опасный процесс. Программа бесплатна и легка в освоении.

Для ее использования:

  1. Переходим на сайт разработчика https://www.nirsoft.net/utils/cports.html и скачиваем программу и русификатор на ПК. Русификатор распаковываем в папку с файлами ПО.
  1. Программа предлагает массу информации о процессе, включая занимаемый им порт.

На скриншоте мы видим, что антивирус Avast занимает два порта: 80 и 443. При желании мы можем закрыть данное соединение из контекстного меню или панели инструментов программы (но делать этого не советуем по понятным причинам). Закрывайте только те ненужные процессы, назначение которых вам известно.

Преимущества

  • Бесплатная программа на русском языке.
  • Не требует установки.
  • Отображает все запущенные процессы и занимаемые ими порты в реальном времени.
  • Предоставляет самую подробную информацию.
  • Можно освобождать порты от одного или всех процессов.
  • Классический понятный интерфейс.

Недостатки

  • Не выявлено.

Работаем с UPnP Wizard

Простая программка для управления портами «UPnP Wizard», работающая почти со всеми модемами по технологии UPnP. Вам не составит труда посмотреть открытые порты в Windows и освободить самые необходимые из них. ПО бесплатно, но не поддерживает русский язык, что может осложнить управление для некоторых пользователей.

Начинаем работу с UPnP Wizard так:

  1. По ссылке https://www.xldevelopment.net/upnpwiz.php переходим на ресурс разработчиков и скачиваем ПО бесплатно.
  2. Устанавливаем и запускаем UPnP Wizard. Перед пользователем появятся все активные порты и занимаемые их процессы.

Для примера попробуем открыть порт 7777, который нужен для обмена данными с сервером игры SAMP (San Andreas Multiplayer Mod). Нажимаем на зеленый плюс панели инструментов.

Важно: если программа не может найти процессы – проверьте, подключена ли функция UPnP на вашем роутере, зайдя в его настройки.

  1. В окне создания порта вводим произвольное название (например, SAMP), номер порта (7777) и тип протокола (TCP). После этого подтверждаем данные кнопкой «ОК».

В таблице появится новый пункт с открытым портом для игры SAMP.

Преимущества

  • Бесплатная лицензия.
  • Красивый интерфейс без нагромождений.
  • Работает со многими моделями роутеров, поддерживающих технологию UPnP.
  • Можно быстро открывать и освобождать порты.

Недостатки

  • Нет перевода на русский язык.
  • Малоинформативная сводка о запущенных процессах.

Онлайн-сервис 2ip.ru

Ну и напоследок мы воспользуемся простым онлайн-сервисом «2ip.ru», предназначенным для отображения разной полезной информации на компьютере, включая сетевые порты.

Для посещения сервиса:

  1. Открываем интернет-браузер и переходим по ссылке https://2ip.ru/check-port.
  2. В свободную строку вводим номер порта, например, 25565 и нажимаем «Проверить».

  1. Как видно на скрине выше, туннель 25565 уже занят. Таким образом вы сможете проверить любой канал на занятость.

Преимуществами такого способа выступают его доступность и отсутствие необходимости в установке отдельного ПО. Но он лишь служит как дополнение предыдущим двум вариантам.

Подводим итоги вышесказанному

В этой статье мы постарались дать вам ответ на вопрос: «как открыть порты на Windows 7 и 10?». Для этого нами было выбрано и описано самые востребованные способы решения данной проблемы с примерами.

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

Стандартные инструменты Windows оказались не самыми удобными в управлении, однако, предоставляют достаточный объем информации о процессах и занятых ими портах. Работа с Брандмауэром и консолью довольно проста и после нашего примера вы сможете самостоятельно повторить все это на своем компьютере.

CurrPorts выводит максимум данных о портах и процессах, позволяет удалять (освобождать) их, но не дает возможности открыть новые. На наш взгляд, софт отлично подойдет для отслеживания потенциальных угроз из Сети и их устранения.

Несмотря на отсутствие русскоязычного интерфейса, UPnP Wizard очень практична и может как создавать, так и освобождать порты. Единственным ограничением является требование к поддержке роутером UPnP интерфейса. Мы считаем, что этот вариант самый удобный для повсеместного использования.

Как открыть порты в Windows и посмотреть список открытых портов

Как открыть порты в Windows

Если для какой-то программы или игры требуется подключение через определенный порт, может оказаться что по умолчанию в системе этот порт закрыт и соединение не выполняется. При необходимости порты в Windows 11, Windows 10 и предыдущих версиях системы сравнительно легко открыть.

В этой инструкции подробно о том, как открыть порты в Windows 11 или Windows 10, посмотреть список открытых портов и дополнительная информация, которая может пригодиться, если при подключении всё равно возникают проблемы.

Открытие портов в брандмауэре Windows

Основной способ открытия портов в Windows 11 и 10 — настройка соответствующих правил в брандмауэре.

Прежде всего, откройте настройки Windows в режиме повышенной безопасности. Для этого можно использовать следующие способы:

  • нажмите клавиши Win+R на клавиатуре и введите wf.msc в окно «Выполнить», затем нажмите Ener.
  • Используйте поиск в панели задач. Открыть брандмауэр в режиме повышенной безопасности через поиск
  • В Панели управления откройте пункт «Брандмауэр Защитника Windows», а в нем, в панели слева выберите «Дополнительные параметры». Открыть брандмауэр защитника Windows в режиме повышенной безопасности в панели управления
  • В окне «Безопасность Windows» откройте «Брандмауэр и безопасность сети» и нажмите «Дополнительные параметры» на следующем экране настроек. Открыть брандмауэр в окне Безопасность Windows

Следующий шаг — настроить правила для нужных портов:

  1. Нажмите правой кнопкой мыши по «Правила для входящих подключений» и выберите пункт «Создать правило» в контекстном меню. Создать новое правило в брандмауэре Windows
  2. В мастере создания правил выберите пункт «Для порта» и нажмите «Далее». Создать правило для порта в брандмауэре
  3. Выберите тип протокола — TCP или UDP (если вам не известен нужный тип, уточните в справке по конкретной программе).
  4. Укажите порты: конкретный порт или их диапазон, можно использовать запятые для перечисления нескольких портов, или знак дефиса для указания их диапазона. Нажмите «Далее». Указать порты, которые нужно открыть в брандмауэре
  5. Выберите пункт «Разрешить подключение». Разрешить подключение для порта
  6. Укажите, для каких типов сетей (сетевых профилей) следует открыть порты. Выбрать сетевые профили
  7. Укажите имя правила и, при желании, его описание. Затем нажмите кнопку «Готово».
  8. Выполните действия 1-7, но уже для исходящего подключения.
Читать:
Rx 7 breath control что это

Готово, порт открыт и, если что-то ещё не мешает его работе, соединения должны будут устанавливаться.

Возможные проблемы и дополнительные необходимые действия

Если вы открыли требуемые порты в Windows, но несмотря на это соединение не устанавливается, следует учитывать, проверить или выполнить следующие действия:

Открытие портов на роутере

  • VPN может влиять не возможность обмена данными по определенным портам. Решение: отключить VPN, либо посмотреть, есть ли возможность открыть порты в ПО для VPN.
  • Роутеры имеют собственные функции файрволла/брандмауэра и порты может потребоваться открыть (пробросить) и в настройках роутера. В зависимости от марки и модели Wi-Fi роутера, это выполняется в разных разделах: перенаправление портов (port forwarding), брандмауэр (firewall), межсетевой экран, виртуальные серверы. Логика настройки везде одна и та же: добавляются обычно совпадающие внешний порт и внутренний порт (нужный вам порт), указывается внутренний IP (локальный IP компьютера, к которому нужно пробросить порт), тип протокола — TCP или UDP, иногда требуется указать интерфейс, для соединений из «внешней сети» — WAN.
  • Если само приложение заблокировано в брандмауэре, оно не сможет устанавливать соединения: можно добавить правила, разрешающие подключения для программы тем же способом, которым это выполнялось выше для портов.
  • Наличие сторонних файрволлов и антивирусов с функциями защиты сети также может влиять на возможность установки соединений по определенным портам: следует проверить их настройки, при наличии такого ПО, чтобы открыть соответствующие порты или отключить защиту для них.

Как посмотреть открытые порты в Windows и какие программы их используют

В Windows постоянно открыты многие порты, требующиеся как для работы системных служб, программ (в том числе сторонних), браузеров. Вы можете посмотреть список открытых портов одним из следующих способов:

  1. Запустить командную строку и ввести команду (порты указаны после двоеточия в IP-адресе)Открытые порты с помощью команды netstat -a
  2. Если требуется посмотреть, какие процессы используют определенные порты, используйте команду (требует запуска от имени администратора)Открытые порты и процессы netstat -ab
  3. Для просмотра открытых портов с ИД (PID) процесса (по которому в диспетчере задач можно увидеть конкретный процесс):Открытые порты и PID netstat -aon
  4. Есть сторонние программы, позволяющие получить сведения об открытых портах и использующих их процессах, например, бесплатная NirSoft CurrPorts. Открытые порты в CurrPorts

Список «стандартных» и наиболее часто используемых портов доступен в Википедии, но многие игры и программы могут использовать свои собственные, не указанные в списке порты для работы.

Как открыть порт iptables

Самой распространенной операцией при работе с межсетевым экраном, по моему мнению, является операция закрытия и открытия портов на сетевом интерфейсе. Порт открывается для того чтобы к нему можно было получить доступ из вне. Закрывают же порт чтобы запретить устанавливать соединение с программой на вашем устройстве, работающей по этому порту. В этой статье мы рассмотрим как открыть порт iptables на примере Debian Linux.

Порт — это, грубо говоря, номер квартиры в многоквартирном доме, за которым проживают известные (или не очень) жильцы. IP адрес — это номер многоквартирного дома, в котором множество квартир. Жилец — это программа, использующая данный номер порта. Этот пример работает в том случае, когда целью является открытие и закрытие доступа программам на том же самом компьютере, который подключен к сети Интернет.

Как открыть порт с помощью iptables

В iptables для создания нового правила или блока правил используется команда:

sudo iptables [ -t таблица ] -A [ цепочка ] спецификации_правила

sudo iptables -t filter -A INPUT -p tcp -s 8.8.8.8 —sport 53 -d 192.168.1.1 -j ACCEPT

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

Примечание: Существуют таблицы общепринятых номеров портов для распространённых программ и типов программ по функциональному назначению. Остальные порты являются свободно используемыми. Рассмотрение таблиц портов выходит за рамки данной статьи. Вернемся к простой задаче закрыть один порт.

Примечание: Если вы собираетесь открыть порт, убедитесь, что политика iptables по умолчанию блокировать всё соединения к портам (DROP). Если же используется политика по умолчанию ACCEPT, то ничего открывать не надо, все порты уже открыты, а вам нужно только закрыть те, которые должны быть недоступны из вне. Подробнее в статье как пользоваться iptables.

1. Один порт

Чтобы открыть порт iptables debian используется следующая команда:

sudo iptables [ -t таблица ] -A [ цепочка ] -p протокол [ —sport порт_отправителя ] [ —dport порт_назначения ] -j [ действие ]

sudo iptables -t filter -A INPUT -p tcp —dport 8081 -j ACCEPT

В данном случае мы открыли в таблице filter в цепочке INPUT протокола tcp порт назначения 8081 с помощью действия ACCEPT (принять). Таким образом для всех внешних машин, пытающихся установить соединение по данному порту, данный порт будет теперь доступен. Если мы хотим открыть порт для конкретной машины следует использовать следующую команду:

sudo iptables -t filter -A INPUT -p tcp -s 10.0.0.1/32 —dport 8080 -j ACCEPT

Мы открыли порт 8080 на нашем компьютере для внешней машины с адресом 10.0.0.1.

2. Диапазон портов

Чтобы открыть диапазон портов iptables используется команда:

sudo iptables [ -t таблица ] -A [ цепочка ] -p протокол [ —sport начальный_порт_отправителя:конечный_порт_отправителя ] [ —dport начальный_порт_назначения:конечный_порт_назначения ] -j [ действие ]

sudo iptables -t filter -A INPUT -p tcp —dport 18070:18081 -j ACCEPT

Данной командой мы открыли порты 18070-18081 для входящих пакетов, адресованных именно этому компьютеру, передаваемых по протоколу TCP.

3. Входящее и исходящее соединения

Все пакеты можно разделить на два типа: пакеты, приходящие на данный узел и пакеты, отправляемые данным узлом. В самом распространенном случае и для исходящих, и для входящих пакетов будет использоваться один и тот же сетевой интерфейс (физическое или логическое устройство, отвечающее за преобразование пакетов в сигналы и передачу сигналов в сеть).

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

Правила для входящих соединений будут в большинстве случаев расположены в цепочках PREROUTING, INPUT. Правила для исходящих соединений будут в большинстве случаев расположены в цепочках POSTROUTING, OUTPUT.

Чтобы разрешить порт iptables для входящего соединения:

sudo iptables -t filter -A INPUT -p tcp —dport 8080 -j ACCEPT

Пример для исходящего соединения:

sudo iptables -t filter -A OUTPUT -p tcp —dport 8080 -j ACCEPT

Примечание: В данном случае правила выглядят очень похоже, но смысловое значение у них будет абсолютно противоположное. В первом случае мы имеем дело с пакетом ВХОДЯЩИМ, который должен поступить на порт назначения 8080 НАШЕГО компьютера. Во втором случае мы имеем дело с пакетом ИСХОДЯЩИМ, который должен поступить на порт назначения 8080 УДАЛЕННОГО компьютера. Следует также заметить, что программа не использует на нашем компьютере и удаленном компьютере одинаковый номер порта для одной программы. Порты будут различаться.

4. Состояние соединения

Существует возможность формировать правила фильтрации пакетов по совпадению с определенными шаблонами дополнительной спецификации правил Netfilter. За это отвечают параметры -m и -j. Мы рассмотрим использование параметра -m, который может использовать множество различных шаблонов, из которых мы рассмотрим один: —state состояние. Этот шаблон может принимать следующие значения:

  • NEW — пакет открыл новое соединение или иным образом связан с соединением, в рамках которого ещё не было пакетов в обоих направлениях (входящем и исходящем);
  • ESTABLISHED — пакет связан с соединением, которое видело пакеты в обоих направлениях;
  • RELATED — пакет открывает новое соединение, но связан с уже существующим соединением, например, передача данных FTP или ошибка протокола ICMP;
  • INVALID — пакет, связанный с неизвестным соединением.

Открытие портов iptables для новых соединений:

sudo iptables -t filter -A INPUT -p tcp -s 192.168.1.0/24 —dport 445 -m state —state NEW -j ACCEPT

В этом примере в таблицу filter в цепочку INPUT для протокола tcp, от компьютера из подсети 192.168.1.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, открывающих новое соединение, применить действие ACCEPT (принять пакет).

А такая команда позволяет добавить порт iptables для уже установленных соединений:

sudo iptables -t filter -A INPUT -p tcp -s 192.168.2.0/24 —dport 445 -m state —state ESTABLISHED -j ACCEPT

В данном случае в таблицу filter в цепочку INPUT для протокола tcp, от компьютера из подсети 192.168.2.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, поступающих в рамках уже открытого соединения, применить действие ACCEPT (принять пакет).

Как закрыть порт iptables

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

sudo iptables -t filter -A INPUT -p tcp -s 192.168.3.0/24 —dport 445 -m state —state ESTABLISHED -j DROP

Эта команда в таблицу filter в цепочку INPUT запишет правило для протокола TCP, от компьютера из подсети 192.168.3.0/24, на порт назначения 445 (так как цепочка входящая, то порт назначения находится на данном компьютере) для пакетов, поступающих в рамках уже открытого соединения, применять действие DROP (отбросить пакет).

Для правил, запрещающих прием пакета, применимо всё сказанное выше для закрытия порта (одиночный порт, диапазон портов, входящие и исходящие соединения, действия для установленных соединений и новых соединений). Про закрытие портов в iptables читайте более подробно в отдельной статье.

Проверка открыт ли порт

Когда мы настроили все правила, закрывающие и открывающие порты, нам необходимо проверить корректность примененных настроек. Для этого можно использовать приложение telnet. Telnet — приложение, позволяющее установить двунаправленное соединение между двумя компьютерами с помощью протокола telnet. В рамках нашей задачи попытка установления соединения между двумя машинами в сети используется как тест правил Netfilter. Выполняем команду следующего вида:

$ telnet ip-адрес порт

telnet 192.168.1.5 443

В данной команде будет проверен 443 порт у машины с ip-адресом 192.168.1.5. Если на порту 443 на удаленной машине разрешено входящее соединение и правила на локальной машине разрешают исходящее соединение на порту 443, то получим сообщение:

Connection closed by foreign host.

Или неожиданно можем получить приглашение доступа к данной машине, если на этом порте ожидает подключения серверная часть telnet.

Если же правила запрещают входящее соединение на удаленной машине, или исходящее соединение на нашей локальной машине на порту 443, то получим сообщение:

telnet: Unable to connect to remote host: Connection timed out

Примечание: Чтобы получить результаты необходимо подождать довольно продолжительное время, чтобы telnet получил результат попытки соединения по указанному порту.

Выводы

Итак, сегодня мы рассмотрели как открыть порт 80 iptables или любой другой на локальной машине. Теперь мы знаем, как открыть (или закрыть) конкретный порт, диапазон портов, в чем разница между входящими и исходящими соединениями, как работать с новыми и уже установленными соединениями.

Похожие статьи