全部产品
Search
文档中心

:SSH启用UseDNS导致SSH登录或数据传输速度变慢

更新时间:May 10, 2022

免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

在Linux实例中,通过外网使用SSH服务登录或数据传输时,速度很慢,即使是使用内网登录或数据传输也很慢。

问题原因

该问题可能是由于SSH服务启用了UseDNS特性所致。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  1. 登录Linux实例,关于如何登录Linux实例,请参考使用管理终端连接Linux实例
  2. 执行如下命令,查看/etc/ssh/sshd_config文件。
    cat /etc/ssh/sshd_config
    确认输出信息包含类似如下内容。
    UseDNS yes
  3. 由于需要修改相关策略配置,建议先进行文件备份。
  4. 使用vi等编辑器,删除策略配置,也可以注释策略配置,在策略配置前添加 #,如下所示。
    # UseDNS no
  5. 执行如下命令,重启SSH服务使配置生效。
    service sshd restart

更多信息

  • UseDNS特性是SSH服务的安全增强特性,默认未开启。开启后,服务端会先根据客户端IP进行DNS PTR反向查询,得到客户端主机名。再根据得到的客户端主机名进行DNS正向A记录查询,最后比对得到的IP与原始IP是否一致,用以防止客户端欺骗。
  • 通常情况下,客户端使用的都是动态IP,没有相应的PTR记录。所以,该特性开启后,不仅无法用于信息比对,反而由于相关查询操作增加了操作延迟,最终导致客户端连接速度变慢。
  • 如果还存在问题,可以参阅通过SSH无法远程登录Linux实例的排查指引,进一步排查分析。

适用于

  • 云服务器ECS