Chciałbym dowiedzieć się, który proces (w szczególności identyfikator procesu) używa danego portu. Jedynym haczykiem jest to, że nie chcę używać sudo, ani nie jestem zalogowany jako root. Procesy, dla których chcę, aby to działało, są uruchamiane przez tego samego użytkownika, dla którego chcę znaleźć identyfikator procesu - więc pomyślałbym, że to proste.
Oba lsof
i netstat
nie podadzą mi identyfikatora procesu, chyba że uruchomię je za pomocą sudo - powiedzą mi jednak, że port jest używany.
Jako dodatkowy kontekst - mam różne aplikacje, wszystkie łączące się za pośrednictwem SSH z serwerem, którym zarządzam, i tworząc przekierowanie portów do przodu. Po ich skonfigurowaniu mój serwer wykonuje pewne przetwarzanie przy użyciu przekierowanego portu, a następnie połączenie może zostać przerwane. Jeśli mogę zmapować określone porty (każda aplikacja ma swój własny) na procesy, jest to prosty skrypt. Jakieś sugestie?
Nawiasem mówiąc, jest to na pudełku Ubuntu - ale domyślam się, że każde rozwiązanie będzie standardowe dla większości dystrybucji Linuksa.
-an
.netstat -pant
działa również i łatwiej zapamiętać.Sugestia Pawła wydaje mi się dobrze działać, ale alternatywnie słucham z powłoki 1:
a oto ja widzę to z
lsof
shell2:Edycja : piszesz w komentarzu, że
ale dla mnie tak nie jest. Po użyciu ssh do przekazania lokalnego portu 8001, z
ssh vpn.example.com -L 8001:rt.int:80
, następnie znajduję:Czy mógłbyś nam pokazać niektóre z próbek wyjściowych, najlepiej niezbyt mocno zredagowanych?
źródło
lsof
wyników, chyba że uruchomię go jako root / sudo.