用telnet程式連接配接tcp服務端判斷服務及網絡狀态.
由于工作中有一次判斷錯了.檢討一下.
今天我就想把能想到的情況都總結一下.可能會有遺漏.
測試環境: linux帶的telnet程式. 不同的用戶端程式的提示是不同的, 容易判斷失誤.
情況1:
連接配接逾時
現像: 連接配接時間非常長.隻發出了tcp連接配接的第一個包.并重試了幾次.
原因:
1.資料包被過濾掉.
2.無主機應答資料.
3.最末級路由的arp設定錯誤.
結果: telnet程式提示連接配接逾時.
#telnet 1.1.1.1 22
Trying 1.1.1.1…
telnet: Unable to connect to remote host: Connection timed out
情況2:
現像: 連接配接時間可能很短. 也可能經過不長時間得到出錯提示.
原因:
1.telnet用戶端發出的資料包之後.接到了三層裝置反回的icmp錯誤資訊.
2.防火牆傳回了icmp錯誤類型的資料包.
3.中間存在幹擾裝置向用戶端發送了icmp資料包.(更多的應該是發tcp rst吧.)
結果: 作業系統直接關閉了tcp連接配接. telnet程式提示連接配接出錯.
telnet 2.2.2.2 22
Trying 2.2.2.2…
telnet: Unable to connect to remote host: Network is unreachable
telnet: Unable to connect to remote host: No route to host
也許ttl耗盡等icmp出錯,也可以出現相同效果.
情況3:
現像: 連接配接時間非常短.直接提示拒絕連接配接.
原因:
1.對端主機端口未處理LISTEN狀态.主機發送tcp rst到用戶端.
2.中間存在幹擾裝置向用戶端發送了tcp rst到用戶端.
結果: 連一下馬上得到拒絕的結果.
telnet 3.3.3.3 22
Trying 3.3.3.3…
telnet: Unable to connect to remote host: Connection refused
情況4:
現像: 正常建立tcp連接配接.可以繼續通信.之後的現像就得看服務端程式是細節了.
#telnet 127.0.0.1 22
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.