故障排查:是什麼導致了伺服器埠telnet失敗?
telnet命令的主要作用是與目標埠進行TCP連線(即完成TCP三次握手)。
當服務端啟動後,但是telnet其監聽的埠,卻失敗了。或者,當服務端執行了一段時間後,突然其監聽的埠telnet不通了。當類似這樣的telnet失敗的情況出現時,都可以按照如下方面進行排查:
1.觀察一下服務端程式的CPU和記憶體是否有異常。
比如,當CPU持續在100%時,就有可能導致來自客戶端的TCP連線請求被丟棄或無暇處理。
2.埠監聽器是否執行正常?
如果服務端是基於ESFramework開發的,則可以通過IRapidServerEngine的Advanced屬性的GetPortListenerState方法來獲取埠監聽器的狀態,該方法返回一個PortListenerState物件,其包含3個屬性:
(1)IsMaxConnection:是否達到了最大連線數的限制。
(2)IsListening:是否正在監聽埠。如果未授權,或達到了最大連線數限制,則將會停止監聽埠。
(3)LastDetectTime:最後一次檢測TCP連線佇列(已完成OS底層的三次握手,但尚未被ESFramework提取的TCP連線存放於該佇列中)的時間。
如果上述兩點都正常,則接下來,需要專業的運維人員或網管人當員參與進來協助排查。
3.在當前伺服器上執行telnet命令,看能否連線成功?
如果能連線成功,至少表明本機的TCP握手請求是能正常地被接收和處理的。
4.在伺服器上執行netstat命令
netstat是一個非常有用的檢視埠狀態的命令,執行netstat命令後,請注意檢視以下資訊:
(1)目標埠是否處於監聽狀態?
(2)目標埠上是否存在已成功建立的TCP連線(ESTABLISHED)?其數量是多少?
(3)是否存在半開連線(SYN_RECV)?其數量是多少?
(4)是否存在等待關閉的連線(TIME_WAIT)?其數量是多少?
這裡,最有可能的原因是半開連線數達到最大限制,導致windows系統丟棄後續的TCP連線請求。
5.TCP三次握手是否正常?
對於一些奇怪現象的跟蹤與分析,資料抓包工具是不可缺少的。
在伺服器上將抓包工具執行起來,然後在其他的電腦上telnet該伺服器的目標埠,通過抓包工具觀察目標埠上TCP三次握手的過程是否正常:
(1)目標埠是否收到了來自客戶端的SYN請求?
(2)目標埠有回覆SYN_ACK給客戶端?
(3)目標埠有收到來自客戶端的第三次握手?
只有當TCP三次握手順利完成後,windows底層才會將建立好的TCP連線放入佇列中,提交給上層的應用程式。
6.伺服器網路拓撲結構、防火牆、路由器、網路安全監控等相關軟硬體
在抓包分析的同時,結合伺服器的網路拓撲介面進行考慮是很有必要的。很可能來自客戶端的三次握手請求被防火牆、路由器、或某些網路完全監控的相關軟硬體給擋住了。
此時,需要專業的運維人員或網管人員參與進來,協助排查問題,比如:
(1)在伺服器上執行netstat命令,檢視目標埠的相關狀態資訊。
(2)在伺服器上執行抓包工具,監測目標埠上是否有資料從客戶端過來。
(3)分析伺服器的網路拓撲結構,並以伺服器為中心,依次向外檢查防火牆、路由器、網路安全監控等相關軟硬體等的設定,並進行鍼對性的排查測試。
經過以上的排查分析,應該都可以找到問題的根源所在,如果還是沒有結果,可以給我留言,我們一起討論下啊。
相關文章
- 故障排查:是什麼 導致了伺服器埠telnet失敗?伺服器
- 故障排查:是什麼 導致了客戶端批量心跳超時掉線客戶端
- 故障排查:是什麼導致了客戶端批量心跳超時掉線(轉)客戶端
- 故障分析 | DDL 導致的 Xtrabackup 備份失敗
- telnet23埠連線失敗怎麼處理win10_win10系統telnet在埠23連線失敗解決方法Win10
- 由於網路卡故障導致DATAGUARD傳輸檔案失敗
- 伺服器不同的故障導致資料丟失都怎麼解決的伺服器
- 操作都失敗,是什麼原因啊
- 雲伺服器顯示異常登入失敗是什麼原因伺服器
- 從巡檢備份失敗排查解決資料庫故障資料庫
- 為什麼RPA專案失敗了呢?
- Filestream/Windows Share導致Alwayson Failover失敗WindowsAI
- 伺服器的路由故障怎麼排查伺服器路由
- 阿里失敗的最大原因是什麼?阿里
- 【Mysql】是什麼導致MySQL資料庫伺服器磁碟IO高?MySql資料庫伺服器
- 源設定導致Docker映象構建失敗Docker
- 獲取導致匯入失敗的資料
- stream pool設定過小導致impdp失敗
- selinux導致sqlplus登入失敗LinuxSQL
- mysql資料庫連線失敗是什麼原因MySql資料庫
- springboot衝突導致的發版失敗Spring Boot
- Docker 導致阿里雲 ECS 內網互通失敗Docker阿里內網
- sock鎖檔案導致的MySQL啟動失敗MySql
- 獲取導致匯入失敗的資料(五)
- 獲取導致匯入失敗的資料(四)
- 獲取導致匯入失敗的資料(三)
- 獲取導致匯入失敗的資料(二)
- 糟糕的範圍管理導致專案失敗(轉)
- 埠號是什麼?
- 代理埠是什麼?
- DNS解析失敗了怎麼辦DNS
- 合成遊戲是什麼模式,導致它這麼火爆呢遊戲模式
- 電腦黑屏怎麼辦 顯示卡故障導致黑屏故障分析
- 為什麼大多數資料分析都失敗了?(2)
- MongoDB例項重啟失敗探究(大事務Redo導致)MongoDB
- 迴圈引用導致的json序列化失敗JSON
- 誤操作經歷,truncate導致閃回查詢失敗
- ROSE HA切換節點導致DG失敗、恢復ROS