Как узнать, какая программа использует тот или иной порт в windows 7

Установление соединения TCP

Давайте теперь посмотрим, как устанавливается TCP-соединения. Предположим, что процесс, работающий на одном хосте, хочет установить соединение с другим процессом на другом хосте. Напомним, что хост, который инициирует соединение называется «клиентом», в то время как другой узел называется «сервером».

Перед началом передачи каких-либо данных, согласно протоколу TCP, стороны должны установить соединение. Соединение устанавливается в три этапа (процесс «трёхкратного рукопожатия» TCP).

  • Запрашивающая сторона (которая, как правило, называется клиент) отправляет SYN сегмент, указывая номер порта сервера, к которому клиент хочет подсоединиться, и исходный номер последовательности клиента (ISN).
  • Сервер отвечает своим сегментом SYN, содержащим исходный номер последовательности сервера. Сервер также подтверждает приход SYN клиента с использованием ACK (ISN + 1). На SYN используется один номер последовательности.
  • Клиент должен подтвердить приход SYN от сервера своим сегментов SYN, содержащий исходный номер последовательности клиента (ISN+1) и с использованием ACK (ISN+1). Бит SYN установлен в 0, так как соединение установлено.

После установления соединения TCP, эти два хоста могут передавать данные друг другу, так как TCP-соединение является полнодуплексным, они могут передавать данные одновременно.

Что такое порт

Порт (port) — это число в десятичной системе счисления от 0 до 65 535, которое записывается в заголовках протоколов транспортного уровня модели OSI, это те же, TCP, UDP и т.д. Применяется для идентификации программы или процесса для обмена пакетами данных в рамках одного IP-адреса. Т.е. по сути — айпи это уникальный адрес узла (устройства), а порт — это идентификатор его приложений или процессов, выходящих в сеть.

Теперь более понятным языком. Как вам известно еще из статьи про TCP/IP протокол — каждое устройство, которое подключается к сети имеет свой собственный и уникальный идентификатор — айпи адрес. Все программы и процессы, которые работают на этом устройстве используют этот уникальный IP. И как они будут идентифицировать друг друга при выходе в сеть? Таким образом, каждая программа или процесс использует свой порт, так они различают друг друга в сети.

Существует ряд стандартных портов, которые используются по умолчанию. Их зарегистрировала организация IANA (Internet Assigned Numbers Authority). Именно IANA ответственна за ресурсы интернет-протоколов. Всего было зарезервировано 1 024 значения, от 0 до 1 023. Это значительно упростило маршрутизацию в интернете, т.к. они используются приложениями по умолчанию. Вот их небольшой список:

Именно на них устанавливаются соединения по умолчанию, например, сейчас с браузера вы просматриваете этот сайт по порту 443, т.к. сайт работает по https, если бы он был просто на http, то он был бы 80 или 8080.

Как это работает

Когда вы устанавливаете соединение с каким-либо сервером, программой или другим компьютером — генерируется случайный PORT для соединения и вашей идентификации. В дальнейшем обмен пакетами данных будет происходить именно по нему.

Для примера возьмем интернет-сервер со своим уникальным IP-адресом. На нем есть: веб-сервер, почтовый сервер, FTP-сервер. Если нам потребуется соединится с этим сервером, чтобы отправить почту просто по ИП адресу, то, как он поймет, что мы хотим почту? А вот PORT нам в этом, как раз и поможет.

Так, чтобы соединиться с каким-либо сервером, нам надо знать не только его айпи, но и номер порта. И в то же время, чтобы кто-либо извне смог подключиться к нам, к приложению на нашем ПК для получения данных, он должен знать такие же данные. Благо все это происходит автоматически и нам это делать вручную не надо.

Вопрос безопасности

Так, как во многих программах бывают дыры, а используют они для связи, как раз порты, рекомендую использовать, какой-либо Firewall, во избежание потенциального взлома, например, Comodo Firewall. Необходимо в принципе контролировать их доступность и естественно работающие программы.

В заключение

Вот вы и узнали, что это такое, зачем он нужен и как используется. Как видите, все довольно легко и понятно. Хорошего вам серфинга в сети, в скором времени выйдет еще много материала на тему работы сетей.

Преобразование IP-адресов в символьные адреса

