Comment voir quels ports sont ouverts sur ma machine?

148

Je voudrais voir quels ports sont ouverts sur ma machine, par exemple quels ports sont écoutés par ma machine. Par exemple, le port 80 si j'ai installé un serveur Web, etc.

Y at-il une commande pour cela?

Jonas
la source

Réponses:

113

nmap Installer nmap

Nmap ("Network Mapper") est un utilitaire gratuit et open source pour l'exploration de réseau ou l'audit de sécurité.

nmap 192.168.1.33 PC interne ou nmap external ip address

Plus d'information man nmap

hhlp
la source
11
Merci, a bien nmap localhostfonctionné.
Jonas
11
Rappelez-vous qu'il y a une différence entre nmap localhostet nmap 192.168.0.3(ou ce que vous avez comme machine IP)
LassePoulsen
6
Je pense que netstat est une meilleure réponse à cela. netstat répertorie ce que le système écoute directement, sans utiliser d’application supplémentaire ni faire d’appels inutiles sur localhost ou via le réseau.
Mathieu Trudel-Lapierre
2
C'est bête. Si vous avez accès à l'ordinateur, utilisez simplement netstat -ln. Vous verrez instantanément tous les ports ouverts.
Alexis Wilke
1
nmap localhostn'a pas trouvé de services qui étaient liés uniquement à localhost. Par exemple, je cours influxdavec bind-address:localhost:8086. Cela ne s'est pas manifesté sudo nmap localhost, mais s'est manifesté sudo netstat -tulpn.
Dan Dascalescu
279

J'ai toujours utilisé ceci:

sudo netstat -ntlp | grep LISTEN
Silencieux
la source
4
sudo netstat -ntlp | grep LISTEN... utiliser sudoautrement ... pid ne sera pas imprimé.
Rafaf Tahsin
6
-lfiltre déjà pour écouter. grep LISTENne vous aidera pas à cacher deux lignes d’informations d’en-tête.
Dan Dascalescu
3
-t: tcp,: -lsocket d'écoute,: -pshow pid et nom du programme,: -nprint à la 127.0.0.1:80place de localhost:http. Référence: linux.die.net/man/8/netstat
Rick
1
installer netstatavecsudo apt-get install net-tools
RichArt
2
La commande développée est sudo netstat --tcp --listening --programs --numeric. Il n'est pas nécessaire d'utiliser grepsauf si vous souhaitez éliminer les en-têtes de colonnes.
Patrick Dark
60

Voici d'autres moyens de connaître les ports en cours d'écoute et les règles de votre pare-feu:

  • sudo netstat -tulpn

  • sudo ufw status

nathwill
la source
Je change la réponse à nmapnouveau, la convivialité de netstatest de la merde.
Jonas
2
@Jonas: voir mon commentaire sous la réponse nmap. Il ne liste pas les services qui se lient uniquement à localhost
Dan Dascalescu
27

Pour lister les ports ouverts, utilisez la netstatcommande.

Par exemple:

    $ 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

Dans l'exemple ci-dessus, trois services sont liés à l'adresse de bouclage.

Les services IPv4 liés à l'adresse de bouclage "127.0.0.1" ne sont disponibles que sur la machine locale. L'adresse de bouclage équivalente pour IPv6 est ":: 1". L'adresse IPv4 "0.0.0.0" signifie "toute adresse IP", ce qui signifie que d'autres machines pourraient éventuellement se connecter à l'une des interfaces réseau configurées localement sur le port spécifique.

Une autre méthode consiste à utiliser la lsofcommande:

    $ 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)

Pour plus de détails, voir man netstatou man lsof.

inetpro
la source
3
Je pensais que l’ -loption était de lister LISTENles ports. Donc, le grep serait superflu ici?!
Alexis Wilke
24

Cela suffit pour montrer qu'il existe un processus d'écoute sur l'adresse IP 0.0.0.0(nécessaire pour qu'il réponde à toute demande) sur le port 80 (numéro de port du serveur Web standard). Dans mon cas, cela montre que c'est le serveur Weblighttpd

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

Si vous souhaitez par la suite vous assurer que la seule chose que vous autorisez via votre pare-feu est le port 80, j'utilise souvent ShieldsUp de www.grc.com pour effectuer un test de pare-feu.

Rstonehouse
la source
11

sudo iptables -Llistera les règles de port pour votre pc. Notez que si vous utilisez des pare-feu ufw ou shorewall, la sortie peut être difficile à lire. Dans ce cas, utilisez plutôt sudo ufw statuspar exemple.

Ce n'est pas très utile en soi car même si un port est ouvert, l'accès sera toujours refusé s'il n'y a pas de processus en écoute sur ce port.

Ciaran Liedeman
la source
4

Si vous recherchez une surveillance continue des ports pour les machines serveur ou locales, vous pouvez également utiliser la version graphique de nmap, par exemple Zenmap, pour obtenir une version plus détaillée.

Zenmap est l'interface graphique officielle pour le scanner de sécurité Nmap.

Prise en charge disponible (Linux, Windows, Mac OS X, BSD, etc.)

Jetez un coup d'œil à cette vue d'outil:

entrez la description de l'image ici

Vishal G
la source