Я знаю, что с помощью команды:
lsof -i TCP
(или некоторый вариант параметров с lsof) Я могу определить, какой процесс связан с конкретным портом. Это полезно, если я пытаюсь запустить что-то, что хочет привязать к 8080, а некоторые уже используют этот порт, но я не знаю что.
Есть ли простой способ сделать это без использования lsof? Я провожу время, работая на многих системах, и lsof часто не устанавливается.
networking
process
tcp
lsof
жилль
источник
источник
netstat -p
выше мой голос. также посмотрите наlsof
.В AIX netstat & rmsock можно использовать для определения привязки процесса:
источник
Другим инструментом, доступным в Linux, является ss . Со страницы man ss на Fedora:
Пример вывода ниже - последний столбец показывает привязку процесса:
источник
Для Solaris вы можете использовать pfiles и затем grep с помощью
sockname:
илиport:
.Образец ( отсюда ):
источник
Однажды я столкнулся с попыткой определить, какой процесс находится за конкретным портом (на этот раз это было 8000). Я пробовал разные lsof и netstat, но затем рискнул и попытался подключиться к порту через браузер (то есть http: // hostname: 8000 / ). И вот, меня приветствовал заставка, и стало очевидно, каков был процесс (для протокола, это был Splunk ).
Еще одна мысль: «ps -e -o pid, args» (YMMV) может иногда показывать номер порта в списке аргументов. Grep твой друг!
источник
telnet hostname 8000
увидеть, печатает ли сервер баннер. Однако это в основном полезно, когда сервер работает на компьютере, к которому у вас нет доступа к оболочке, а затем поиск идентификатора процесса не имеет значения.