Как найти не используемый порт

Как посмотреть какие порты открыты на компьютере, и кто их использует

04.06.2018

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

Смотреть видео:

Чтобы проверить состояние портов, необходимо открыть командную строку. Для этого используйте шорткат Win+R, в появившемся окошке наберите cmd и нажмите Ввод:

как запустить командную строку

В окне командной строки наберите команду netstat -a (перед знаком минус не забудьте поставить пробел), нажмите Ввод. После быстрого сканирования Вы сможете посмотреть какие сокеты открыты на Вашем ПК и в каком состоянии они находятся:

список открытых портов

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

  • LISTENING – значит, что порт ожидает входящих соединений
  • ESTABLISHED – соединение установлено
  • CLOSE_WAIT – ожидание закрытия вследствие отключения удаленной стороны
  • TIME_WAIT – порт закрыт, но еще ожидает входящие пакеты для обработки
  • SYN_SENT – установка соединения

Интерес представляет конечно же не только получить список сокетов, но и узнать какая программа какой номер порта использует. Для этого в командном окне наберите команду netstat -n -b (пробелы перед знаком минус):

программы с выходом в интернет

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

Если Вы обнаружили, что какой-то порт использует программа, которую Вы не запускали и которая похожа на троян или вирус, то его следует закрыть. Закрыть порт можно при помощи фаервола. Однако гораздо быстрей и эффективней будет использовать небольшую бесплатную программу под названием Windows Worms Doors Cleaner (WWDC), которую Вы можете скачать прямо сейчас (51Kb).

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

программа для закрытия опасных портов

После вступлений изменений в силу Вы получите такую картину:

отключение сокетов

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

Похожие публикации:

  • Как отключить уведомления от сайтов в Хроме – единственный рабочий способ
  • 15 рекламных роликов из 90-х годов, которые никого не оставят равнодушными
  • Max Frame Rate в Nvidia – что это такое и как ограничить ФПС в любой игре в один клик
  • Как распознать птицу по голосу или фото? Бесплатные онлайн определители
  • Как слушать музыку напрямую из облака

Понравилось? Поделитесь с друзьями!

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

Как узнать какие порты на коммутаторах уже не используются

Время на прочтение
4 мин

Количество просмотров 53K

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

Мне было чётко ясно, что на самом деле используются не все порты: какие-то, скорее всего, подключали временно, а затем забыли отключить, сетевые принтеры могли переместить и подключить к другому коммутатору, часть портов были подключены для пользователей, за время сменивших свои кабинеты, и т.д.

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

В то время, все пользовательские коммутаторы были фирмы Cisco модели 3560, имевшие 100Mbps-порты для пользователей и гнёзда SFP для быстрого канала к концентрирующим коммутаторам, так что тратить как минимум $2500 на дополнительный коммутатор, когда уверен, что на самом деле это совсем необязательно, просто рука не поднималась.

Задача

Узнать, какие порты на коммутаторах не использовались в течении последнего месяца.

Решение

Все коммутаторы были настроены отсылать свои сообщения на центральный syslog сервер. В моём примере использовался Syslog-NG на Arch Linux, но, естественно, можно использовать любое другое syslog-решение и/или дистрибутив Линукса. Для ротации логов использовался logrotate и логи старее одного месяца стирались. Также насчёт коммутаторов: я полагаю, что на любом управляемом коммутаторе можно настроить отправку сообщений на удалённый syslog-сервер – кроме Cisco, у меня опыт только с Nortel и HP – насколько я помню, они тоже поддерживают эту функцию.

Принцип работы

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

Примеры настроек

Настроить коммутатор Cisco для отправки сообщений на удалённый syslog-сервер очень просто, следует перейти в режим конфигурирования (configure terminal) и внести всего одну команду:

logging 10.20.100.12

(10.20.100.12 – адрес syslog сервера)

Вот строки из syslog-ng.conf отвечающие за приём сообщений по сети:

source remote_udp {
udp();
};

destination d_switches { file("/var/log/remote/switches.log"); };

filter f_switches { netmask("10.20.120.0/255.255.255.0") or netmask("10.30.120.0/255.255.255.0"); };

log { source(remote_udp); filter(f_switches); destination(d_switches); };

