概述
平時(shí)我們玩linux的時(shí)候有時(shí)需要看下服務(wù)器是不是開放了一些端口號(hào),然后看新的端口會(huì)不會(huì)沖突之類,講查看服務(wù)器開放端口號(hào)之前,先了解一下物理端口、邏輯端口、端口號(hào)等計(jì)算機(jī)概念。
01
端口相關(guān)概念:
在網(wǎng)絡(luò)技術(shù)中,端口(Port)包括邏輯端口和物理端口兩種類型。物理端口指的是物理存在的端口,如ADSL Modem、集線器、交換機(jī)、路由器上用 于連接其他網(wǎng)絡(luò)設(shè)備的接口,如RJ-45端口、SC端口等等。邏輯端口是指邏輯意義上用于區(qū)分服務(wù)的端口,如TCP/IP協(xié)議中的服務(wù)端口,端口號(hào)的范圍從0到65535,比如用于瀏覽網(wǎng)頁服務(wù)的80端口,用于FTP服務(wù)的21端口等。由于物理端口和邏輯端口數(shù)量較多,為了對(duì)端口進(jìn)行區(qū)分,將每個(gè)端口進(jìn)行了編號(hào),這就是端口號(hào)
端口按端口號(hào)可以分為3大類:
1:公認(rèn)端口(Well Known Port)
公認(rèn)端口號(hào)從0到1023,它們緊密綁定與一些常見服務(wù),例如FTP服務(wù)使用端口21,你在 /etc/services 里面可以看到這種映射關(guān)系。

2:注冊(cè)端口(Registered Ports):
從1024到49151。它們松散地綁定于一些服務(wù)。也就是說有許多服務(wù)綁定于這些端口,這些端口同樣用于許多其它目的.
3: 動(dòng)態(tài)或私有端口(Dynamic and/or Private Ports)
動(dòng)態(tài)端口,即私人端口號(hào),是可用于任意軟件與任何其他的軟件通信的端口數(shù),使用因特網(wǎng)的傳輸控制協(xié)議,或用戶傳輸協(xié)議。動(dòng)態(tài)端口一般從49152到65535。
Linux中有限定端口的使用范圍,如果要為程序預(yù)留某些端口,那么需要控制這個(gè)端口范圍。/proc/sys/net/ipv4/ip_local_port_range定義了本地TCP/UDP的端口范圍,也可以在/etc/sysctl.conf里面定義net.ipv4.ip_local_port_range = 1024 65000

02
端口與服務(wù)的關(guān)系
端口有什么用呢?一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù),比如Web服務(wù)、FTP服務(wù)、SMTP服務(wù)等,這些服務(wù)完全可以通過1個(gè)IP地址來實(shí)現(xiàn)。那么,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因?yàn)镮P 地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對(duì)多的關(guān)系。實(shí)際上是通過“IP地址+端口號(hào)”來區(qū)分不同的服務(wù)的。
端口號(hào)與相應(yīng)服務(wù)的對(duì)應(yīng)關(guān)系存放在/etc/services文件中,這個(gè)文件中可以找到大部分端口。
1:nmap工具檢測(cè)開放端口
nmap是一款網(wǎng)絡(luò)掃描和主機(jī)檢測(cè)的工具。nmap的安裝非常簡(jiǎn)單,如下:
# rpm -ivh nmap-4.11-1.1.x86_64.rpm # rpm -ivh nmap-frontend-4.11-1.1.x86_64.rpm
nmap 127.0.0.1 查看本機(jī)開放的端口,會(huì)掃描所有端口。 當(dāng)然也可以掃描其它服務(wù)器端口。
# nmap 127.0.0.1

2:netstat 工具檢測(cè)開放端口
# netstat -anlp | grep 3306 # netstat -anlp | grep 22

不過這個(gè)工具沒有nmap簡(jiǎn)潔明了。
3:lsof 工具檢測(cè)開放端口
# lsof -i:3306

# lsof -i TCP| fgrep LISTEN

4: 使用telnet檢測(cè)端口是否開放
服務(wù)器端口即使處于監(jiān)聽狀態(tài),但是防火墻iptables屏蔽了該端口,是無法通過該方法檢測(cè)端口是否開放的。
5:netcat工具檢測(cè)端口是否開放。
# nc -vv 172.18.186.160 1521
