小弟目前正在學習Windows Server 2012 Datacenter
以前在網路分享的文章看到在Linux下輸入
netstat -atnp -A inet | grep ":80" | awk -F " " '{print $5} ' | awk -F ":" '{print $1}' | sort | uniq -c | sort -nr | head -5
可以顯示出指定的PORT最高連線數前五個IP與其連線數,因為常受到端口連線數異常的困擾,想藉此快速取得異常的IP然後從路由器封鎖,但這些指令在Windows下不支援的。
想請教IT大神們,我在windows server 2012指令該如何下可達到這效果,或者有更好的方法能讓我快速知道連線數最高的前幾名IP與連線數呢...
請去抓一個 UnxUtils 工具包
http://sourceforge.net/projects/unxutils/
將壓縮包裡 usr\local\wbin\ 目錄下的檔案解壓到 c:\windows 中 (或者放到你喜歡的目錄,但下列指令就得加上目錄名。) 然後用這個指令就可以達到同樣效果:
<pre class="c" name="code">netstat -anp TCP | gawk.exe "/:80/{print $3}" | cut.exe -d: -f1 | sort.exe | uniq.exe -c | sort.exe -nr | head.exe -5
其中 gawk.exe、cut.exe、sort.exe、uniq.exe、head.exe 都是壓縮包裡的執行檔。
也可以把去除 port 及統計,都交給 awk 來做,就能省去 3 個指令:
<pre class="c" name="code">netstat -anp TCP | gawk.exe "/:80/{split($3,A,/:/); ++S[A[1]]} END {for(a in S) printf(\"%5d\t%s\n\",S[a],a)}" | sort.exe -nr | head.exe -5
你好,我已經將usr\local\wbin\ 目錄下的檔案解壓到 c:\windows 中,輸入結果如下圖
一、輸入上述第一個指令出現的訊息
二、輸入上述第二個指令出現的訊息
不知道我有遺漏了什麼-nr系統找不到指定的檔案...
微軟網站不是有個現成的軟體 TCPViewer 可以用?
不是就可以看的一清二楚?
http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx