Maison  >  Article  >  Opération et maintenance  >  Comment vérifier quels ports sont ouverts sous Linux

Comment vérifier quels ports sont ouverts sous Linux

青灯夜游
青灯夜游original
2022-03-02 15:21:5226648parcourir

Comment vérifier les ports ouverts sous Linux : 1. Utilisez l'outil nmap pour détecter les ports ouverts ; 2. Utilisez l'outil netstat pour détecter les ports ouverts ; 3. Utilisez l'outil lsof pour détecter les ports ouverts ; ports ; 5. Utilisez l’outil netcat pour détecter le port ouvert.

Comment vérifier quels ports sont ouverts sous Linux

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Dans la technologie réseau, les ports comprennent deux types : les ports logiques et les ports physiques. Les ports physiques font référence aux ports physiquement existants, tels que les interfaces des modems ADSL, les hubs, les commutateurs et les routeurs utilisés pour se connecter à d'autres périphériques réseau, tels que les ports RJ-45, les ports SC, etc. Le port logique fait référence au port utilisé pour distinguer les services dans un sens logique, comme le port de service dans le protocole TCP/IP. Le numéro de port va de 0 à 65535, comme le port 80 pour les services de navigation Web et le port 21 pour les services FTP. . attendez. En raison du grand nombre de ports physiques et de ports logiques, afin de distinguer les ports, chaque port est numéroté. Il s'agit du numéro de port

Les ports peuvent être divisés en 3 grandes catégories selon le numéro de port :

1 : Port bien connu)

Les numéros de port reconnus vont de 0 à 1023. Ils sont étroitement liés à certains services courants. Par exemple, le service FTP utilise le port 21. Vous pouvez voir cette relation de mappage dans /etc/services.

2 : Ports enregistrés :

de 1024 à 49151. Ils sont vaguement liés à certains services. C'est-à-dire qu'il existe de nombreux services liés à ces ports, et ces ports sont également utilisés à de nombreuses autres fins

3 : Ports dynamiques et/ou privés

Ports dynamiques, c'est-à-dire les numéros de port privés). nombre de ports disponibles pour qu'un logiciel puisse communiquer avec n'importe quel autre logiciel, en utilisant le protocole de contrôle de transmission d'Internet ou le protocole de transport utilisateur. Les ports dynamiques vont généralement de 49152 à 65535

Linux a une plage de ports limitée. Si je souhaite réserver certains ports pour mon programme, je dois contrôler cette plage de ports. /proc/sys/net/ipv4/ip_local_port_range définit la plage de ports TCP/UDP locaux. Vous pouvez définir net.ipv4.ip_local_port_range = 1024 65000

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000
[root@localhost ~]#  echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

Concernant les ports et les services, j'ai déjà pris l'analogie des toilettes publiques, chacun les toilettes dans les toilettes publiques sont comme chaque port du système. Pour offrir du confort aux gens, c'est ce qu'on appelle le service. Si vous fournissez ces services, alors le port (toilettes) doit être ouvert lorsque quelqu'un va aux toilettes. Des liens sont établis sur ces ports. Si ces toilettes sont occupées par quelqu'un, cela signifie que le numéro de port est occupé par un service. Si un jour il n'y a pas de service de toilettes publiques ici et que les toilettes publiques sont démolies, il n'y aura naturellement pas de numéro de port. En fait, un exemple plus frappant est celui d'un lobby bancaire. Les numéros de port sont les compteurs, et les personnes qui prennent les numéros pour gérer leurs affaires sont comme divers clients liés au serveur. Ils envoient des contacts professionnels au comptoir via la technologie de redirection de port. Pour donner un autre exemple facile à comprendre, le numéro de port est comme chaque gare de la ligne ferroviaire à grande vitesse. Par exemple, Changsha, Yueyang, etc. représentent chacune un numéro de port. Les passagers se rendent à leurs gares respectives via des billets de train. ce qui est comme chaque programme d'application envoyant au serveur un paquet IP.

