Maison >Opération et maintenance >exploitation et maintenance Linux >Comment vérifier quels ports sont ouverts sous Linux
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.
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]#
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]#
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]#
[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!