Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk menyemak port mana yang dibuka di Linux
Cara menyemak port terbuka dalam Linux: 1. Gunakan alat nmap untuk mengesan port terbuka 2. Gunakan alat netstat untuk mengesan port terbuka 3. Gunakan alat lsof untuk mengesan port terbuka; telnet untuk mengesan port terbuka 5. Gunakan alat netcat untuk mengesan port terbuka.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Dalam teknologi rangkaian, port termasuk port logik dan port fizikal. Port fizikal merujuk kepada port sedia ada secara fizikal, seperti antara muka pada Modem ADSL, hab, suis dan penghala yang digunakan untuk menyambung ke peranti rangkaian lain, seperti port RJ-45, port SC, dsb. Port logik merujuk kepada port yang digunakan untuk membezakan perkhidmatan dalam erti kata yang logik, seperti port perkhidmatan dalam protokol TCP/IP Nombor port berjulat dari 0 hingga 65535, seperti port 80 untuk menyemak imbas perkhidmatan web dan port 21 untuk perkhidmatan FTP. . Oleh kerana bilangan port fizikal dan port logik yang banyak, untuk membezakan port, setiap port dinomborkan, iaitu nombor port
Port boleh dibahagikan kepada 3 kategori utama mengikut nombor port:
1: Port terkenal
Nombor port yang terkenal berkisar dari 0 hingga 1023. Mereka terikat dengan beberapa perkhidmatan biasa. /etc/services perhubungan pemetaan ini.
2: Pelabuhan Berdaftar:
dari 1024 hingga 49151. Mereka terikat secara longgar dengan beberapa perkhidmatan. Maksudnya, terdapat banyak perkhidmatan yang terikat pada port ini, dan port ini juga digunakan untuk banyak tujuan lain
3: Dinamik dan/atau Pelabuhan Peribadi (Dinamik dan/atau Pelabuhan Peribadi)
.Port dinamik, Nombor port peribadi ialah bilangan port yang boleh digunakan oleh mana-mana perisian untuk berkomunikasi dengan mana-mana perisian lain, menggunakan Protokol Kawalan Penghantaran Internet atau Protokol Pengangkutan Pengguna. Port dinamik biasanya daripada 49152 hingga 65535
Linux mempunyai julat penggunaan port yang terhad Jika saya ingin menempah port tertentu untuk program saya, maka saya perlu mengawal julat port ini. /proc/sys/net/ipv4/ip_local_port_range mentakrifkan julat port TCP/UDP setempat Anda boleh mentakrifkan 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
Mengenai port dalam /etc/sysctl.conf. perkhidmatan, saya pernah menggunakan analogi tandas awam Setiap tandas di tandas awam adalah seperti setiap pelabuhan sistem dibuka Apabila seseorang pergi ke tandas, pautan diwujudkan di pelabuhan ini. Jika tandas itu diduduki oleh seseorang, bermakna nombor pelabuhan itu diduduki oleh perkhidmatan Jika satu hari tiada perkhidmatan tandas awam di sini dan tandas awam dirobohkan, sudah tentu tiada nombor pelabuhan. Malah, contoh yang lebih jelas adalah seperti lobi bank Nombor port adalah kaunter, dan orang yang mengambil nombor untuk mengendalikan perniagaan adalah seperti pelbagai pelanggan yang dipautkan ke pelayan. Mereka menghantar hubungan perniagaan dengan kaunter melalui teknologi pengalihan pelabuhan. Untuk memberikan satu lagi contoh yang mudah difahami, nombor pelabuhan adalah seperti setiap stesen di laluan kereta api berkelajuan tinggi. Contohnya, Changsha, Yueyang, dll. masing-masing mewakili nombor pelabuhan masing-masing melalui tiket kereta api. iaitu seperti setiap aplikasi yang dihantar ke paket IP Port.
Bagaimana untuk menyemak sama ada port dibuka Sebenarnya, saya tidak tahu bagaimana untuk menyemak sama ada terdapat begitu banyak kaedah!
1: Alat nmap mengesan port terbuka
nmap ialah alat imbasan rangkaian dan pengesan hos. Pemasangan nmap adalah sangat mudah seperti yang ditunjukkan di bawah untuk pemasangan 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]#
Mengenai penggunaan nmap, anda boleh membacanya dengan panjang lebar dan dekat, jadi saya tidak akan mengembangkannya di sini. Seperti yang ditunjukkan di bawah, nmap 127.0.0.1 menyemak port yang dibuka pada mesin ini dan mengimbas semua port. Sudah tentu, port pelayan lain juga boleh diimbas.
[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: Alat netstat mengesan port terbuka
[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]#
Seperti di atas Seperti yang ditunjukkan, alat ini terasa kurang ringkas dan jelas daripada nmap. Sudah tentu, ia tidak sekuat nmap.
3: lsof tool mengesan port terbuka
[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: Gunakan telnet untuk mengesan sama ada port adalah Terbuka
Walaupun port pelayan berada dalam keadaan mendengar, tetapi firewall iptables menyekat port, adalah mustahil untuk mengesan sama ada port dibuka melalui kaedah ini.
5: Alat netcat menyemak sama ada port dibuka.
[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
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci Bagaimana untuk menyemak port mana yang dibuka di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!