Как видно из примера, только сообщения из определённых подсетей помещаются в /var/log/remote/switches.log. Сделано это для того, чтоб сообщения от разного оборудования не перемешивались в кашу в одном лог файле. Я предпочитаю, чтоб сообщения от разного по функционалу оборудования помещаются в разные файлы: пользовательские коммутаторы отдельно, концентрирующие коммутаторы отдельно, роутеры отдельно, системы хранения данных отдельно и т.д. В данном примере 10.20.120.0/24 и 10.30.120.0/24 это сегменты сети, в которых расположены служебные IP адреса пользовательских коммутаторов.

Каждый раз, когда к порту коммутатора подключается оборудование, всплывает подобного рода сообщение:

Apr 27 16:38:44 switch1 330827: Apr 27 15:39:27.317: %LINK-3-UPDOWN: Interface FastEthernet0/4, changed state to up

А вот пример сообщения в случае отключения оборудования:

Apr 27 16:38:53 switch1 330830: Apr 27 15:39:37.635: %LINK-3-UPDOWN: Interface FastEthernet0/4, changed state to down

Вот алгоритм анализа лог файлов:

1. Выбрать только сообщения, исходящие от определённого коммутатора
2. Выбрать только сообщения, включающие строку “LINK-3-UPDOWN”
3. Отрезать не нужные части строк (время, название коммутатора и т.д.), оставив только название порта и его номер
4. Выбрать только сообщения, включающие строку “FastEthernet” (в моём случае все пользовательские порты были 100Mbps, гигабитными были только подключения к концентрирующим коммутаторам)
5. Отрезать всё, кроме номера порта
6. Отсортировать
7. Оставить только уникальные строки

Реализация на bash:

#!/bin/bash

cat /var/log/remote/switches.log* | grep $1 | grep LINK-3-UPDOWN | cut -d ':' -f 8 | cut -d ' ' -f 3 | grep FastEthernet | cut -d '/' -f 2 | cut -d ',' -f 1 | sort -n | uniq

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

# ./usedports.sh switch1
1
3
4
5
6
8
9
10
11
12
13
14
15
17
23
24
25
29
38
39
41
43

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

show interface description | include down

Эта команда выводит список всех неактивных портов. Если порт неактивен, и его статус не менялся в течении последнего месяца, значит ему можно искать другое применение.

Дополнение

Данное решение отлично работает с отдельными коммутаторами, у которых все пользовательские порты 100Mbps. Но вскоре мы начали добавлять новые коммутаторы моделей 2975 и 2960, производимые всё той же Cisco. Все порты у них гигабитные, а так же они оснащены стековыми модулями, позволяющими объединять несколько коммутаторов в одну управляемую единицу, а это приводило к изменению наименования портов, так как учитывался не только номер порта, но и номер коммутатора в стеке.

Вот модифицированная реализация

#!/bin/bash

cat /var/log/remote/switches.log* | grep $1 | grep LINK-3-UPDOWN | cut -d ':' -f 8 | cut -d ' ' -f 3 | grep GigabitEthernet | cut -d 't' -f 4 | cut -d ',' -f 1 | sort -t '/' -k 1,1n -k 3,3n | uniq

Заключение

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

Надеюсь, эта статья будет кому-нибудь полезна.

Желаю удачи!

I need to create a brain-dead HTTP server that returns 404s for everything on localhost. Specifically, I have a program under an acceptance test harness which calls out to a server, but for testing I want to save time by skipping that unrelated check.

I have a way to pass in the URL the program uses as part of the test harness, and the test harness (currently) just creates such a server on port 80.

However, a problem appears if more than one test attempts to run at the same time, because each test harness tries to create an HTTP server on port 80, which fails for one of the harnesses.

I’d therefore like to randomize the port and ensure it is available before attempting to create the HTTP server. How can I check if that port is in use?

asked Aug 6, 2010 at 16:55

Billy ONeal's user avatar

Billy ONealBilly ONeal

104k55 gold badges313 silver badges551 bronze badges

Bind a socket to port 0, the system will pick an available port, between 1024 and 5000 I believe

You can later learn that assigned port with theSocket.LocalEndPoint property.