Технология активно используется для назначения буквенно-цифровых названий веб-ресурсов. При вводе домена в адресной строке браузера сначала происходит обращение к специальному серверу DNS. Он всегда прослушивает порт 53 у всех компьютеров, которые подключены к интернету, и по запросу преобразует введенное название в стандартный IP-адрес.

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

Запись результатов в текстовый файл

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

  1. Напишите, например, или , а затем добавьте , что означает запись результатов в указанный файл (он будет создан в пользовательской папке). После ввода нажмите на Enter.

Запустите файл, введя его название и формат в консоли.

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

Создание базовой базы

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

Базовый уровень формируется следующими основными пунктами:

  • Сети источника и назначения
  • Задержка и количество переходов между этими сетями
  • Возможности и конфигурация процессора и интерфейса
  • Сроки тестов (рабочие часы/нерабо-часы/часы пик)
  • Версии ОС
  • Нажатие тяги и пропускной способности пропускной способности

Примечание

Создайте базовую линию с одинаковыми моделями серверов (одинаковое количество карт NIC и емкость процессора), чтобы производительность обработки была почти равной.

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

Ниже параметров для измерения пропускной способности и создания базового плана:

  1. Скачайте средство ctsTraffic. Ниже описаны некоторые параметры средства ctsTraffic.

    Параметр Описание
    Этот параметр используется для прослушивания порта на серверах. Если указано, средство ctsTraffic прослушивает все IP-адреса, доступные на этом компьютере. Например, .
    Этот параметр используется для клиентов и указывает IP-адрес сервера, на котором ctsTraffic.exe запущен и находится в состоянии прослушивания. Например, .
    Средство CtsTraffic по умолчанию использует шаблон Push. Это означает, что данные отправляются от клиента на сервер. Когда этот переключатель используется как на клиенте, так и на сервере, данные получаются на клиенте. Не используйте этот параметр при выполнении push-теста.
    Этот параметр указывает количество подключений TCP. Одновременно с клиентом будут создаваться розетки TCP. Восьмерка обычно используется в качестве очередей RSS на сетевых картах средней сети 8. Например, .
    Этот параметр указывает умноженное количество подключений в . Например, . С 10 итерациями клиент будет пытаться 80 подключений в общей сложности. Если этот параметр не указан, клиент будет продолжать попытки 8 подключений до 1000 подключений.
    Используйте этот параметр, чтобы смыть параметр консоли уровня 1 в файл, совместимый с Microsoft Excel.
    Используйте этот параметр, чтобы смыть подробные сведения. Например, сведения о уровне розетки, например время, заданная каждой розеткой для передачи данных. Вы можете проверить, есть ли какие-либо ошибки или дополнительные устранения неполадок с помощью этого параметра.
    Этот параметр указывает представление или выход на мониторе во время тестирования. Например, .
  2. Open Resource Monitor на стороне приема. Например, если вы используете, откройте его на клиенте, в противном случае откройте его на сервере.

  3. Запустите средство ctsTraffic на сервере и запустите следующую команду:

  4. Запустите средство ctsTraffic на клиенте и запустите следующую команду:

  5. Убедитесь, что процессоры приемной стороны используются в 10 раз. Если они не работают, проверьте проблему с RSS, чтобы узнать, какой из них работает не так, как ожидалось.

  6. Вычислять пропускную способность в битах в секунду в зависимости от результата на клиенте. Обратитесь к примеру на следующем скриншоте:

    В этом примере пропускная способность составляет почти 19 Гб/с и рассчитывается следующим образом:

    (85 899 349 200 bytes/36.678 seconds) * 8 = 18 735 885 097.33355 (биты/секунда)

Примеры использования

А теперь давайте рассмотрим примеры использования утилиты ss Linux. Возможно, из описания опций вы мало что поняли, но с примерами все встанет на свои места.

Мониторинг сетевых подключений

Сначала смотрим все сетевые подключения:

Посмотрим только TCP соединения:

Или:

Теперь только Unix:

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

По умолчанию утилита не пытается определять имена хостов через dns, но можно ее попросить делать это опцией -r:

Обратная опция -n, не будет выполняться не только dns резолвинг, но и определение протоколов портов, зато мониторинг сети в Linux работать будет быстрее:

