Jak mogę sprawdzić, które porty są otwarte na moim komputerze?

147

Chciałbym zobaczyć, które porty są otwarte na moim komputerze, np. Na jakich portach słucha mój komputer. Np. Port 80, jeśli zainstalowałem serwer WWW i tak dalej.

Czy jest na to jakieś polecenie?

Jonas
źródło

Odpowiedzi:

113

nmap Zainstaluj nmap

Nmap („Network Mapper”) to darmowe narzędzie typu open source do eksploracji sieci lub audytu bezpieczeństwa

nmap 192.168.1.33 wewnętrzny komputer lub nmap external ip address

więcej informacji man nmap

hhlp
źródło
11
Dzięki, nmap localhostdziałało świetnie.
Jonas
11
Pamiętaj, że istnieje różnica między nmap localhosti nmap 192.168.0.3(lub
czymkolwiek
6
Myślę, że netstat jest lepszą odpowiedzią na to. netstat wyświetli listę, na której system nasłuchuje bezpośrednio, bez konieczności korzystania z dodatkowej aplikacji lub wykonywania niepotrzebnych połączeń przez localhost lub sieci.
Mathieu Trudel-Lapierre
2
To jest głupie. Jeśli masz dostęp do komputera, po prostu użyj netstat -ln. Natychmiast zobaczysz wszystkie otwarte porty.
Alexis Wilke,
1
nmap localhostnie znalazłem usług powiązanych tylko z hostem lokalnym. Na przykład biegam influxdz bind-address:localhost:8086. To się nie pojawiło sudo nmap localhost, ale się pojawiło sudo netstat -tulpn.
Dan Dascalescu
277

Zawsze używałem tego:

sudo netstat -ntlp | grep LISTEN
Uciszony
źródło
4
sudo netstat -ntlp | grep LISTEN... użyj sudoinaczej ... pid nie zostanie wydrukowany.
Rafaf Tahsin
6
-ljuż filtry do słuchania. grep LISTENnie pomoże poza ukryciem 2 linii informacji nagłówka.
Dan Dascalescu
3
-t: tcp,: -lnasłuchiwanie,: -ppokaż pid i nazwę programu,: -ndrukuj 127.0.0.1:80zamiast localhost:http. Odniesienie: linux.die.net/man/8/netstat
Rick
1
zainstaluj netstatzsudo apt-get install net-tools
RichArt
2
Rozwinięte polecenie to sudo netstat --tcp --listening --programs --numeric. Nie ma potrzeby używania, grepchyba że chcesz wyeliminować nagłówki kolumn.
Patrick Dark
60

Inne dobre sposoby, aby dowiedzieć się, które porty nasłuchują i jakie są twoje reguły zapory:

  • sudo netstat -tulpn

  • sudo ufw status

nathwill
źródło
Zmieniam odpowiedź na nmapjeszcze raz, użyteczność netstatto bzdury.
Jonas
2
@Jonas: patrz mój komentarz pod odpowiedzią nmap. Nie będzie wyświetlać usług powiązanych tylko z hostem lokalnym.
Dan Dascalescu
27

Aby wyświetlić listę otwartych portów, użyj netstatpolecenia.

Na przykład:

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

W powyższym przykładzie trzy usługi są powiązane z adresem sprzężenia zwrotnego.

Usługi IPv4 powiązane z adresem zwrotnym „127.0.0.1” są dostępne tylko na komputerze lokalnym. Równoważny adres zwrotny dla IPv6 to „:: 1”. Adres IPv4 „0.0.0.0” oznacza „dowolny adres IP”, co oznaczałoby, że inne maszyny mogłyby potencjalnie połączyć się z dowolnym lokalnie skonfigurowanym interfejsem sieciowym na określonym porcie.

Inną metodą jest użycie lsofpolecenia:

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

Aby uzyskać więcej informacji, zobacz man netstatlub man lsof.

inetpro
źródło
3
Myślałem, że -lopcją byłoby wylistowanie LISTENportów. Więc grep byłby tutaj zbyteczny ?!
Alexis Wilke,
24

To wystarczy, aby pokazać, że proces nasłuchuje na adresie IP 0.0.0.0(potrzebny, aby odpowiedzieć na każde żądanie) na porcie 80 (standardowy numer portu serwera WWW). W moim przypadku pokazuje to, że jest to serwer WWWlighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

Jeśli chcesz później upewnić się, że jedyną rzeczą, na którą zezwalasz przez zaporę, jest port 80, często używam ShieldsUp ze strony www.grc.com do przeprowadzenia testu zapory.

rstonehouse
źródło
11

sudo iptables -Lwyświetli listę reguł portu dla twojego komputera. Pamiętaj, że jeśli używasz zapory ufw lub firewall, dane wyjściowe mogą być trudne do odczytania. W takim przypadku użyj sudo ufw statusna przykład.

Samo w sobie nie jest to bardzo użyteczne, ponieważ nawet jeśli port jest otwarty, dostęp będzie nadal zabroniony, jeśli proces nie będzie nasłuchiwał na tym porcie.

Ciaran Liedeman
źródło
4

Jeśli szukasz ciągłego monitorowania portów dla serwerów lub lokalnych, myślę, że możesz również użyć graficznej wersji nmap, tj. Zenmap dla bardziej szczegółowej wersji

Zenmap to oficjalny graficzny interfejs użytkownika (GUI) dla skanera bezpieczeństwa Nmap.

Obsługuje dostępne (Linux, Windows, Mac OS X, BSD itp.)

Zobacz ten widok narzędzia:

wprowadź opis zdjęcia tutaj

Vishal G.
źródło