answered Aug 6, 2010 at 17:01

nos's user avatar

3

I’d have thought the answer is obvious: if a socket listen fails, it’s not available: choose another. Just listen to the exceptions.

answered Aug 6, 2010 at 17:00

Amadan's user avatar

AmadanAmadan

189k23 gold badges236 silver badges298 bronze badges

Why not mock out the request altogether so that you don’t actually need a server or a network connection at all?

That would make for a much less brittle test.

Ok, in any case, could you not just generate a random port in some predefined range, and try to set up a server on it? If it is already occupied, an exception should be thrown.

answered Aug 6, 2010 at 16:58

Lasse V. Karlsen's user avatar

Lasse V. KarlsenLasse V. Karlsen

378k101 gold badges625 silver badges821 bronze badges

1

answered Aug 6, 2010 at 17:01

leppie's user avatar

leppieleppie

115k17 gold badges196 silver badges296 bronze badges

Содержание

  1. Как проверить открыт ли сетевой порт
  2. Находим открытые порты в Windows 10
  3. Типы адресов
  4. Состояние порта
  5. Как осуществлять проверку
  6. Как проверить использование портов компьютера через Windows 10
  7. Использование портов – метод командной строки
  8. Проверка портов в TCPView
  9. Как проверить открытые порты в Windows 10
  10. Как проверить, открыт ли порт, командой telnet
  11. Что такое порт компьютера
  12. Как проверить, открыт ли порт для подключения
  13. Перечень открытых портов на локальном компьютере
  14. Просмотр открытых портов на удаленном компьютере
  15. Как посмотреть какие порты открыты на компьютере с Windows 10
  16. Использование команды «AB»
  17. Просмотр с помощью команды AON

Как проверить открыт ли сетевой порт

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

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

Находим открытые порты в Windows 10

Для нахождения открытых портов будем использовать консоль Windows со встроенными утилитами.

n 00

Команда для получения списка открытых портов:

n 01

Типы адресов

Локальный адрес указывает на IP вашего устройства, а внешний — того, кто к нему подключен. Условно их можно разделить на несколько типов:

Состояние порта

Возможны следующие состояния:

PID в последнем столбце указывает на идентификатор процесса, который следит за портом. Для вывода детальной информации наберите команду:

n 02

Как осуществлять проверку

Просмотрев поочередно все процессы, специалист может выявить подозрительную активность и закрыть доступ к лишним портам или удалить приложение, которое инициирует запуск процесса.

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

Источник

Как проверить использование портов компьютера через Windows 10

90808654

В любой момент между вашим ПК с Windows 10 и бесконечной пустотой Интернета передаётся огромное количество информации. Это делается с помощью технологий, посредством которых зависящие от сети процессы ищут свободные «порты» TCP и UDP для «общения» с Интернетом. Сначала ваши данные отправляются на удаленные порты пункта назначения или на веб-сайт, к которому ваши процессы пытаются подключиться, а затем они возвращаются на локальные порты обратно на ваш компьютер.

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

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

Использование портов – метод командной строки

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

proverka portov

Большинство из адресов начинаются со 127.0.0.1. Этот IP-адрес иначе известен как «localhost» или «адрес обратной связи», и любой процесс, прослушивающий порты, взаимодействует внутри вашей локальной сети без использования какого-либо сетевого интерфейса. Фактический порт – это номер, который вы видите после двоеточия.

Большая часть процессов, вероятно, будет прослушивать порты с префиксом «192.168.xxx.xxx», который является вашим IP-адресом. Это означает, что процессы, которые вы видите в списке, прослушивают сообщения из удаленных Интернет-узлов (например, веб-сайтов). Опять же, номер порта – это номер после двоеточия.

Проверка портов в TCPView

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

downtcpview

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

Если вы найдёте процесс или соединение, которое хотите закрыть, просто щелкните этот процесс правой кнопкой мыши. Затем вы можете выбрать «Завершить процесс», что является той же функцией, что и в диспетчере задач Windows. Или вы можете нажать «Закрыть соединение», чтобы оставить процесс открытым, но не давать ему прослушивать данный порт.

Источник

Как проверить открытые порты в Windows 10

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

