Jak sprawdzić otwarte / zamknięte porty na moim komputerze?


135

Jak sprawdzić otwarte / zamknięte porty na moim komputerze?

Użyłem netstat -aw wierszu poleceń.

  • Czy status portu „LISTENING” wskazuje, że port jest otwarty?
  • Czy jakikolwiek port, który nie jest wyświetlany na wyjściu, jest zamknięty?


2
@Justgivemeaname: nmapto narzędzie do sprawdzania wolnych portów na innym hoście. Jeśli możesz uruchomić netstatna komputerze, korzystanie z niego jest znacznie szybsze i niezawodne.
David Foerster

@DavidFoerster: Nie wiedziałem o tym netstat, więc się nauczyłem. W linku jest napisane, że należy go jednak używać z innego hosta. Dzięki!
Justgivemeaname

Odpowiedzi:


163

netstatPrzydaje się kilka parametrów :

  • -llub --listeningpokazuje tylko gniazda aktualnie nasłuchujące na połączenie przychodzące.
  • -alub --allpokazuje wszystkie aktualnie używane gniazda.
  • -tlub --tcppokazuje gniazda tcp.
  • -ulub --udppokazuje gniazda udp.
  • -nlub --numericpokazuje hosty i porty jako liczby, zamiast rozpoznawania w dns i szukania w / etc / services.

Korzystasz z ich mieszanki, aby uzyskać to, czego chcesz. Aby dowiedzieć się, które numery portów są aktualnie w użyciu, użyj jednego z następujących:

netstat -atn           # For tcp
netstat -aun           # For udp
netstat -atun          # For both

Na wyjściu wszystkie wymienione porty są w użyciu albo nasłuchując połączenia przychodzącego, albo podłączone do peera ** wszystkie pozostałe są zamknięte. Porty TCP i UDP mają szerokość 16 bitów (idą od 1-65535)

** Mogą również łączyć się / rozłączać z węzłem równorzędnym.


71

Możesz użyć tego polecenia:

netstat -tulnp | grep <port no>

Jeśli pokazuje jakiś proces, jest używany. Jest zamknięty (nieużywany), jeśli nie ma wyjścia.


20

Inna alternatywna linia poleceń łatwa w użyciu, aby dowiedzieć się, który proces korzysta z portu:

lsof -n -i4TCP:$PORT | grep LISTEN

Dodałem następną funkcję do mojego .bash_profile,

function pslisten {
    echo `lsof -n -i4TCP:$1 | grep LISTEN`
}

a teraz uruchom „pslisten 5060”, aby zobaczyć, kto pobiera mój port SIP.

Działa również z Apple Mac OS X.


13

Czy status portu „LISTENING” wskazuje, że port jest otwarty?

Tak. Oznacza to, że niektóre usługi nasłuchują tego portu na twoim komputerze dla połączenia przychodzącego, tzn. Ten port jest otwarty dla nawiązywania nowych połączeń.

Jakikolwiek port, który nie jest pokazany w danych wyjściowych, wskazuje, że jest zamknięty?

Tak. Pamiętaj netstat -a, pokaże wszystkie aktywne ( nasłuchujące ) i pasywne ( nie nasłuchujące ) połączenia, tj. Porty, które działają jako oba serwery (niektóre usługi nasłuchują tych portów w przypadku połączeń z innego komputera / procesu) i ustanowione (połączenia są ustanawiane na tych porty niezależnie od faktu, że host / usługa może być serwerem lub klientem)

Wszystkie porty TCP i UDP należą do kategorii o nazwie gniazda i jest ich wiele. Aby wyświetlić informacje o gnieździe, możesz sprawdzić man ss.


Dzięki. napisałeś, że -ato oznacza serwer i ustanowiłeś. Czy „serwer” oznacza porty nasłuchiwane przez niektóre usługi? Czy „ustanowiony” oznacza porty, w których istnieją istniejące połączenia, niezależnie od tego, czy jest to port klienta czy serwera? Jakie rodzaje portów się -anie wyświetlają?
Tim