Теперь просмотрим только прослушиваемые tcp сокеты.

Здесь мы видим только имена служб, это не всегда удобно, указав опцию n, мы получим номера портов. Так же само можно посмотреть прослушиваемые udp сокеты:

Также мы можем попытаться узнать название и PID процесса, использующего сокет:

Просмотр статистики статистики сетевых подключений

Для просмотра статистики по использованию сетевых подключений наберите:

С помощью опции -о можно посмотреть информацию о таймере и состоянии подключения.

Фильтрация по протоколу

Мы можем отображать только нужный нам протокол. Например только ipv4:

Или:

Так же само можно отобразить только соединения ipv6:

Фильтрация по состоянию соединения

В синтаксисе команды мы описали два дополнительных параметра. Фильтрация состояния и фильтрация по адресу. Рассмотрим теперь как ими пользоваться. Сокет TCP может находиться в одном из нескольких состояний. Например, так утилита ss linux выведет только подключенные сокеты.

Или сокеты в состоянии ожидания:

В параметр state можно передать одно из следующих значений:

  • established
  • syn-sent
  • syn-recv
  • fin-wait-1
  • fin-wait-2
  • time-wait
  • closed
  • close-wait
  • last-ack
  • closing
  • all  — все состояния
  • connected — все кроме прослушиваемых и закрытых
  • synchronized — все кроме syn-sent
  • bucket —  time-wait и syn-recv
  • big — все кроме bucket

Не все состояния подключений можно увидеть просто выполнив команду. Например, syn-sent и syn-recv вряд ли получиться словить, потому что соединения находятся в этом состоянии очень короткое время. Для их отображения удобно использовать команду watch:

После запуска команды откройте любой сайт в браузере. Вы увидите как появится одно или несколько соединений на несколько секунд.

Фильтрация по адресу и номеру порта

Кроме фильтрации по состоянию, tcp сокеты можно фильтровать по адресам или портам соединений.

Например, отберем все сетевые подключения linux с портом источником или приемником ssh, то есть все входящие и исходящие соединения ssh:

Или сокеты с портом назначения 80 или 443:

Такой синтаксис тоже будет работать:

Еще несколько примеров фильтрации:

Фильтрация по адресу:

Фильтрация по адресу и подсети:

И по адресу и порту:

Если вы хотите фильтровать сетевые соединения по порту, перед портом ставьте двоеточие:

Можно использовать такие операторы сравнения:

  • <= или le — меньше или ровно порту.
  • >= или ge — больше или ровно порту.
  • == или eq — точное соответствие.
  • != или ne — не равно.
  • < или gt — меньше.
  • > или lt — больше.

Использование NirSoft CurrPorts

Если вы не любите командную строку или предпочли бы использовать простую утилиту, чтобы сделать всё это за один шаг, мы рекомендуем отличный бесплатный CurrPorts. Загрузите инструмент. Только убедитесь, что вы получили правильную версию (обычная версия для 32-разрядной версии Windows, а версия x64 – для 64-разрядной Windows). Это портативное приложение, поэтому вам не нужно его устанавливать. Просто распакуйте папку загрузки и запустите исполняемый файл.

В окне CurrPorts отсортируйте по столбцу «Локальный порт», найдите порт, который вы исследуете, и вы можете увидеть всё: имя процесса, ID, порт, полный путь к процессу и т.д.

Чтобы сделать это ещё проще, дважды щелкните любой процесс, чтобы увидеть каждую деталь в одном окне.

Когда вы определите, какое приложение или служба связаны с порт, – Вы сможете решить, как его использовать. Если это приложение, то можно указать другой номер порта. Если это сервис или у вас нет возможности указать другой номер порта – вероятно, Вам придётся остановить службу или удалить приложение.

Обзор протокола POP

POP3 (Post Office Protocol Version 3) – это сетевой протокол, используемый почтовым клиентом для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.

По умолчанию использует TCP-порт 110. Существуют реализации POP3-серверов, поддерживающие TLS и SSL.

После установки соединения протокол РОР3 проходит три последовательных состояния:

  1. авторизация клиент проходит процедуру аутентификации;
  2. транзакция клиент получает информацию о состоянии почтового ящика, принимает и удаляет почту;
  3. обновление сервер удаляет выбранные письма и закрывает соединение.

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

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

