Linux实例中,SSH登录或数据传输速度都很慢怎么办?

本文介绍Linux系统的ECS实例中,SSH登录或数据传输速度都很慢的问题原因和解决方案。

问题现象

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

问题原因

该问题可能是ECS实例中,SSH服务配置文件/etc/ssh/sshd_config中启用了UseDNS特性导致。

    说明

    UseDNS特性是SSH服务的安全增强特性,默认未开启。开启后,服务端会先根据客户端IP进行DNS PTR反向查询,得到客户端主机名。再根据得到的客户端主机名进行DNS正向A记录查询,最后比对得到的IP与原始IP是否一致,用于防止客户端欺骗。

    通常情况下,客户端使用的是动态IP,没有相应的PTR记录。所以,该特性开启后,不仅无法用于信息比对,反而由于相关查询操作增加了操作延迟,最终导致客户端连接速度变慢。

解决方案

  1. 登录Linux实例。

    具体操作,请参见连接方式概述

  2. 执行如下命令,查看sshd_config文件。

    cat /etc/ssh/sshd_config

    系统显示类似如下,表示开启了UseDNS特性。

    UseDNS yes
  3. 修改SSH服务配置文件。

    1. 打开SSH配置文件。

      vi /etc/ssh/sshd_config
    2. 根据业务需要,在该行配置前加#注释掉该配置或将yes修改为no禁用UseDNS特性。

      # UseDNS no
    3. 按Esc键,输入:wq保存修改。

    4. 执行如下命令,重启SSH服务。

      systemctl restart sshd.service