標籤:c style class blog code java
調試技巧--Windows連接埠號碼是否被佔用 一、連接埠概念
10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。
連接埠概念
在網路技術中,連接埠(Port)大致有兩種意思:一是物理意義上的連接埠,比如,ADSL Modem、集線器、交換器、路由器用於串連其他網路裝置的介面,如RJ-45連接埠、SC連接埠等等。二是邏輯意義上的連接埠,一般是指TCP/IP協議中的連接埠,連接埠號碼的範圍從0到65535,比如用於瀏覽網頁服務的80連接埠,用於FTP服務的21連接埠等等。
我們這裡將要介紹的就是邏輯意義上的連接埠。
(1)知名連接埠(Well-Known Ports)
知名連接埠即眾所周知的連接埠號碼,範圍從0到1023,這些連接埠號碼一般固定分配給一些服務。比如21連接埠分配給FTP服務,25連接埠分配給SMTP(簡易郵件傳輸通訊協定)服務,80連接埠分配給HTTP服務,135連接埠分配給RPC(遠端程序呼叫)服務等等。
(2)動態連接埠(Dynamic Ports)
動態連接埠的範圍從1024到65535,這些連接埠號碼一般不固定分配給某個服務,也就是說許多服務都可以使用這些連接埠。只要啟動並執行程式向系統提出訪問網路的申請,那麼系統就可以從這些連接埠號碼中分配一個供該程式使用。比如1024連接埠就是分配給第一個向系統發出申請的程式。在關閉程式進程後,就會釋放所佔用的連接埠號碼
連接埠映射
連接埠映射其實就是常說的NAT地址轉換的一種,其功能就是把在公網的地址轉翻譯成私人地址, 採用路由方式的ADSL寬頻路由器擁有一個動態或固定的公網IP,ADSL直接接在HUB或交換器上,所有的電腦共用上網。
二、查看Windows連接埠是否開啟
使用telnet命令
在命令列中,運行telnet ip地址 連接埠號碼
C:\Users\yankan>telnet -htelnet [-a][-e escape char][-f log file][-l user][-t term][host [port]] -a 企圖自動登入。除了用當前已登陸的使用者名稱以外,與 -l 選項相同。 -e 跳過字元來進入 telnet 用戶端提示。 -f 用戶端登入的檔案名稱 -l 指定遠程系統上登入用的使用者名稱稱。 要求遠程系統支援 TELNET ENVIRON 選項。 -t 指定終端類型。 支援的終端類型僅是: vt100, vt52, ansi 和 vtnt。 host 指定要串連的遠端電腦的主機名稱或 IP 位址。 port 指定連接埠號碼或服務名。
使用telnet ip地址 連接埠號碼方式來測試,該連接埠是否開放。
串連失敗:
C:\Users\yankan>telnet 10.1.37.214 9999正在串連10.1.37.214...無法開啟到主機的串連。 在連接埠 9999: 串連失敗
串連成功,跳轉到telnet畫面或者提示串連成功
開啟Telnet服務
如果使用telnet命令,提示不存在此命令,則需要開啟
1、安裝系統:依次點擊“開始”→“控制台”→“程式”,“在程式和功能”找到並點擊“開啟或關閉Windows功能”進入Windows 功能設定對話方塊。找到並勾選“Telnet用戶端”和“Telnet伺服器”,最後“確定”稍等片刻即可完成安裝。
2、啟動服務:在Windows 7系統中“開始”→“運行”,輸入servcies.msc開啟服務管理員。找到並雙擊Telnet服務項,設定其啟動方式為“手動”(更安全,只在需要的時候才啟用),最後在系統中“啟動”該服務“確定”退出即可。
三、檢查Windows連接埠號碼是否被佔用情況,並開啟關閉連接埠
Windows平台
在windows命令列視窗下執行: netstat -ano
我們可以知道某一連接埠被那個進程(對應PID)佔用;
然後我們可以開啟工作管理員;查看某一PID對應的進程名;
如果PID沒有顯示,菜單》查看》選擇列》選中PID即可;
得知進程後,我們可以將進程殺掉;修改其使用的連接埠。
繼續執行下面命令:
netstat -aon|findstr "80"TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 200
看到了嗎,連接埠被進程號為2016的進程佔用,繼續執行下面命令:
tasklist|findstr "200"skype.exe 200 Console 0 16,064 K
很清楚吧,skype.exe佔用了你的連接埠
netstat 命令
命令格式:
NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a 顯示所有串連和監聽連接埠。
-b 顯示包含於建立每個串連或監聽連接埠的可動作項目。在某些情況下已知可動作項目擁有多個獨立組件,並且在這些情況下包含於建立串連或監聽連接埠的組件序列被顯示。這種情況下,可動作項目名在底部的 [] 中,頂部是其調用的組件,等等,直到 TCP/IP 部分。注意此選項可能需要很長時間,如果沒有足夠許可權可能失敗。
-e 顯示乙太網路統計資訊。此選項可以與 -s選項組合使用。
-n 以數字形式顯示地址和連接埠號碼。
-o 顯示與每個串連相關的所屬進程 ID。
-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 選項用於指定預設情況的子集。
-v 與 -b 選項一起使用時將顯示包含於為所有可動作項目建立串連或監聽連接埠的組件。
interval 重新顯示選定統計資訊,每次顯示之間暫停時間間隔(以秒計)。按 CTRL+C 停止重新顯示統計資訊。如果省略,netstat 顯示當前配置資訊(只顯示一次)