服务公告
SSH 时快时慢:DNS 反解拖的祸
发布时间:2026-07-27 10:34
## 症状现象 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 ``` 客户端侧同样受益的改法是固定连接参数与复用会话,多次登录共用一条连接,协商只发生一次。 ## 预防建议 新机器初始化模板里直接带上这两项配置,顺云云服务器批量部署时用镜像市场固化基础配置,避免逐台踩同一个坑。涉及日志可读性的需求,用客户端配置的别名注释替代服务端反解,两全其美。 同类问题的另一个来源是客户端侧的认证链路:逐个尝试多种认证方式,每次失败都要一轮往返。把客户端配置收紧到明确的方式,例如指定只用密钥,连接立刻干脆。跳板链路多级的场景,逐级排查各级的延迟,命令行的详细模式能标出每级耗时。 顺带把登录体验的整体优化列一下:会话复用让第二次连接近乎瞬开;控制连接保活参数防止空闲被踢;别名配置把常用跳板参数固化,敲两个字母替代一长串参数。这些小习惯叠加起来,日常操作的感受完全是两个世界。上一篇: 服务器托管的机房等级怎么看
下一篇: 多线路接入说明:电信联通移动三网访问优化