linux檢視開放埠的方法:1、使用nmap工具檢測開放埠;2、使用netstat工具檢測開放埠;3、使用lsof工具檢測開放埠;4、使用telnet檢測開放埠;5、使用netcat工具檢測開放埠。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
在網路技術中,埠(Port)包括邏輯埠和物理埠兩種型別。物理埠指的是物理存在的埠,如ADSL Modem、集線器、交換機、路由器上用 於連線其他網路裝置的介面,如RJ-45埠、SC埠等等。邏輯埠是指邏輯意義上用於區分服務的埠,如TCP/IP協定中的伺服器埠,埠號的範圍從0到65535,比如用於瀏覽網頁服務的80埠,用於FTP服務的21埠等。由於物理埠和邏輯埠數量較多,為了對埠進行區分,將每個埠進行了編號,這就是埠號
埠按埠號可以分為3大類:
1:公認埠(Well Known Port)
公認埠號從0到1023,它們緊密繫結與一些常見服務,例如FTP服務使用埠21,你在 /etc/services 裡面可以看到這種對映關係。
2:註冊埠(Registered Ports):
從1024到49151。它們鬆散地繫結於一些服務。也就是說有許多服務繫結於這些埠,這些埠同樣用於許多其它目的.
3: 動態或私有埠(Dynamic and/or Private Ports)
動態埠,即私人埠號(private port numbers),是可用於任意軟體與任何其他的軟體通訊的埠數,使用因特網的傳輸控制協定,或使用者傳輸協定。動態埠一般從49152到65535
Linux中有限定埠的使用範圍,如果我要為我的程式預留某些埠,那麼我需要控制這個埠範圍。/proc/sys/net/ipv4/ip_local_port_range定義了本地TCP/UDP的埠範圍,你可以在/etc/sysctl.conf裡面定義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
關於埠和服務,我曾經拿公共廁所打比方,公共廁所裡的每一個廁所就好比系統的每一個埠,為人解決方便就是所謂的服務,你提供了這些服務,那麼就必須開放埠(廁所),當有人上廁所時,就是在這些埠建立了連結。如果那個廁所被人佔用了,就表示埠號被服務佔用了,如果有一天這裡不提供公共廁所服務了,這個公共廁所被拆除了,自然也就沒有了埠號了。其實更形象的例子,就好比銀行大堂,埠號是那些櫃檯,而那些取號辦理業務的人就好比連結到伺服器的各種使用者端。他們通過埠重定向技術與櫃檯傳送業務聯絡。再舉一個通俗易懂的例子,埠號,好比高鐵線上的每個站點,例如,長沙、岳陽等分別代表一個埠號,旅客通過火車票到各自的站點,就好比各個應用程式發往伺服器埠的IP包。
如何檢查埠是否開放,其實不整理,還不知道有這麼多方法!
1:nmap工具檢測開放埠
nmap是一款網路掃描和主機檢測的工具。nmap的安裝非常簡單,如下所示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]#
關於nmap的使用,都可以長篇大寫特寫,這裡不做展開。如下所示,nmap 127.0.0.1 檢視本機開放的埠,會掃描所有埠。 當然也可以掃描其它伺服器埠。
[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:netstat 工具檢測開放埠
[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]#
如上所示,這個工具感覺沒有nmap簡潔明瞭。當然也確實沒有nmap功能強大。
3:lsof 工具檢測開放埠
[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: 使用telnet檢測埠是否開放
伺服器埠即使處於監聽狀態,但是防火牆iptables遮蔽了該埠,是無法通過該方法檢測埠是否開放的。
5:netcat工具檢測埠是否開放。
[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
相關推薦:《Linux視訊教學》
以上就是linux怎麼檢視有哪些埠開放的詳細內容,更多請關注TW511.COM其它相關文章!