Используем команду «netstat» для проверки интернет-активности в Windows

 

  1. Откройте командную строку. Windows Vista / 7 потребует прав администратора (см. статью)
  2. Введите «netstat -b» (без кавычек)

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

Вы так же можете вывести список соединений, в котором будут отображаться не доменные имена получателей, а их IP-адреса. Для этого вам необходимо добавить в параметр символ «n», который и переключит отображение. С учетом этого, шаг 2 приобретает следующий вид:

Введите «netstat -nb» (без кавычек)

Что такое протокол TCP?

TCP — это протокол транспортного уровня, предоставляющий транспортировку (передачу) потока данных, с необходимостью предварительного установления соединения, благодаря чему гарантирует уверенность в целостности получаемых данных, также выполняет повторный запрос данных в случае потери данных или искажения. Помимо этого протокол TCP отслеживает дублирование пакетов и в случае обнаружения — уничтожает дублирующиеся пакеты. TCP — это аббревиатура от Transmission Control Protocol (Протокол Управления Передачей) — является обязательным протоколом стандарт TCP/IP, определенный в стандарте RFC 793, «Transmission Control Protocol (TCP)».

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

TCP обеспечивает свою надежность благодаря следующему:

  • Данные от приложения разбиваются на блоки определенного размера, которые будут отправлены.
  • Когда TCP посылает сегмент, он устанавливает таймер, ожидая, что с удаленного конца придет подтверждение на этот сегмент. Если подтверждение не получено по истечении времени, сегмент передается повторно.
  • Когда TCP принимает данные от удаленной стороны соединения, он отправляет подтверждение. Это подтверждение не отправляется немедленно, а обычно задерживается на доли секунды
  • TCP осуществляет расчет контрольной суммы для своего заголовка и данных. Это контрольная сумма, рассчитываемая на концах соединения, целью которой является выявить любое изменение данных в процессе передачи. Если сегмент прибывает с неверной контрольной суммой, TCP отбрасывает его и подтверждение не генерируется. (Ожидается, что отправитель отработает тайм-аут и осуществит повторную передачу.)
  • Так как TCP сегменты передаются в виде IP датаграмм, а IP датаграммы могут прибывать беспорядочно, также беспорядочно могут прибывать и TCP сегменты. После получения данных TCP может по необходимости изменить их последовательность, в результате приложение получает данные в правильном порядке.
  • Так как IP датаграмма может быть продублирована, принимающий TCP должен отбрасывать продублированные данные.
  • TCP осуществляет контроль потока данных. Каждая сторона TCP соединения имеет определенное пространство буфера. TCP на принимающей стороне позволяет удаленной стороне посылать данные только в том случае, если получатель может поместить их в буфер. Это предотвращает от переполнения буферов медленных хостов быстрыми хостами.

Как в Windows узнать, какая программа прослушивает порт (используя CMD)

Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами

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

Для поиска службы, можно добавить к команде NETSTAT опцию -b, которая означает показать исполнимый файл, прослушивающий порт:

netstat -anb

Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:

cmd

чтобы переключиться на Windows Console Host (обычную командную строку).

Там запустите команду вида:

for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":80" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m

Эта команда найдёт службы, которые прослушивают 80 порт. Чтобы найти информацию о другом порте, замените в команде цифру 80 на интересующий вас порт.

Пример вывода в моём случае:

C:\Windows\system32>echo 0.0.0.0:80 LISTENING   &
0.0.0.0:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

C:\Windows\system32>echo :80 LISTENING   &
:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

Запись 0.0.0.0:80 означает, порт 80 для любых IPv4 адресов прослушивает служба httpd.exe (веб-сервер Apache). А запись :80 — означает, что порт 80 для любых IPv6 адресов прослушивает та же самая служба httpd.exe (веб-сервер Apache). Мы ещё вернёмся к более подробному анализу данных далее в этой статье.

Менять порт в длинной команде не всегда удобно, поэтому рекомендую создать текстовый файл с именем port.bat, в этот файл скопируйте:

@ECHO OFF
for /f "tokens=1,2,3,4,5*" %%i in ('netstat -aon ^| findstr ":%1" ^| findstr /i listening') do echo %%j %%l & @tasklist | findstr %%m

Сохраните и закройте этот файл.

Теперь в Windows PowerShell или в командной строке Windows с помощью команды cd перейдите в папку, куда вы сохранили файл. Например, я его сохранил в папку C:\Users\Alex\Documents\, тогда для перехода туда я выполняю:

cd C:\Users\Alex\Documents\

Теперь запустите файл командой вида:

.\port.bat ПОРТ

Где ПОРТ замените на интересующий вас порт, например, меня интересует порт 80, тогда:

.\port.bat 80

Вновь получаю аналогичный результат.

Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».

Как определить какой порт занимает программа?

Иногда возникает такая необходимость узнать какой порт какая программа заняла. Например, это может пригодиться в том случае, если при использовании денвера, 80-й порт на котором по умолчанию он и работает, может занять другая программа и вот как раз в этом случае и нужно узнать кто же занял этот «драгоценный» порт. Узнать это можно как с помощью командной строки, так и при помощи сторонней программы про которую я и напишу в статье. Мне с ней удобнее работать, так же программа заменяет стандартный менеджер процессов и у нее есть очень много удобных в работе функций, поэтому она и заслуживает внимания в данной статье.

Итак, приступим. Сначала опишу способ как узнать какой порт занимает программа, при помощи командной строки.

  • Запускать командную строку необходимо от имени администратора.
  • После того как она будет запущена, введите команду: netstat -ab
  • Командная строка начнет выводить список программ и порты которые они занимают.

Просмотрев список можно увидеть: TCP 0.0.0.0:80 Vladimir:0 LISTENING

Видно, что 80-й порт заняла программа Skype.

Определяется это довольно просто. Рассмотрим все по порядку:

TCP 0.0.0.0:80 Vladimir:0 LISTENING

TCP — указывает на то что используется протокол TCP ( может быть использован и UDP)

0.0.0.0:80 — локальный адрес программы, где 0.0.0.0 — это IP-адрес, а 80 порт

LISTENING — означает что порт прослушивается

— процесс который прослушивает этот самый порт.

Так же и с остальными процессами, например процесс wmware-hostd.exe прослушивает 443 порт. Ну думаю дальше все понятно. Таким вот способом можно легко узнать какой процесс на каком порте сидит и если это необходимо, то можно закрыть его для освобождения порта например 80 или 443.

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

А теперь перейдем к одной очень хорошей программе о которой я говорил в самом начале. Называется она Process Hacker. Аналогичен диспетчеру задач, но более функциональный.

К примеру Process Hacker имеет в своем арсенале 17 способов завершения процесса, убить может все что угодно В отличие от менеджера задач Windows, Process Hacker показывает гораздо больше информации: процесс, путь к процессу, количество занимаемой памяти озу, нагрузка на процессор, идентификатор процесса и многое другое. Вывод всех данных так же можно настроить, убрать к примеру показ нагрузки на процессор или наоборот добавить. Функций очень много. Еще одной маленькой плюшкой является то что свернув Process Hacker в трей, будет виден график загруженности процессора и оперативной памяти. Я лично считаю что это удобно. Закончу пожалуй хвалить эту программу и перейду к основной теме про порты.

Как же узнать какой порт заняла та или иная программа с помощью Process Hacker?

Тут все просто, проще чем с использованием командной строки.

  1. Открываете Process Hacker
  2. Переходите на вкладку Network

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

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

Ну вот и все, получилась чуть ли не статья, а отзыв о программе Process Hacker :-). Но программа действительно хороша.

P. S. Это не реклама программы, а лишь мое мнение о ней.

Что такое проброс портов?

Проброс портов (Port Forwarding, иногда Virtual Servers) — специальная настройка на роутере, позволяющая перенаправить внешние запросы (из интернета) на компьютеры локальной сети. По сути это способ указать, на какой локальный компьютер пересылать данные и запросы подключения, пришедшие на определенный порт.

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

Если ваш компьютер подключен к интернету напрямую (без роутера/маршрутизатора), то выполнять проброс портов не требуется. Все ваши открытые порты должны быть доступны из интернета (естественно, при наличии выделенного IP).

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: