Общий:
После двухдневного поиска, который я провел по этой проблеме, я обнаружил, как Майкл Хэмптон и Питер Жабин, что не существует существующего решения, которое бы показывало идентификатор процесса ядра через прослушивающий порт.
Кроме того, в течение этих двух дней я также искал некоторые команды
комбинаций, которые могут привести к нужному ответу, и не нашел простого или удобного способа сделать это.
Созданное мной решение является предварительным, и я уверен, что члены сообщества могут его улучшить.
Скидки за локализацию процесса
- Процесс выполняется на уровне ядра или на любом другом уровне, который не позволяет процессу иметь идентификатор (PID).
- Идентификатор процесса или программа процесса не были найдены выводом данных команд:
lsof
, нетстат
, SS
, фьюзер
.
- Мы нашли прослушивающий порт из вывода вышеуказанных команд, но мы не можем настроить программу или pid, которые вызывают прослушивание.
О grep
:
Мы будем использовать grep
чтобы найти больше информации об открытом порте.
grep
- печатать строки, соответствующие шаблонам.
От grep
справочная страница через человек grep
команда.
ОПИСАНИЕ
grep ищет ШАБЛОНЫ в каждом ФАЙЛЕ. ШАБЛОНЫ — это один или несколько
шаблоны, разделенные символами новой строки, и grep печатает каждую строку
который соответствует образцу. Обычно ШАБЛОНЫ следует заключать в кавычки, когда grep
используется в команде оболочки.
- Здесь отличная тема о том, как правильно и эффективно использовать команду.
Как найти PID или программу, использующую данный порт через grep
:
В моем случае выполнение sudo grep --exclude-dir={sys,proc} -rnw / -e 51820 | grep -я порт
решил проблему и показал много информации о программе, использующей порт.
Данный вывод:
iptables.service:6:ExecStart=/usr/sbin/iptables -I ВВОД -p udp --dport 51820 -j ПРИНЯТЬ
/home/username/wireguard-install.sh:238: читать -p "Порт [51820]:" порт
/home/username/wireguard-install.sh:241: читать -p "Порт [51820]:" порт
/home/username/wireguard-install.sh:243: [[ -z "$port" ]] && port="51820"
/usr/share/doc/netplan/examples/wireguard.yaml:9: порт: 51820
/etc/wireguard/wg0.conf:8:ListenPort = 51820
/etc/systemd/system/wg-iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j ПРИНЯТЬ
/etc/systemd/system/wg-iptables.service:10:ExecStop=/usr/sbin/iptables -D INPUT -p udp --dport 51820 -j ПРИНЯТЬ
Причина многих флагов в том, что другие комбинации, которые я пробовал, имели большое количество нежелательного вывода.
Какие аргументы grep
Команда означает:
--exclude-dir
- Пропустить любой каталог командной строки с суффиксом имени, который соответствует
шаблон.
И конкретное игнорирование система
и процесс
каталоги в нашем конкретном случае заключается в том, чтобы избежать нежелательного вывода.
Пример: grep --exclude-dir={dir1,dir2}
будет избегать dir1 и dir2 во время поиска.
-р
или же -Р
является рекурсивным.
-н
это номер строки.
-w
означает соответствие всему слову.
/
обозначает «самый высокий» каталог, чтобы начать поиск сверху вниз.
-е
- это шаблон, используемый во время поиска.
51820
в нашем конкретном случае это номер порта, который был найден одной из приведенных выше команд мониторинга сети.
|
- это канал для перенаправления вывода первой части команды на вторую.
В нашем случае: перенаправление sudo grep --exclude-dir={sys,proc} -rnw / -e 51820
вывод в следующую команду grep -я порт
-я
- Игнорировать различия регистра в шаблонах и входных данных, чтобы
символы, которые отличаются только в случае совпадения друг с другом.
порт
- Найден для того, чтобы сузить результаты до цели, для которой мы выполнили поиск, найдя больше информации о конкретном порте, который был определен после -е
флаг.
Советы:
- Сделайте сканирование как можно большим на первых шагах, начав с
/
каталоге и используя минимальные флаги для фильтрации вывода, чтобы гарантировать, что вы не пропустите ни одной детали, которую мы могли бы получить.
- После нахождения нужного вывода или возникновения проблем с поиском нужного вывода, вызванных выделением нежелательного вывода, начните добавлять флаги один за другим.
- Укажите номер порта в качестве шаблона, ведь это наша отправная точка и наша конечная цель.
- Используйте двойной
grep
команды, перенаправляющие первое сканирование в порт
фильтр шаблонов, он может нас засечь и ускорить решение, ведь мы ищем число как шаблон и это может привести ко многим нежелательным результатам.
- Если вы не можете сделать выводы с данным выводом, выполните поиск в Интернете с выбранными ключевыми словами, которые вы нашли.