前提: 全部是局域网内机器,客户端( 192.168.2.X ),服务器 192.168.2.100 。
背景: 不知道啥原因,客户端访问服务器非常慢,ssh 、http 等连接时间超过 20 秒,连上之后操作都正常没有啥影响,主要是连接这个动作需要 20 秒以上。
后来有人告诉我在服务器上把客户端的 ip 配置在 hosts 里面,果然秒连。虽然问题解决了,但是不知其中的原理,想请教大神指点,谢谢!
注意:是在服务器 hosts 里面加客户端 IP ,不是在客户端 hosts 加服务器 IP 。如**192.168.2.9 xxxxx
**,那 192.168.2.9 这个客户端访问服务器秒连,其他没加的还是 20 秒以上。
也可以讨论讨论有哪些情况会出现连接服务器超过 20 秒以上的?局域网内 TTL=63 小于 1ms ,可以排除网络不好的情况
1
billlee 2022-06-08 16:18:12 +08:00 via Android 1
服务器在对客户端 ip 做了 dns 反查,openssh 一般是开启了 Kerberos 相关的认证配置会导致这个问题,http 不知道你用的是什么实现,估计也是类似的问题
|
2
hdp5252 2022-06-08 16:20:50 +08:00 via Android
dns 问题
有 dns 服务器吗? |
4
billlee 2022-06-08 16:36:39 +08:00 via Android
@xliao 一般不是去改 Kerberos 的配置吧。如果不使用 kerberos, 可以在 sshd_config 里关掉 UseDNS 和 GSSAPIAuthentication. 如果用 kerberos, 那应该配套有能反查的 DNS 服务器
|
5
xliao OP @billlee 明白你的意思了。经查,sshd_config 里面 Kerberos options 没开启,GASSAPI options 开启了 GSSAPIAuthentication ,注释 GSSAPIxxx 后重启 sshd 没效果
|
6
xliao OP @xliao 感谢指点!现在应该是从根上解决问题了:
在 sshd_config 里 设置 UseDNS yes ( ssh 缺省情况下 UseDNS 的值是 yes ,所以要显式的指定该值为 no ) GSSAPIAuthentication no 重启 sshd ,连接速度上去了。 |
7
xliao OP Sorry #6 写错了,纠正一下。sshd_config 里配置 UseDNS no 。
|