歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux 之端口監聽實現教程

主要用到的命令:netstat, nmap

兩者的區別如下:

l  netstat:在本機上面以自己的程序監測自己的 port;

l  nmap:透過網絡的偵測軟件輔助,可偵測非本機上的其他網絡主機。

 

1、  netstat的常規用法:

1.1          列出正在監聽的網絡端口:

[root@www ~]# netstat -tunl

ctive Internet connections (only servers)

Proto Recv-Q Send-Q Local Address    Foreign Address    State

tcp        0      0 0.0.0.0:111      0.0.0.0:*          LISTEN

tcp        0      0 0.0.0.0:22       0.0.0.0:*          LISTEN

tcp        0      0 127.0.0.1:25     0.0.0.0:*          LISTEN

....(底下省略)....

上面說明我的主機至少啟動了111、22和25等端口,而25端口只針對 lo 內部循環測試網絡提供服務,因特網是連不到該埠口的。

1.2         列出已經連接的網絡端口:

[root@www ~]# netstat -tun

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address       Foreign Address     State

tcp        0     52 192.168.1.100:22    192.168.1.101: 56746 ESTABLISHED

從上面的數據來看,我的本地端服務器 (Local Address, 192.168.1.100) 目前僅有一條已建立的聯機,那就是與 192.168.1.101 那部主機連接的聯機,並且聯機方線是由對方連接到我主機的 port 22 來取用我服務器的服務吶!

1.3         刪除已建立連接或監聽中的連接:

如果想要將已經建立,或者是正在監聽當中的網絡服務關閉的話,最簡單的方法當然就是找出該聯機的 PID, 然後將他 kill 掉即可啊!例如下面的范例:

[root@www ~]# netstat -tunp

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address    Foreign Address     State       PID/P name

tcp        0     52 192.168.1.100:22 192.168.1.101:56746  ESTABLISHED 1342/0

如上面的范例,我們可以找出來該聯機是由 sshd 這個程序來啟用的,並且他的 PID 是 1342, 希望你不要心急的用 killall 這個指令,否則容易刪錯人 (因為你的主機裡面可能會有多個 sshd 存在), 應該要使用 kill 這個指令才對喔!

 

2、  NMAP的使用:

如果你要偵測的設備並沒有可讓你登入的操作系統時,那該怎麼辦?舉例來說,你想要了解一下公司的網絡打印機是否有開放某些協議時, 那該如何處理啊?現在你知道 netstat 可以用來查閱本機上面的許多監聽中的通訊協議, 那例如網絡打印機這樣的非本機的設備,要如何查詢啊?呵呵!用 nmap 就對了!

[root@www ~]# nmap [掃瞄類型] [掃瞄參數] [hosts 地址與范圍]

選項與參數:

[掃瞄類型]:主要的掃瞄類型有底下幾種:

    -sT:掃瞄 TCP 封包已建立的聯機 connect() !

    -sS:掃瞄 TCP 封包帶有 SYN 卷標的數據

    -sP:以 ping 的方式進行掃瞄

    -sU:以 UDP 的封包格式進行掃瞄

    -sO:以 IP 的協議 (protocol) 進行主機的掃瞄

[掃瞄參數]:主要的掃瞄參數有幾種:

    -PT:使用 TCP 裡頭的 ping 的方式來進行掃瞄,可以獲知目前有幾部計算機存活(較常用)

    -PI:使用實際的 ping (帶有 ICMP 封包的) 來進行掃瞄

    -p :這個是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式

[Hosts 地址與范圍]:這個有趣多了,有幾種類似的類型

    192.168.1.100  :直接寫入 HOST IP 而已,僅檢查一部;

    192.168.1.0/24 :為 C Class 的型態,

    192.168.*.*  :嘿嘿!則變為 B Class 的型態了!掃瞄的范圍變廣了!

    192.168.1.0-50,60-100,103,200 :這種是變形的主機范圍啦!很好用吧!

 

# 范例一:使用預設參數掃瞄本機所啟用的 port (只會掃瞄 TCP)

[root@www ~]# yum install nmap

[root@www ~]# nmap localhost

PORT    STATE SERVICE

22/tcp  open  ssh

25/tcp  open  smtp

111/tcp open  rpcbind

# 在預設的情況下,nmap 僅會掃瞄 TCP 的協議喔!

Copyright © Linux教程網 All Rights Reserved