前言
使用Linux主機(jī)也有一段時(shí)間配喳,常常會(huì)監(jiān)測(cè)某一個(gè)端口是否已經(jīng)開(kāi)啟了晴裹、或者某一個(gè)端口被哪一個(gè)程序占用了救赐,然而今天就系統(tǒng)整理一下,Share~
端口類型
說(shuō)點(diǎn)理論的的東西泌绣,額~Unix/Linux服務(wù)器的類型有哪些呢预厌?按照端口的分段基本可以分成三大類型:
- 公認(rèn)端口(Well Known Port)
公認(rèn)端口號(hào)從0到1023,它們緊密綁定與一些常見(jiàn)服務(wù)苗沧,例如FTP服務(wù)使用端口21崎页、HTTP服務(wù)使用端口80
- 注冊(cè)端口(Registered Ports)
注冊(cè)端口一般從1024到49151腰埂,它們松散地綁定于一些服務(wù)。
- 動(dòng)態(tài)或私有端口(Dynamic and/or Private Ports)
動(dòng)態(tài)端口牺荠,即私人端口號(hào)(private port numbers)驴一,是可用于任意軟件與任何其他的軟件通信的端口數(shù),使用因特網(wǎng)的傳輸控制協(xié)議杈曲,或用戶傳輸協(xié)議。動(dòng)態(tài)端口一般從49152到65535
端口與服務(wù)
無(wú)論在windows上還是Linux上恰响,一臺(tái)計(jì)算機(jī)主機(jī)都含有多種服務(wù)涌献,比如Web服務(wù)、FTP服務(wù)枢劝、SMTP服務(wù)等卜壕。那么端口有什么用呢,我們知道被冒,一臺(tái)擁有IP地址的主機(jī)可以提供許多服務(wù)轮蜕,這些服務(wù)完全可以通過(guò)1個(gè)IP地址來(lái)通訊跃洛。那么终议,主機(jī)是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址细燎,因?yàn)镮P 地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對(duì)多的關(guān)系皂甘。實(shí)際上是通過(guò)“IP地址+端口號(hào)”來(lái)區(qū)分不同的服務(wù)的。
得回到我的Title了璧瞬,不然就成了標(biāo)題黨(o)/~
nmap
- 簡(jiǎn)介
nmap是一款網(wǎng)絡(luò)掃描和主機(jī)檢測(cè)的工具 - 安裝
sudo apt-get install nmap
- 語(yǔ)法格式
nmap [掃描類型] [選項(xiàng)] {目標(biāo)}
- 示例
# 查找172.16.168.200主機(jī)上的端口開(kāi)放情況
? ~ nmap 172.16.168.200
Starting Nmap 6.40 ( http://nmap.org ) at 2017-04-13 11:33 CST
Nmap scan report for 172.16.168.200
Host is up (0.021s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
8888/tcp open sun-answerbook
10001/tcp open scp-config
10002/tcp open documentum
10003/tcp open documentum_s
Nmap done: 1 IP address (1 host up) scanned in 1.86 seconds
# 查找172.16.168.200主機(jī)上的端口服務(wù)的詳細(xì)信息
netstat
- 簡(jiǎn)介
用于顯示各種網(wǎng)絡(luò)相關(guān)信息嗤锉,如網(wǎng)絡(luò)連接瘟忱,路由表,接口狀態(tài) 等等 - 語(yǔ)法格式
netstat [-acCeFghilMnNoprstuvVwx] [-A<網(wǎng)絡(luò)類型>][--ip]
- 示例
# 結(jié)合grep查找是否開(kāi)啟了3306端口
? ~ netstat -anlp |grep 3306
(并非所有進(jìn)程都能被檢測(cè)到访诱,所有非本用戶的進(jìn)程信息將不會(huì)顯示,如果想看到所有信息棒拂,則必須切換到 root 用戶)
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
lsof
- 簡(jiǎn)介
這個(gè)是我比較常用的端口監(jiān)測(cè)的命令帚屉,它也是用于查找端口的一個(gè)命令工具漾峡。 - 示例
# 監(jiān)測(cè)3306端口是否啟動(dòng)了
? ~ sudo lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1277 mysql 11u IPv4 16839 0t0 TCP *:mysql (LISTEN)
netcat
- 簡(jiǎn)介
監(jiān)測(cè)某一個(gè)端口是否可以連接得上的一個(gè)命令行工具。 - 示例
# 成功
? ~ netcat -vv 172.16.168.1 3000
Connection to 172.16.168.1 3000 port [tcp/*] succeeded!
# 失敗
? ~ netcat -vv 172.16.168.1 3001
netcat: connect to 172.16.168.1 port 3001 (tcp) failed: Connection refused
ps
上面的命令行的用法牢屋、參數(shù)槽袄、選項(xiàng)還是比較多的,還有其它的功能截酷,如上只是簡(jiǎn)單的使用乾戏,更多自行help... ...
Alic say : ****價(jià)值源于技術(shù),貢獻(xiàn)源于分享****