Comment vérifier si le port est ouvert ? En fait, je ne sais pas qu'il existe autant de méthodes sans faire le tri !

1 : l'outil nmap détecte les ports ouverts

nmap est un outil d'analyse réseau et de détection d'hôte. L'installation de nmap est très simple, comme indiqué ci-dessous pour l'installation de RPM.

[root@DB-Server Server]# rpm -ivh nmap-4.11-1.1.x86_64.rpm 
warning: nmap-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:nmap                   ########################################### [100%]
[root@DB-Server Server]# rpm -ivh nmap-frontend-4.11-1.1.x86_64.rpm 
warning: nmap-frontend-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:nmap-frontend          ########################################### [100%]
[root@DB-Server Server]#

Concernant l'utilisation de nmap, vous pouvez écrire un long et gros plan, et je ne le développerai pas ici. Comme indiqué ci-dessous, nmap 127.0.0.1 vérifie les ports ouverts de cette machine et analyse tous les ports. Bien entendu, d'autres ports du serveur peuvent également être analysés.

[root@DB-Server Server]# nmap 127.0.0.1
 
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2016-06-22 15:46 CST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
111/tcp  open  rpcbind
631/tcp  open  ipp
1011/tcp open  unknown
3306/tcp open  mysql
 
Nmap finished: 1 IP address (1 host up) scanned in 0.089 seconds
You have new mail in /var/spool/mail/root
[root@DB-Server Server]#

Comment vérifier quels ports sont ouverts sous Linux

2 : L'outil netstat détecte les ports ouverts

[root@DB-Server Server]# netstat -anlp | grep 3306
tcp        0      0 :::3306                     :::*                        LISTEN      7358/mysqld         
[root@DB-Server Server]# netstat -anlp | grep 22
tcp        0      0 :::22                       :::*                        LISTEN      4020/sshd           
tcp        0     52 ::ffff:192.168.42.128:22    ::ffff:192.168.42.1:43561   ESTABLISHED 6198/2              
[root@DB-Server Server]#

Comment vérifier quels ports sont ouverts sous Linux

Comme indiqué ci-dessus, cet outil semble moins concis et clair que nmap. Bien sûr, il n’est pas aussi puissant que nmap.

3 : l'outil lsof détecte les ports ouverts

[root@DB-Server Server]# service mysql start
Starting MySQL......[  OK  ]
[root@DB-Server Server]# lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE NODE NAME
mysqld  7860 mysql   15u  IPv6  44714       TCP *:mysql (LISTEN)
[root@DB-Server Server]# service mysql stop
Shutting down MySQL..[  OK  ]
[root@DB-Server Server]# lsof -i:3306
[root@DB-Server Server]#

Comment vérifier quels ports sont ouverts sous Linux

[root@DB-Server Server]# lsof -i TCP| fgrep LISTEN
cupsd     3153    root    4u  IPv4   9115       TCP localhost.localdomain:ipp (LISTEN)
portmap   3761     rpc    4u  IPv4  10284       TCP *:sunrpc (LISTEN)
rpc.statd 3797 rpcuser    7u  IPv4  10489       TCP *:1011 (LISTEN)
sshd      4020    root    3u  IPv6  12791       TCP *:ssh (LISTEN)
sendmail  4042    root    4u  IPv4  12876       TCP localhost.localdomain:smtp (LISTEN)

4 : Utilisez telnet pour détecter si le port est ouvert

Même si le port du serveur est en état d'écoute, mais que le pare-feu iptables bloque le port, cette méthode ne peut pas être utilisée. Vérifiez si le port est ouvert.

5 : L'outil netcat détecte si le port est ouvert.

[root@DB-Server ~]# nc -vv 192.168.42.128 1521
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
[root@DB-Server ~]# nc -z 192.168.42.128 1521; echo $?
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
0
[root@DB-Server ~]#  nc -vv 192.168.42.128 1433
nc: connect to 192.168.42.128 port 1433 (tcp) failed: No route to host

Recommandations associées : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn