Znajdowanie procesu korzystającego z określonego portu w systemie Linux

139

Chciałbym móc dowiedzieć się, który proces korzysta obecnie z określonego portu w systemie Linux. Czy jest na to jakiś sposób?

Evan Fosmark
źródło
3
W systemie Windows polecenie to: netstat -anb
djangofan,

Odpowiedzi:

144

Masz kilka opcji:

lsof -i tcp:80

da ci listę procesów korzystających z portu 80 TCP.

Alternatywnie,

sudo netstat -nlp

da ci wszystkie otwarte połączenia sieciowe.

nagul
źródło
2
lsof -i | grep {username}jest również bardzo przydatny, tj.lsof -i | grep apache
LawrenceC
1
Dla każdego, kto zastanawia się -n: nie rozwiązywać nazw,: -lwyświetlać gniazda serwera nasłuchującego,: -pwyświetlać PID / nazwę programu dla gniazd.
yellavon
Zwykle dodam -Pdo lsof -i tcp:$PORTNUMBERtego, aby port był drukowany z powrotem do mnie jako liczba.
js.
9
netstat -lp
Nacięcie
źródło
4
na Macu musisz dodać opcję protokołu do -p. więc coś w stylu: netstat -lp tcp.
vrish88
8

Używam „CentOS 7 minimalny”, który ma ani netstatani lsof. Ale wiele dystrybucji Linuksa ma polecenie statystyki gniazd (tj ss.).

Oto przykład wykonania:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))
Alexandr
źródło
2

W systemie Linux, aby znaleźć proces działający na porcie, wykonaj następujące czynności:

lsof -i :<port_number>

przykład:

lsof -i :8080
Anamika
źródło
Dziękuję za to, że próbowaliście pomóc. To polecenie zostało wymienione w zaakceptowanej odpowiedzi. Jeśli masz coś nowego, edytuj swój post.
Ben N