Comment vérifier les ports ouverts / fermés sur mon ordinateur?


135

Comment vérifier les ports ouverts / fermés sur mon ordinateur?

J'ai utilisé netstat -aen ligne de commande.

  • L'état du port "LISTENING" indique-t-il que le port est ouvert?
  • Est-ce qu'un port non indiqué dans la sortie est fermé?


2
@Justgivemeaname: nmapest un outil permettant de vérifier les ports ouverts sur un autre hôte. Si vous pouvez utiliser netstatune machine, son utilisation est beaucoup plus rapide et fiable.
David Foerster

@ DavidFoerster: Je ne savais rien netstat, alors j'ai appris ça. Il est dit dans le lien qu'il devrait être utilisé depuis un autre hôte. Merci!
Justgivemeaname

Réponses:


164

Il y a quelques paramètres netstatutiles pour cela:

  • -lou --listeningaffiche uniquement les sockets en cours d'écoute pour la connexion entrante.
  • -aou --allmontre tous les sockets actuellement utilisés.
  • -tou --tcpmontre les prises tcp.
  • -uou --udpmontre les sockets udp.
  • -nou --numericaffiche les hôtes et les ports sous forme de nombres, au lieu de résoudre en DNS et de rechercher dans / etc / services.

Vous utilisez un mélange de ceux-ci pour obtenir ce que vous voulez. Pour savoir quels numéros de port sont actuellement utilisés, utilisez l'un de ceux-ci:

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

Dans la sortie, tous les ports mentionnés sont utilisés, soit à l’écoute d’une connexion entrante, soit connectés à un homologue **, tous les autres sont fermés. Les ports TCP et UDP ont une largeur de 16 bits (ils vont de 1-65535)

** Ils peuvent également se connecter / déconnecter de l'homologue.


71

Vous pouvez utiliser cette commande:

netstat -tulnp | grep <port no>

Si cela montre un processus, c'est utilisé. Son fermé (non utilisé) s'il n'y a pas de sortie.


20

Une autre ligne de commande alternative facile à utiliser pour savoir quel processus utilise un port:

lsof -n -i4TCP:$PORT | grep LISTEN

J'ai ajouté la fonction suivante dans mon fichier .bash_profile,

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

et lancez maintenant "pslisten 5060" pour voir qui graffine mon port SIP.

Cela fonctionne également avec Apple Mac OS X.


13

L'état du port "LISTENING" indique-t-il que le port est ouvert?

Oui. Cela signifie qu'un service écoute ce port sur votre ordinateur pour la connexion entrante, c'est-à-dire que ce port est ouvert pour établir de nouvelles connexions.

Tout port non indiqué dans la sortie indique-t-il qu'il est fermé?

Oui. Remember netstat -aaffichera toutes les connexions actives (à l’ écoute ) et passives ( à l’écoute ), c’est-à-dire les ports qui agissent à la fois comme serveur (certains services écoutent ces ports pour les connexions depuis une machine / un processus différent) et établis (des connexions sont établies sur ces derniers). les ports indépendamment du fait que l'hôte / un service peut être un serveur ou un client)

Tous les ports TCP et UDP appartiennent à une catégorie appelée sockets et ils sont nombreux. Pour voir les informations sur la prise, vous pouvez vérifier man ss.


Merci. vous avez écrit que cela -asignifie serveur et établi. Est-ce que "serveur" signifie des ports qui sont écoutés par certains services? Est-ce que "établi" signifie des ports sur lesquels il existe des connexions, qu’il s’agisse d’un port client ou serveur? Alors quels types de ports ne sont -apas affichés?
Tim

Je ne pense pas que l' -aoption signifie "tous les sockets actifs"; cela signifie simplement "tous". netstat affiche tous les sockets actifs par défaut, mais laisse de côté les sockets passifs (ouverts, en écoute). En utilisant l' -aoption, les sockets actifs et passifs sont affichés.
Egon Olieux

@ EgonOlieux Merci. Je me suis trompé; édité la réponse.
Heemayl

@heemayl La deuxième partie de votre réponse est toujours incorrecte. Une socket TCP à l'état "écoute" ne peut jamais être une connexion; ce n'est connecté à rien, c'est seulement écouter. Les sockets TCP en écoute sont également appelés sockets passifs pour cette raison. Si un client tente de se connecter à un socket (à l'écoute) sur un serveur, un nouveau socket sera créé sur le serveur pour établir une connexion avec le client. Un socket qui fait partie d'une connexion établie est appelé un socket actif.
Egon Olieux

3

Une autre option est ss . C'est beaucoup plus facile à utiliser ....

La commande ci-dessous ne produira qu'une liste des sockets d’écoute actuels.

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
Je ne savais pas à ce sujet, merci zee
nick fox

2

Ou cela pourrait aider en utilisant la montre, puis jouer avec ce que vous voulez voir.

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

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

1
-a est en conflit avec -l, -a saisit tout, soit ESTABLISHED ou LISTENING, et -l ne saisit que LISTENING. En réalité, il s'agit de '-ltnp' tcp, '-lunp' udp ou '-ltunp' tcp + udp
ModerateJavaScriptDev

1

En fait, il existe un meilleur moyen de voir quels ports vous avez ouverts. Le problème avec netstatou lsofest qu'ils interrogent la pile de réseau et ne se connectent pas à la machine mais essayent plutôt de voir ce qui est en cours d'exécution sur le système. La meilleure approche consiste à utiliser nmapcomme suit:

nmap -sT -O localhost

Pour voir les ports ouverts.


0
  1. Essayez ceci pour obtenir une liste des ports ouverts dans cette plage.

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
  2. Et cette commande montrera c'est quoi!

    cat /etc/services | grep {PORTNumber}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.