題外話:其實從事IT這個行業,多多少少都要涉及到一些DOS相關命令,特別是有涉及到網絡、服務器、客戶端等相關的,就需要用到一些命令來幫助我們進行問題的分析還有排查,當我們把一些命令搞熟悉了,我們就可以根據實際的應用場景結合相應的命令來分析相關問題,近期我會定期整理相關IT從業人員必備網絡調試命令,希望大家在工作或者生活中都能實際用到,覺得講得還撮合的過去的,請關注一波,三克油。

1 netstat 功能說明

Netstat命令可以幫助網絡管理員瞭解網絡的整體使用情況。它可以顯示當前正在活動的網絡連接的詳細信息,例如顯示網絡連接、路由表和網絡接口信息,可以統計目前總共有哪些網絡連接正在運行。

利用命令參數,命令可以顯示所有協議的使用狀態,這些協議包括TCP協議、UDP協議以及IP協議等,另外還可以選擇特定的協議並查看其具體信息,還能顯示所有主機的端口號以及當前主機的詳細路由信息。

命令格式:

netstat [-r] [-s] [-n] [-a]

參數含義:

-r 顯示本機路由表的內容;

-s 顯示每個協議的使用狀態(包括TCP協議、UDP協議、IP協議);

-n 以數字表格形式顯示地址和端口;

-a 顯示所有主機的端口號。

2 應用場景:Windows下如何查看某個端口被誰佔用?

(1)查看該端口被那個PID所佔用;

方法一:有針對性的查看端口,使用命令

Netstat –ano|findstr 端口號,如圖,最後一列爲PID。圖中的端口號爲3306,所對應的PID爲7272。

圖1

方法二:直接查看所有端口的信息 netstat -ano

(2)查到此端口爲3306之後,我們可以根據後面的pid值(假設pid爲7272),查下哪個進程開啓了這個端口,有兩個方法:

方法一:tasklist |findstr 7272,直接查找該進程號對應的進程名稱,如圖所示,是mysqld.exe這個進程創建的3306端口;

圖2 tasklist

方法二:打開任務管理器,查看pid爲“7272”的進程名,若任務管理器不顯示PID值,可以打開任務管理器---選項---選擇列,勾選pid即可。

圖3任務管理器

(3)瞭解到是哪個進程開啓的端口,若要結束掉該進程的話,可以任務管理器那邊直接結束又或者通過dos命令:taskkill /f /t /im mysqld.exe 。

3 知識拓展

以上我們講到的是常用的命令用法,但是實際上該功能還可以用於很多應用場景,比如可以查下電腦是否有中木馬之類的;假設我這臺電腦沒有打開任何程序,然後發現電腦的網絡數據很大,這時候應該怎麼排查呢?

舉個例子:假設用戶打開任務管理器的時候,發現電腦的網絡數據量很大,如圖所示:

圖4

從以上圖我們可以發現,進程system,pid爲4,網絡數據有4.7m多(其實並不是很大,我們只是用來舉個例子),這時候我們電腦並沒有開啓任何的進程,應該不至於產生這麼大的數據量;接下來我們用netstat -ano 查看下當前pid值爲“4”的連接情況,如圖所示:

圖5

我們發現,本地電腦有開啓了這4個端口,然後訪問了192.168.251.2服務器的445端口,我們知道445端口一般是用於共享連接的,也有可能是木馬連接,所以我們在dos執行下net use命令,結果如圖所示:

圖6

發現是本地有個映射盤,所以可能產生了數據,把映射盤關閉掉或者執行net use */del,將當前的連接都清空之後,再觀察看看是否還會自動產生連接,如果還會,那可能還得再查查,是本地的哪幾個端口連接了445;可以再利用netstat -ano |findstr (端口號),直接查下是哪個進程產生的端口然後發起連接;

其實也可以通過TCPView工具,直接分析當前的連接情況,這個工具直接運行下,更加直觀,如圖所示:

圖7

查看原文 >>
相關文章