«

服务器SSH连接慢,DNS反向解析问题解决办法

时间:2026-10-20 07:27     作者:emer     分类: 无


前言

用 ssh 登录服务器,输入密码前要等好几秒甚至十几秒才出现密码提示,连上之后命令回显也卡。很多人以为是网络差,其实最常见原因是 sshd 在做 DNS 反向解析,解析超时才放行。本篇给出关闭反向解析的标准做法。

一、为什么会慢:DNS反向解析

客户端连上后,sshd 默认会把客户端 IP 反查成主机名(UseDNS yes)。如果服务器配的 DNS 解析不了这个公网 IP,就一直等到超时,表现为卡在登录前。

二、关闭sshd反向解析(核心)

编辑配置文件:

vi /etc/ssh/sshd_config

找到或新增两行:

UseDNS no
GSSAPIAuthentication no

三、重启sshd生效

systemctl restart sshd
# CentOS7 服务名是 sshd,部分发行版是 ssh
systemctl status sshd

注意:重启前保留一个已登录的会话,避免配置写错把自己锁在外面。

四、其他导致SSH慢的因素

  1. DNS配置本身慢:检查 /etc/resolv.conf,解析超时的nameserver会拖慢所有服务,可临时改成公共DNS测试;
  2. 反向解析写进hosts:不想关UseDNS也可在 /etc/hosts 里把常用客户端IP和主机名写死,跳过查询;
  3. GSSAPI:客户端侧也可加 -o GSSAPIAuthentication=no 临时绕过;
  4. 登录banner/反向PTR:某些版本还会尝试获取PTR记录,关UseDNS一并解决。

五、验证是否改善

# 客户端用详细模式看卡在哪一步
ssh -v root@服务器IP

观察卡在 Trying reverse mapping / GSSAPI 字样的位置,关掉对应项后应秒出密码提示。

常见坑

  1. 改完不重启sshd:配置不生效;
  2. 改错文件:是 sshd_config(服务端),不是 ssh_config(客户端);
  3. 重启时断开当前连接:保留旧会话再操作,防止锁死;
  4. 公司内网IP也被反查:UseDNS no 对所有连接生效,不影响安全登录。

总结

SSH登录慢九成是 UseDNS yes 反向解析超时,改 /etc/ssh/sshd_config 为 UseDNS no、GSSAPIAuthentication no,重启sshd即可秒连。

遇到问题加QQ23979811 协助处理

标签: SSH UseDNS sshd 连接慢 反向解析