В списке будет указано имя исполняемого файла, который сделал запрос на прослушивание порта. Этот способ не всегда идентифицирует процессы. На скрине ниже видно, что один процесс не смог отобразиться «Не удается получить сведения о владельце».

%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%B8%D1%82%D1%8C %D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5 %D0%BF%D0%BE%D1%80%D1%82%D1%8B %D1%81 %D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC %D0%B8%D0%BC%D0%B5%D0%BD%D0%B8

Этой командой мы можем идентифицировать имя процесса по PID. Найдите порт, который вам нужен и запомните PID.

%D0%A3%D1%85%D0%BD%D0%B0%D1%82%D1%8C PID %D1%87%D0%B5%D1%80%D0%B5%D0%B7 CMD

У нас есть PID, и теперь мы можем определить, что за процесс прослушивает порт. Откройте диспетчер задач нажав Ctrl + Shift + Esc. Перейдите во вкладку «Подробности» и в столбце «ИД процесса» (это и есть PID) найдите свое значение, которое запомнили. Таким образом мы узнаем имя процесса, которое прослушивает порт. Чтобы найти его расположение, щелкните по процессу правой кнопкой мыши и выберите «Открыть расположение файла«.

Источник

Как проверить, открыт ли порт, командой telnet

6e0e7bd5fdb1f085fd6b97b4137a2a1f

Обмен данными по локальной сети или через интернет осуществляется путем подключения друг к другу двух компьютеров. Чтобы получить данные с удаленного сервера, требуется соблюсти несколько условий – наличие IP-адреса у источника и получателя, выбор конкретного протокола приема-передачи и открытые порты на обоих компьютерах.

Что такое порт компьютера

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

347d1b97458dddccce2ab679be802ab2

Перед подключением к какому-либо порту рекомендуется проверить, свободен ли он. Если нет, то операционная система выдаст ошибку, и соединение прервется. Многие программы делают проверку в автоматическом режиме и сами пытаются менять номера в поиске незанятого подключения. Но в ряде случаев это требуется сделать вручную, например, при отладке собственного кода.

Как проверить, открыт ли порт для подключения

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

06ae0df203bf1b5032acb094a6a66ac5

Существует три основных способа проверки открытых портов:

Выбор решения зависит от задач. Так, если требуется открыть доступ к своему компьютеру извне, можно воспользоваться сервисами 2ip.ru или portscan.ru. При локальных работах удобнее приложения типа Portforward Network Utilities или штатная утилита TELNET. Она поставляется в «стандартной» сборке Windows и доступна для запуска в консоли CMD.

Перечень открытых портов на локальном компьютере

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

e216622f8981d18d97f7634053272099

Проверить занятые порты легко:

В консоли отобразится перечень занятых портов с указанием, какое приложение или служба ими «распоряжается». Такой вариант проверки интересен тем, что он дает объективную картину. Если рассчитывать только на онлайн-сервисы, иногда создается впечатление, что открытых портов нет. Эффект создается из-за блокировки внешних запросов брандмауэром Windows или другим ПО.

19deea88fdb3a238a498aa889d81b090

Если хочется изучить список на предмет «посторонних» программ, его лучше выгрузить в файл при помощи команды netstat –a >имя.txt. По умолчанию список сохраняется в каталоге пользователя, в аккаунте которого происходил запуск утилиты (типа C:\ПользователиUser). При желании перед запуском утилиты можно перейти в корень диска командой cd c:.

393ba10b5936528de242ef084bababb2f4d7dd56

Просмотр открытых портов на удаленном компьютере

При взаимодействии с удаленным сервером используется другая утилита – TELNET. В Windows она по умолчанию отключена, потому что не относится к пользовательским приложениям. Перед первым запуском придется провести «активацию». Существует два способа включения – в консоли или через графический интерфейс.

0d7c71289602715e392ee09b75a06795

Активация заключается во вводе специальной команды:

Она сработает только при запуске консоли с правами администратора. Схема открытия приложения несколько иная:

1eaf2f42f3c48c5d4fb22c9bde087c74

Если пользователь предпочитает управлять компьютером через графический интерфейс, нужно запустить панель управления, а в ней утилиту «Удаление программы». В открывшемся окне нужно перейти в раздел «Включение или отключение компонентов Windows», далее в общем списке найти строку «Telnet», поставить в ней галочку и нажать кнопку ОК. Все, служба активирована и готова к использованию (даже в консоли).

a1bd9749f836f99f626772cf2f0c5030

Хост – это домен или его IP-адрес, порт – виртуальное дополнение для образования сокета, опции же позволяют менять режим подключения. Их основные варианты:

Простейший вариант проверки открытых портов – это ввод команды без опций:

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

Источник

Как посмотреть какие порты открыты на компьютере с Windows 10

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

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

Использование команды «AB»

Чтобы узнать приложение, для которого открыт определенный порт на компьютере, выполните команду «AB». В результате отобразится список исполняемых файлов, которые сделали запрос на прослушивание. Для этого выполните следующие шаги:

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

В консоли запустите:

Просмотр с помощью команды AON

Есть еще один способ, которым можно воспользоваться для идентификации процесса. С его помощью можно посмотреть номер PID вместо имени исполняемого файла.

Откройте окно интерпретатора сочетанием клавиш Win + R, впишите «cmd» и нажмите Shift + Ctrl + Enter, чтобы войти с правами администратора.

Запустите в консоли:

Отобразится таблица со значениями PID в последнем столбце.

Запишите этот номер, раскройте контекстное окно клавишами Win + X и выберите Диспетчер задач.

Перейдите на вкладку «Подробности», чтобы посмотреть все запущенные процессы. Сопоставьте указанный PID с номером ИД процесса, щелкните правой кнопкой мыши на процесс и выберите «Открыть расположение файла».

Таким образом, можно узнать программу, для которой используется порт.

Источник

Однострочный

Я собрал хороший однострочный текст, который быстро служит цели, позволяя захватывать произвольное количество портов в произвольном диапазоне (здесь он разделен на 4 строки для удобства чтения):

comm -23 
<(seq "$FROM" "$TO") 
<(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep '[0-9]{1,5}' | sort -n | uniq) 
| shuf | head -n "$HOWMANY"

Строка за строкой

comm это утилита, которая сравнивает отсортированные строки в двух файлах. Он выводит три столбца: строки, которые отображаются только в первом файле, строки, которые отображаются только во втором, и общие строки. Указав -23, мы подавляем последнее столбцы и сохраняйте только первый. Мы можем использовать это, чтобы получить разницу между двумя наборами, выраженную в виде последовательности текстовых строк. Я узнал о comm здесь.

Первый файл-это диапазон портов, из которых мы можем выбрать. seq выдает отсортированную последовательность чисел от $FROM до $TO. Результат передается в comm в качестве первого файла с использованием подстановки процесса.

Второй файл-это отсортированный список портов, который мы получаем, вызывая ss команда (с -t , означающая TCP-порты, -a, означающая все установленные и прослушивающие — и -n числовые — не пытайтесь разрешить, скажем, 22 до ssh). Затем мы выбираем только четвертый столбец с awk, который содержит локальный адрес и порт. Мы используем cut для разделения адреса и порта с разделителем : и сохраняем только последний (-f2). ss также выведите заголовок, от которого мы избавляемся с помощью grepping для непустых последовательностей чисел, которые не длиннее 5. Затем мы соблюдаем comm требование sortчисленно (-n) и избавление от дубликатов с помощью uniq.

Теперь у нас есть отсортированный список открытых портов, которые мы можем shufиспользовать, чтобы затем захватить первые "$HOWMANY" с head -n.

Пример

Захватите три случайных открытых порта в частном диапазоне (49152-65535)

comm -23 <(seq 49152 65535) <(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep "[0-9]{1,5}" | sort | uniq) | shuf | head -n 3

Может вернуться, например

54930
57937
51399

Примечания

  • переключите -t с -u в ss, чтобы вместо этого получить свободные порты UDP.
  • падение shuf если вы не заинтересованы в захвате случайного порта

Понравилась статья? Поделить с друзьями:
  • 0x80244022 windows 10 как исправить
  • Как найти покупателей на зелень
  • Телеграм как найти ссылку на свой профиль
  • Как найти соседство в hay day
  • Я имела ввиду как мне вас найти