首页 / 新闻资讯 / 常见问题

SSH 时快时慢:DNS 反解拖的祸

2026-07-27分类:常见问题顺云技术组

## 症状现象

SSH 登录有时秒进,有时卡在密码输入前十几秒甚至更久,输完密码后又立刻顺畅。应用一切正常,网络测试也没有异常,唯独登录体验时好时坏。这种卡顿发生在认证之前,与密码对错无关。

## 定位过程

卡顿位置是判断关键:卡在输入密码提示出现之前,说明慢在连接建立的附加环节。sshd 默认会尝试对客户端 IP 做反向解析,把地址翻译成主机名用于日志记录;反解依赖的 DNS 服务不可达或响应慢时,sshd 要等到解析超时才继续,每次超时几十秒,这正是时快时慢的原因:解析链路通畅就快,丢包就慢。客户端侧的协商延迟问题同理,验证方法是带上详细参数连接,观察卡在哪个阶段。

ssh -v user@192.168.10.20
grep -i dns /var/log/secure

## 解决方法

服务端关闭两个不必要的环节:一是 UseDNS 设为 no,sshd 不再对客户端做反解;二是关闭 GSSAPI 认证尝试,减少协商回合。改完重启 sshd,保留现有会话不断开,新开会话验证。

UseDNS no
GSSAPIAuthentication no

客户端侧同样受益的改法是固定连接参数与复用会话,多次登录共用一条连接,协商只发生一次。

## 预防建议

新机器初始化模板里直接带上这两项配置,顺云云服务器批量部署时用镜像市场固化基础配置,避免逐台踩同一个坑。涉及日志可读性的需求,用客户端配置的别名注释替代服务端反解,两全其美。

同类问题的另一个来源是客户端侧的认证链路:逐个尝试多种认证方式,每次失败都要一轮往返。把客户端配置收紧到明确的方式,例如指定只用密钥,连接立刻干脆。跳板链路多级的场景,逐级排查各级的延迟,命令行的详细模式能标出每级耗时。

顺带把登录体验的整体优化列一下:会话复用让第二次连接近乎瞬开;控制连接保活参数防止空闲被踢;别名配置把常用跳板参数固化,敲两个字母替代一长串参数。这些小习惯叠加起来,日常操作的感受完全是两个世界。

常见问题