概述
平時我們玩Linux的時候有時需要看下伺服器是不是開放了一些埠號,然後看新的埠會不會衝突之類,講查看伺服器開放埠號之前,先了解一下物理埠、邏輯埠、埠號等計算機概念。
01
埠相關概念:
在網路技術中,埠(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)
動態埠,即私人埠號,是可用於任意軟體與任何其他的軟體通信的埠數,使用網際網路的傳輸控制協議,或用戶傳輸協議。動態埠一般從49152到65535。
Linux中有限定埠的使用範圍,如果要為程序預留某些埠,那麼需要控制這個埠範圍。
/proc/sys/net/ipv4/ip_local_port_range定義了本地TCP/UDP的埠範圍,也可以在/etc/sysctl.conf裡面定義net.ipv4.ip_local_port_range = 1024 65000

02
埠與服務的關係
埠有什麼用呢?一台擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那麼,主機是怎樣區分不同的網路服務呢?顯然不能只靠IP地址,因為IP 地址與網路服務的關係是一對多的關係。實際上是通過「IP地址+埠號」來區分不同的服務的。
埠號與相應服務的對應關係存放在/etc/services文件中,這個文件中可以找到大部分埠。
1:nmap工具檢測開放埠
nmap是一款網路掃描和主機檢測的工具。nmap的安裝非常簡單,如下:
# 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 查看本機開放的埠,會掃描所有埠。 當然也可以掃描其它伺服器埠。
# nmap 127.0.0.1

2:netstat 工具檢測開放埠
# netstat -anlp | grep 3306 # netstat -anlp | grep 22

不過這個工具沒有nmap簡潔明了。
3:lsof 工具檢測開放埠
# lsof -i:3306

# lsof -i TCP| fgrep LISTEN

4: 使用telnet檢測埠是否開放
伺服器埠即使處於監聽狀態,但是防火牆iptables屏蔽了該埠,是無法通過該方法檢測埠是否開放的。
5:netcat工具檢測埠是否開放。
# nc -vv 172.18.186.160 1521

後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232919.html