Comment trouver le nombre de ports ouverts sous Linux?


17

Comment trouver le nombre de ports ouverts sous Linux? Je veux voir si je manque de ports. De plus, comment puis-je voir la limite de mon système d'exploitation?


2
Que faites-vous que vous avez peur de manquer de ports?
MDMarra

Réponses:


27

Sur Linux moderne, utilisez l'utilitaire ss (socket stats).

$ ss -s
Total: 10160 (kernel 10262)
TCP:   10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147

Transport Total     IP        IPv6
*         10262     -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       9941      9941      0        
INET      9946      9946      0        
FRAG      0         0         0        

9
netstat -an | grep ESTABLISHED | wc -l

vous donnera le nombre de ports ouverts, 32 dans mon cas.

cat /proc/sys/net/ipv4/ip_local_port_range

Rendra quelque chose comme:

32768 61000

ce qui signifie, 61000 - 32768 - $ OPENPORTS = AvailablePorts

Sur ma boîte, c'est:

61000-32768-32 = 28200 numéros de port disponibles.


le -a46 n'a pas fonctionné. De l'aide?
erotsppa

quelle distribution vous exécutez? (qui fonctionne sur le serveur ubuntu 10.04 LTS). Bien sûr, si vous n'avez pas installé ipv6, utilisez simplement netstat -a.
Grizly

Testé sur ma boîte CentOS, il semble qu'il se bloque si vous n'utilisez pas "-n" pour arrêter la résolution de nom. (netstat -an | grep ESTABLISHED | wc -l)
Grizly

Je viens de voir "ss" ci-dessous, c'est génial, je ne savais pas ... beaucoup mieux! Utilisez ip_local_port_range pour déterminer ce que votre Linux est configuré pour autoriser, mais cela vous montre ce que vous utilisez actuellement dans un format beaucoup plus accessible!
Grizly

8

Comme d'autres l'ont mentionné, netstat est l'outil à utiliser pour déterminer quels ports sont actuellement utilisés. En ce qui concerne les limites, le nombre de ports disponibles est un entier non signé 16 bits qui vous donne la plage 0-65535. Les ports disponibles pour les applications à lier sont les ports réservés / root réservés (0-1024) plus tout ce qui n'est pas couvert par votre plage de ports éphémères.

Vous pouvez afficher vos ports éphémères en exécutant cat /proc/sys/net/ipv4/ip_local_port_range.

Pour modifier cela de manière persistante, vous devez ajouter / modifier "net.ipv4.ip_local_port_range" dans le fichier /etc/sysctl.conf, ou de manière interactive avec sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
cueillette de nit, mais ce n'est pas exactement une limite ipv4. C'est une limite tcp / udp. et ceux qui fonctionnent indépendamment d'ipv4. (ex. ipv6 ne fait rien pour la couche transport)
Joel K

Aaah, tu as raison. J'ai supprimé la référence IPV4 dans ma réponse.
Alex

1

Personnellement, je préfère nmap. Vous pouvez trouver l'état de tous les ports en émettant la cible nmap -P 1-65535. La plupart des distributions devraient avoir ce package disponible via leur gestionnaire de packages.


1

Essayer

# lsof -n -i -P 

Par souci d'exhaustivité :)


0

netstat vous permettra de voir quels ports sont ouverts, faites "netstat -" pour voir ce qui correspond le mieux à vos besoins.


1
netstat --inetaidera le plus.
Paul Tomblin

Je voulais dire -? caractère manquant.
jer.salamon

ou lisez la page de
manuel

Incluez également --inet6 (abréviation pour les deux: -4 -6), pour obtenir des sockets IPv6 et des sockets ip-agnostic (ce dernier étant la valeur par défaut sur les hôtes à double pile, voir rfc 3493 section 3.7).
Tobu


0

netstat -tulnp

Les arguments du programme netstat sont répertoriés ci-dessous:

*

  t - Show TCP
*

  u - Show UDP
*

  l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*

  n - Do not resolve network IP address names or port numbers
*

  p - Show the process name that is listening on the port

0

utilisez la commande suivante sur le terminal pour vérifier tous les ports

netstat -lntu

Pour voir un état de ports spécifique, utilisez la commande suivante

netstat -an | grep ':6060'

remplacez 6060 par votre numéro de port spécifique.

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.