1、问题背景
本地安装CentOS虚拟机,我们在局域网中连接很正常,使用也非常流畅;
但是,有些场景我们需要进行ssh远程连接服务器,使用防火墙设置对外端口映射端口,然后进行远程连接时,会遇到连接速度非常慢的问题,需要等待很久,严重影响我们的使用体验。
2、问题原因
连接速度慢一般是DNS解析导致的,使用ssh远程连接时,一般往往通过ip地址进行连接,这儿不需要使用DNS解析,但是默认情况下sshd设置为使用DNS解析,DNS解析过程会影响连接效率,所以我们就可以锁定问题的根源在于sshd的配置问题。
3、解决问题
修改配置文件sshd_config;
ssh的配置文件有sshd_config和ssh_config,修改时请注意区分sshd_config和ssh_config的区别;
文件路径和编辑脚本如下:vim /etc/ssh/sshd_config
在文档中找到关于UseDNS的设置项,并将UseDNS的值置为no,如下图示;
注意默认情况UseDNS是被注释掉的,默认值为yes。
修改后,重启sshd服务,配置信息即可生效;
重启指令为:systemctl restart sshd.service
然后使用ssh远程重新连接一下虚拟服务器,发现瞬间即可连接,连接速度慢的问题解决了。
总结:关于这个问题,网上的解释非常多,我怀疑过我防火墙配置的问题,也怀疑过虚拟机安装的原因,各种尝试都无效,但是设置DNS的配置后,问题就解决了,如果使用域名方式远程连接是否存在类似的问题我没有尝试,有条件的小伙伴可以尝试测试。