Я знаю, как сделать обратное (выяснить, в каком процессе открыт данный порт) с помощью lsof или netstat, но обширные исследования в Google не помогли мне решить обратную проблему.
Я знаю, что могу использовать netstat -np в сочетании с некоторыми командами grep и sed, но это кажется хакерским. Есть ли обратная версия «lsof -i tcp: 80», которая покажет мне все локальные порты, открытые данным процессом?
Взгляните на страницу руководства, вы обнаружите, что можете использовать -p
возможность указать идентификатор процесса, а -i
возможность ограничить отображение сокетами интернет-домена (-i4
только для ipv4 и -i6
только для ipv6). Итак, если связать их вместе ...
lsof -p <pid> -i
... вы получаете не совсем то, что хотите, потому что по умолчанию lsof
воля или вместе ваши запросы. Так что добавьте -a
(и) флаг ...
lsof -p <pid> -a -i
... и вы получите список сокетов IPv4, открытых указанным идентификатором процесса.
Я знаю, что могу использовать
netstat -np
в сочетании с некоторыми grep и sed, но это кажется хакерским.
Как насчет этого:
# netstat --inet -nlp | grep <processname>
Есть ли обратная версия
lsof -i tcp:80
который покажет мне все локальные порты, открытые данным процессом?
# lsof -c <processname> | grep LISTEN