źródło
Jedną z możliwości jest użycie lsof
narzędzia; w szczególności lsof -i 4tcp
wyświetli listę wszystkich procesów z otwartymi gniazdami sieciowymi TCP IPv4. Strona lsof
zawiera szczegółowe informacje na temat korzystania z narzędzia i interpretowania wyników.
Jeśli jesteś zainteresowany konkretnym portem, możesz skorzystać z tego przykładu:
lsof -i 4tcp:8080 -sTCP:LISTEN
Jeśli chcesz tylko uzyskać identyfikator procesu, możesz uruchomić to:
lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Korzystam z poniższego polecenia, gdy chcę zobaczyć wszystko, co jest na określonym porcie dla TCP lub UDP. Ta -n
opcja wyłącza próbę przekształcenia adresów IP na nazwy domen i -P
uniemożliwia określenie nazwy konkretnego portu. Również uruchomienie jako root
pokaże więcej procesów niż uruchomienie zwykłego użytkownika.
sudo lsof -iTCP:53 -iUDP:53 -n -P
Poniższy przykład kodu zawiera listę wszystkich działających serwerów TCP na lokalnym komputerze z systemem OSX:
netstat -a -Ptcp | egrep 'tcp4.*LISTEN'
tcp4 0 0 127.0.0.1.2022 *.* LISTEN 0 0
tcp4 0 0 *.3141 *.* LISTEN 0 0
LISTEN
pokazuje tylko gniazda nasłuchujące połączeń. To znaczy serwery.
Pierwsza linia pokazuje serwer zobowiązane do localhost
, aka 127.0.0.1
, port 2022
. Będzie odpowiadać na żądania lokalne, ale nie na żądania internetowe.
Druga linia to serwer powiązany ze wszystkimi adresami, tj . *
Portem 3141
. To będzie odpowiedzieć na zapytania internetowe.
Aby wyświetlić listę portów używanych przez klientów i serwery, użyj następujących poleceń:
netstat -an -Ptcp | grep tcp4
netstat
na hostach opartych na BSD nie ma żadnych informacji o procesie ... co było pytaniem.Powinno to być możliwe w oknie terminala za pomocą polecenia Netstat .
A jeśli podoba ci się GUI, to bardziej:
źródło