Hafenbezogene Konzepte:In der Netzwerktechnologie gibt es zwei Arten von Ports: logische Ports und physische Ports. Ein physischer Port ist ein physisch vorhandener Port, beispielsweise eine Schnittstelle an einem ADSL-Modem, Hub, Switch oder Router, der zur Verbindung mit anderen Netzwerkgeräten verwendet wird, beispielsweise ein RJ-45-Port, SC-Port usw. Logische Ports beziehen sich auf Ports, die zur logischen Unterscheidung von Diensten verwendet werden, wie z. B. Service-Ports im TCP/IP-Protokoll. Die Portnummer reicht von 0 bis 65535, z. B. Port 80 für Webbrowser-Dienste und Port 21 für FTP-Dienste. Aufgrund der großen Anzahl physischer und logischer Ports wird zur Unterscheidung der Ports jeder Port nummeriert, was die Portnummer darstellt. Ports können anhand ihrer Portnummern in drei Kategorien unterteilt werden: 1: Bekannter Hafen Die erkannten Portnummern reichen von 0 bis 1023. Sie sind eng an einige gängige Dienste gebunden. Beispielsweise verwendet der FTP-Dienst Port 21. Sie können diese Zuordnungsbeziehung in /etc/services sehen. 2: Registrierte Ports: Von 1024 bis 49151. Sie sind lose an einige Dienste gebunden. Das heißt, an diese Ports sind viele Dienste gebunden und diese Ports werden auch für viele andere Zwecke verwendet. 3: Dynamische und/oder private Ports Dynamische Ports oder private Portnummern sind Portnummern, die von jeder Software zur Kommunikation mit jeder anderen Software unter Verwendung des Transmission Control Protocol (oder User Transport Protocol) des Internets verwendet werden können. Dynamische Ports reichen im Allgemeinen von 49152 bis 65535 In Linux ist die Anzahl der Ports begrenzt. Wenn ich für mein Programm bestimmte Ports reservieren möchte, muss ich diesen Portbereich kontrollieren. /proc/sys/net/ipv4/ip_local_port_range definiert den lokalen TCP/UDP-Portbereich. Sie können net.ipv4.ip_local_port_range = 1024 65000 in /etc/sysctl.conf definieren. [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 In Bezug auf Häfen und Dienste habe ich einmal eine öffentliche Toilette als Beispiel verwendet. Jede Toilette in der öffentlichen Toilette ist wie jeder Hafen im System. Den Menschen Komfort zu bieten, ist der sogenannte Dienst. Wenn Sie diese Dienste anbieten, müssen Sie den Hafen (die Toilette) öffnen. Wenn jemand auf die Toilette geht, wird an diesen Häfen eine Verbindung hergestellt. Wenn die Toilette von jemandem besetzt ist, bedeutet dies, dass die Anschlussnummer vom Dienst belegt ist. Wenn hier eines Tages der öffentliche Toilettendienst nicht mehr angeboten wird und die öffentliche Toilette abgerissen wird, gibt es natürlich keine Anschlussnummer. Ein anschaulicheres Beispiel ist die Lobby einer Bank. Die Portnummern sind die Schalter, und die Leute, die die Nummern entgegennehmen und Geschäfte abwickeln, sind wie die verschiedenen Clients, die mit dem Server verbunden sind. Sie senden Geschäftskontakte über die Port-Umleitungstechnologie an den Schalter. Ein weiteres leicht verständliches Beispiel: Die Portnummer entspricht den Stationen der Hochgeschwindigkeitsstrecke. Changsha, Yueyang usw. stellen beispielsweise jeweils eine Portnummer dar. Passagiere verwenden Zugfahrkarten, um zu ihren jeweiligen Stationen zu gelangen, was den IP-Paketen entspricht, die von jeder Anwendung an den Serverport gesendet werden. Beziehung zwischen Häfen und DienstenWozu dienen Ports? Wir wissen, dass ein Host mit einer IP-Adresse viele Dienste bereitstellen kann, z. B. Webdienste, FTP-Dienste, SMTP-Dienste usw. Diese Dienste können vollständig über eine IP-Adresse implementiert werden. Wie unterscheidet der Host zwischen verschiedenen Netzwerkdiensten? Offensichtlich können wir uns nicht ausschließlich auf IP-Adressen verlassen, da die Beziehung zwischen IP-Adressen und Netzwerkdiensten eine Eins-zu-viele-Beziehung ist. Tatsächlich werden verschiedene Dienste durch „IP-Adresse + Portnummer“ unterschieden. Die Entsprechung zwischen Portnummern und entsprechenden Diensten wird in der Datei /etc/services gespeichert, in der die meisten Ports zu finden sind. Wie kann ich überprüfen, ob der Port geöffnet ist? Wenn Sie das nicht selbst herausfinden, werden Sie gar nicht wissen, dass es so viele Methoden gibt! 1: Das Nmap-Tool erkennt offene PortsNmap ist ein Tool zum Scannen von Netzwerken und zur Host-Erkennung. Die Installation von nmap ist sehr einfach, wie unten in der RPM-Installation gezeigt. [root@DB-Server Server]# rpm -ivh nmap-4.11-1.1.x86_64.rpm Warnung: nmap-4.11-1.1.x86_64.rpm: Header V3 DSA-Signatur: NOKEY, Schlüssel-ID 37017186 Vorbereitung... #################################################### [100%] 1:nmap ####################################################### [100%] [root@DB-Server Server]# rpm -ivh nmap-frontend-4.11-1.1.x86_64.rpm Warnung: nmap-frontend-4.11-1.1.x86_64.rpm: Header V3 DSA-Signatur: NOKEY, Schlüssel-ID 37017186 Vorbereitung... #################################################### [100%] 1:nmap-frontend ##################################################### [100%] Die Verwendung von nmap könnte sehr ausführlich und langatmig beschrieben werden, deshalb werde ich hier nicht näher darauf eingehen. Wie unten gezeigt, überprüft nmap 127.0.0.1 die offenen Ports auf dem lokalen Computer und scannt alle Ports. Natürlich können Sie auch andere Server-Ports scannen. [root@DB-Server Server]# nmap 127.0.0.1 Start von Nmap 4.11 ( http://www.insecure.org/nmap/ ) am 22.06.2016 15:46 CST Interessante Ports auf localhost.localdomain (127.0.0.1): Nicht angezeigt: 1674 geschlossene Ports Hafenstaatsdienst 22/tcp öffne ssh 25/TCP SMTP öffnen 111/tcp öffne rpcbind 631/TCP-IP öffnen 1011/tcp offen unbekannt 3306/tcp MySQL öffnen Nmap fertig: 1 IP-Adresse (1 Host aktiv) in 0,089 Sekunden gescannt Sie haben neue E-Mails in /var/spool/mail/root [root@DB-Server Server]# 2: Verwenden Sie das Netstat-Tool, um offene Ports zu erkennen[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 HERGESTELLT 6198/2 [root@DB-Server Server]# Wie oben gezeigt, fühlt sich dieses Tool nicht so prägnant an wie nmap. Natürlich ist es nicht so leistungsfähig wie nmap. 3: Das Tool lsof erkennt offene Ports[root@DB-Server Server]# service mysql start MySQL wird gestartet... [OK] [root@DB-Server Server]# lsof -i:3306 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE KNOTENNAME mysqld 7860 mysql 15u IPv6 44714 TCP *:mysql (HÖREN) [root@DB-Server Server]# Dienst MySQL Stop MySQL wird heruntergefahren. [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 (HÖREN) Portmap 3761 RPC 4u IPv4 10284 TCP *:sunrpc (HÖREN) rpc.statd 3797 rpcuser 7u IPv4 10489 TCP *:1011 (HÖREN) sshd 4020 root 3u IPv6 12791 TCP *:ssh (HÖREN) sendmail 4042 root 4u IPv4 12876 TCP localhost.localdomain:smtp (HÖREN) 4: SS-Tool erkennt offene Ports[root@localhost ~]# ss -ntl Status Recv-Q Send-Q Lokale Adresse:Port Peer-Adresse:Port HÖREN 0 50 *:3306 *:* HÖREN 0 128 *:111 *:* HÖREN 0 128 *:22 *:* HÖREN 0 32 *:8808 *:* HÖREN 0 128 [::]:111 [::]:* HÖREN 0 128 [::]:22 [::]:* [root@localhost ~] 5: Mit Telnet prüfen, ob der Port geöffnet istAuch wenn der Server-Port im Listening-Status ist, die iptables-Firewall den Port jedoch blockiert, kann mit dieser Methode nicht erkannt werden, ob der Port geöffnet ist. 6: Überprüfen Sie mit dem Netcat-Tool, ob der Port geöffnet ist[root@DB-Server ~]# nc -vv 192.168.42.128 1521 Verbindung zum Port 192.168.42.128 1521 [tcp/ncube-lm] erfolgreich! [root@DB-Server ~]# nc -z 192.168.42.128 1521; echo $? Verbindung zum Port 192.168.42.128 1521 [tcp/ncube-lm] erfolgreich! 0 [root@DB-Server ~]# nc -vv 192.168.42.128 1433 nc: Verbindung zu 192.168.42.128 Port 1433 (TCP) fehlgeschlagen: Keine Route zum Host Geschlossene Ports und offene PortsDas Schließen und Öffnen eines Ports sollten zwei verschiedene Konzepte sein. Jeder Port hat einen entsprechenden Dienst. Um einen Port zu schließen, müssen Sie daher nur den entsprechenden Dienst schließen. Wie im folgenden Beispiel gezeigt, ist der MySQL-Dienst eingeschaltet und Port 3306 befindet sich im Abhörstatus. Nachdem der MySQL-Dienst ausgeschaltet wurde, wird Port 3306 natürlich geschlossen. [root@DB-Server Server]# service mysql start MySQL wird gestartet... [OK] [root@DB-Server Server]# lsof -i:3306 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE KNOTENNAME mysqld 7860 mysql 15u IPv6 44714 TCP *:mysql (HÖREN) [root@DB-Server Server]# Dienst MySQL Stop MySQL wird heruntergefahren. [OK] [root@DB-Server Server]# lsof -i:3306 [root@DB-Server Server]# Aus Sicherheitsgründen oder zur Ressourcenerhaltung sollten daher einige nicht benötigte Ports und Dienste im System geschlossen werden. Schließen Sie den entsprechenden Port. Darüber hinaus schränkt die Firewall den entsprechenden Port ein, selbst wenn der Dienst aktiviert ist, sodass auf den Port nicht zugegriffen werden kann. Der Port selbst wird jedoch nicht geschlossen, sondern nur blockiert. Damit ist dieser Artikel darüber, wie viele Ports ein Linux-Server maximal öffnen kann, abgeschlossen. Weitere Informationen zu offenen Ports auf Linux-Servern finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lösen Sie das Problem der Datensynchronisierung beim Scrollen und Liken von Vue-Seamless-Scroll
>>: Der gesamte Prozess der Installation von mysql5.7.22 unter der ARM64-Architektur
Vorwort Ich habe in letzter Zeit das Gefühl, dass...
1. Grundlegende Verwendung von Firewalld Start-up...
Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306. A...
In den letzten Tagen war der Zugriff auf die Webs...
Die Wirkung ist ganz einfach: Kopieren Sie einfach...
yum-Befehl Yum (vollständiger Name Yellow Dog Upd...
Inhaltsverzeichnis Installieren Sie Mockjs in Ihr...
Das mit dem offiziellen Docker-Register erstellte...
Zuvor habe ich MySQL 5.7 verwendet, aber da MySQL...
Inhaltsverzeichnis Strategie zur Ausführung föder...
Das Datenträgerkontingent ist die Speichergrenze ...
VC6.0 ist tatsächlich zu alt VC6.0 ist ein Entwic...
MySQL ist das beliebteste relationale Datenbankma...
Beim Kompilieren und Installieren von Nginx werde...
1. Die Farbe der Bildlaufleiste unter xhtml Im Ori...