Общий:
После двухдневного поиска, который я провел по этой проблеме, я обнаружил, как Майкл Хэмптон и Питер Жабин, что не существует существующего решения, которое бы показывало идентификатор процесса ядра через прослушивающий порт.
Кроме того, в течение этих двух дней я также искал некоторые команды комбинаций, которые могут привести к нужному ответу, и не нашел простого или удобного способа сделать это.
Созданное мной решение является предварительным, и я уверен, что члены сообщества могут его улучшить.
Скидки за локализацию процесса
- Процесс выполняется на уровне ядра или на любом другом уровне, который не позволяет процессу иметь идентификатор (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 команды, перенаправляющие первое сканирование в порт фильтр шаблонов, он может нас засечь и ускорить решение, ведь мы ищем число как шаблон и это может привести ко многим нежелательным результатам.
- Если вы не можете сделать выводы с данным выводом, выполните поиск в Интернете с выбранными ключевыми словами, которые вы нашли.