問題是這樣發生的,昨天要灌VMware vCenter時,在最後一個步驟確認每個Service Port時都會出現衝80 Port:
上網Google了一下(Google已經變成Survey的代名詞了嗎?哈),VC會安裝Tomcat所以會用到80 Port,回頭看了一下,因為之前要裝SQL Server 2008 64 bits(這篇還沒寫)得裝.NET Framework 3.5.1的前置作業(這篇也還沒寫),選了一些非必要的元件,所以衝到了,所以進到角色去把IIS移掉~
重開機後發現問題還在,而且80 Port還是被用掉了,這時候回想不起來倒底裝了什麼也會用到80,所以從指令來查看是哪隻程式用掉了吧,這邊要用到2個Windows指令,netstat和tasklist:
C:\Users\Administrator> netstat -nao |find "0.0.0.0:80" TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
先找出佔用80 Port的PID,netstat的參數o可以做到,find可以列出符合Keyword的列表即可~
C:\Users\Administrator> tasklist /fi "pid eq 4"
映像名稱 PID 工作階段名稱 工作階段 # RAM使用量
======================== ======== ================ =========== ============
System 4 Services 0 372 K
接下來再用tasklist找PID為4的的程式是哪一隻,結果只能發現是System啟用的?後來懷疑是在裝了SQL Server後某個元件所使用,初步懷疑是Report Server,進伺服器管理員 > 設定 > 服務裡面把『ReportServer$VC1MSSQL』停用,果然就搞定了,OYA!!
講了半天,這是個不適合的例子,哈~就當作是看看指令囉~
附錄,指令說明 (netstat):
顯示通訊協定統計資料和目前的 TCP/IP 網路連線。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a 顯示所有連線和接聽連接埠。
-b 顯示涉及建立每個連線或接聽連接埠的
可執行檔。在某些情況下,已知可執行檔可主控多個
獨立元件,在這些情況下,便會顯示涉及建立連線
或接聽連接埠的元件順序。如此,可執行檔名稱位於
底部的 [] 中,上方便是它呼叫的元件等,
直到已達 TCP/IP。請注意,此選項
相當耗時,而且如果您沒有足夠的權限,便會失敗。
-e 顯示乙太網路統計資料。這可以跟 -s 選項合併使用。
-f 顯示外部地址的完整格式的網域名稱 (FQDN)。
-n 以數字格式顯示位址和連接埠號碼。
-o 顯示與每個連線相關聯的擁有處理程序識別碼。
-p proto 顯示由 proto 指定的通訊協定連線; proto
可能是下列任一個: TCP、UDP、TCPv6 或 UDPv6。如果與 -s 選項
搭配使用來顯示每個通訊協定的統計資料,proto 可能是下列任一個:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-r 顯示路由表。
-s 顯示每個通訊協定的統計資料。依預設,將會顯示
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的統計資料;
-p 選項可以用來指定預設的子集。
-t 顯示目前的連線卸載狀態。
interval 重新顯示選取的統計資料,每次顯示之間的暫停
間隔秒數。按 CTRL+C 鍵可以停止重新顯示
統計資料。如果省略,netstat 將會列印一次目前的
設定資訊。
附錄,指令說明 (tasklist):
TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
描述:
此工具會顯示本機或遠端電腦上,
目前正在執行中的處理程序清單。
參數清單:
/S system 指定要連線的遠端系統。
/U [domain\]user 指定要執行命令的使用者內容。
/P [password] 指定所給予使用者內容的密碼。
如果省略,會出現密碼輸入要求。
/M [module] 使用指定的 exe/dll 名稱列出
所有工作。如果沒有指定模組名稱,
則會顯示所有已載入的模組。
/SVC 顯示每個處理程序中所主控的服務。
/V 顯示詳細工作資訊。
/FI filter 顯示符合篩選器指定條件
的工作組。
/FO format 指定輸出的格式。
有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定不要在輸出中顯示的
欄位標題。
只有在 "TABLE" 和 "CSV" 格式有效。
/? 顯示這個說明訊息。
篩選器:
篩選器名稱 正確的運算子 正確值的
----------- --------------- --------------------------
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne 影像名稱
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 工作階段號碼
SESSIONNAME eq, ne 工作階段名稱
CPUTIME eq, ne, gt, lt, ge, le CPU 的時間格式
是 hh:mm:ss。
hh - 小時
mm - 分鐘, ss - 秒數
MEMUSAGE eq, ne, gt, lt, ge, le 記憶體使用量 (單位: KB)
USERNAME eq, ne [domain\]user 格式的使用者
名稱
SERVICES eq, ne 服務名稱
WINDOWTITLE eq, ne 視窗標題
MODULES eq, ne DLL 名稱
注意: 當查詢遠端電腦時,不支援使用 "WINDOWTITLE" 及 "STATUS"
篩選。
範例:
TASKLIST
TASKLIST /M
TASKLIST /V /FO CSV
TASKLIST /SVC /FO LIST
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"