本文介紹Linux系統的ECS執行個體中,SSH登入或資料轉送速度都很慢的問題原因和解決方案。
問題現象
在Linux系統的ECS執行個體中,通過外網或內網使用SSH服務登入或資料轉送時,速度很慢。
問題原因
該問題可能是ECS執行個體中,SSH服務組態檔/etc/ssh/sshd_config中啟用了UseDNS特性導致。
說明
UseDNS特性是SSH服務的安全增強特性,預設未開啟。開啟後,服務端會先根據用戶端IP進行DNS PTR反向查詢,得到用戶端主機名稱。再根據得到的用戶端主機名稱進行DNS正向A記錄查詢,最後比對得到的IP與原始IP是否一致,用於防止用戶端欺騙。
通常情況下,用戶端使用的是動態IP,沒有相應的PTR記錄。所以,該特性開啟後,不僅無法用於資訊比對,反而由於相關查詢操作增加了操作延遲,最終導致用戶端連線速度變慢。
解決方案
登入Linux執行個體。
具體操作,請參見串連方式概述。
執行如下命令,查看sshd_config檔案。
cat /etc/ssh/sshd_config系統顯示類似如下,表示開啟了UseDNS特性。
UseDNS yes修改SSH服務組態檔。
開啟SSH設定檔。
vi /etc/ssh/sshd_config根據業務需要,在該行配置前加
#注釋掉該配置或將yes修改為no禁用UseDNS特性。# UseDNS no按Esc鍵,輸入
:wq儲存修改。執行如下命令,重啟SSH服務。
systemctl restart sshd.service