使用遠程shell工具SSH登錄Linux主機,輸完用戶名回車後就卡住,10秒後才提示輸入密碼。
使用wireshark抓全過程包
因爲ssh是加密了的協議,所以弄不懂裏面內容是正常的,但可以加以過濾。
過濾欄:SSH
找到時間間隔大概爲10s的NO.是x到y
過濾欄:frame.number>x&&frame.number<y
觀察得出此處是DNS查詢行爲
原因:Linux服務器在收到SSH訪問請求時,先會查詢該客戶端IP對應的PTR記錄。假如經過5s沒有收到回覆,就再次發一次查詢,若再過5s還是沒有收到回覆,就徹底放棄查詢。
解決方法:在DNS服務器上添加PTR記錄。再次測試,發現10s的卡頓木有了,很神奇484.
問題定位:ssh dns
在/etc/ssh/sshd_config中有相關配置:
cat /etc/ssh/sshd_config | grep -i usedns
#UseDNS yes
將其改爲no即可不去查詢ssh訪問者的PTR記錄