Nie sądzę, że ta -aopcja oznacza „wszystkie aktywne” gniazda; oznacza tylko „wszystko”. netstat domyślnie pokazuje wszystkie aktywne gniazda, ale pomija gniazda pasywne (otwarte, nasłuchuje). Przy użyciu tej -aopcji wyświetlane są zarówno gniazda aktywne, jak i pasywne.
Egon Olieux

@EgonOlieux Thanks. Poprawiono mnie; zredagował odpowiedź.
heemayl

@heemayl Druga część twojej odpowiedzi jest nadal niepoprawna. Gniazdo TCP w stanie „nasłuchiwania” nigdy nie może być połączeniem; nie jest z niczym związany, tylko słucha. Z tego powodu nasłuchiwane gniazda TCP są również nazywane gniazdami pasywnymi. Jeśli klient spróbuje połączyć się z (nasłuchującym) gniazdem na serwerze, na serwerze zostanie utworzone nowe gniazdo w celu nawiązania połączenia z klientem. Gniazdo będące częścią ustanowionego połączenia nazywa się gniazdem aktywnym.
Egon Olieux,

3

Inną opcją jest ss . Jest o wiele łatwiejszy w użyciu ....

Poniższe polecenie wyświetli tylko listę bieżących gniazd nasłuchowych.

root@server:~# ss -l

    Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port   


u_dgr  UNCONN     0      0                                                      * 23353                                                                * 23352                
u_dgr  UNCONN     0      0                                                      * 568                                                                  * 362                  
u_dgr  UNCONN     0      0                                                      * 14836                                                                * 14837                
u_dgr  UNCONN     0      0                                                      * 20446                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 22877                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 504                                                                  * 347                  
u_dgr  UNCONN     0      0                                                      * 16298                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23343                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24125                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24617                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23352                                                                * 23353                
u_dgr  UNCONN     0      0                                                      * 23334                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 17113                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 16957                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 14793                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 23345                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 24070                                                                * 369                  
udp    UNCONN     0      0                                                      *:sunrpc                                                               *:*                    
udp    UNCONN     0      0                                                      *:981                                                                  *:*                    
udp    UNCONN     0      0                                                     :::sunrpc                                                              :::*                    
udp    UNCONN     0      0                                                     :::981                                                                 :::*                    
tcp    LISTEN     0      128                                            127.0.0.1:85                                                                   *:*                    
tcp    LISTEN     0      128                                                    *:ssh                                                                  *:*                    
tcp    LISTEN     0      128                                                    *:3128                                                                 *:*                    
tcp    LISTEN     0      100                                            127.0.0.1:smtp                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:8006                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:sunrpc                                                               *:*                    
tcp    LISTEN     0      128                                                   :::ssh                                                                 :::*                    
tcp    LISTEN     0      100                                                  ::1:smtp                                                                :::*                    
tcp    LISTEN     0      128                                                   :::sunrpc                                                              :::*                    

1
Nie wiedziałem o tym, dzięki Zee
nick lis

2

Lub może to pomóc, używając zegarka, a następnie baw się tym, co chcesz zobaczyć.

sudo watch -d -n0 "netstat -atnp | grep ESTA"

sudo watch -d -n0 "netstat -tulnp | grep ESTA"

1
-a powoduje konflikt z -l, -a pobiera wszystko, zarówno USTANOWIONO, jak i SŁUCHAJĄCEGO, i -l po prostu chwyta SŁUCHAWKĘ, więc w rzeczywistości jest to „-ltnp” tcp, „-lunp” udp lub „-ltunp” tcp + udp
ModerateJavaScriptDev

1

W rzeczywistości istnieje lepszy sposób, aby sprawdzić, które porty masz otwarte. Problem z netstatlub lsofpolega na tym, że sprawdzają stos sieciowy i faktycznie nie łączą się z maszyną, ale zamiast tego próbują zobaczyć, co działa w systemie. Lepszym rozwiązaniem jest nmaptakie użycie :

nmap -sT -O localhost

Aby zobaczyć otwarte porty.


0
  1. Spróbuj tego, aby uzyskać listę otwartych portów w tym zakresie.

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
  2. A to polecenie pokaże, co to jest!

    cat /etc/services | grep {PORTNumber}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.