Wiem, że za pomocą polecenia:
lsof -i TCP
(lub jakiś wariant parametrów z lsof) Mogę określić, który proces jest powiązany z określonym portem. Przydaje się to, jeśli próbuję uruchomić coś, co chce się połączyć z 8080, a niektóre inne już korzystają z tego portu, ale nie wiem co.
Czy istnieje prosty sposób, aby to zrobić bez użycia lsof? Pracuję nad wieloma systemami, a lsof często nie jest zainstalowany.
networking
process
tcp
lsof
Gilles
źródło
źródło
netstat -p
powyżej jest mój głos. też spójrz nalsof
.W systemie AIX można użyć netstat i rmsock do określenia powiązania procesu:
źródło
Kolejnym narzędziem dostępnym w systemie Linux jest ss . Ze strony podręcznika ss w Fedorze:
Przykładowe dane wyjściowe poniżej - ostatnia kolumna pokazuje powiązanie procesu:
źródło
W systemie Solaris można użyć plików p, a następnie grep przez
sockname:
lubport:
.Próbka ( stąd ):
źródło
Kiedyś stanąłem przed próbą ustalenia, który proces był za danym portem (tym razem było to 8000). Próbowałem różnych lsof i netstat, ale potem zaryzykowałem i spróbowałem uderzyć w port za pośrednictwem przeglądarki (np. Http: // nazwa hosta: 8000 / ). Oto powitalny ekran powitalny i stało się jasne, co to był za proces (dla przypomnienia, był to Splunk ).
Jeszcze jedna myśl: „ps -e -o pid, args” (YMMV) może czasami pokazywać numer portu na liście argumentów. Grep jest twoim przyjacielem!
źródło
telnet hostname 8000
sprawdzić, czy serwer wydrukuje baner. Jest to jednak szczególnie przydatne, gdy serwer działa na komputerze, na którym nie masz dostępu do powłoki, a następnie znalezienie identyfikatora procesu nie jest istotne.