我在本地专用网络 192.168.100.0/24 上运行 Solaris 11 系统,并且我运行ping -s
以获得连续 ping。
从网关到我的服务器我得到
root@mygateway:~# ping -s 192.168.100.42
PING 192.168.100.42: 56 data bytes
64 bytes from 192.168.100.42: icmp_seq=0. time=0.311 ms
64 bytes from 192.168.100.42: icmp_seq=1. time=0.255 ms
64 bytes from 192.168.100.42: icmp_seq=2. time=0.271 ms
但是当我从我的服务器 ping 到网关时,ping 没有显示任何输出,但 3 分钟后,它输出过去 3 分钟的所有结果,并且时间都很高,并且继续以良好的时间工作。
root@myserver:~# date; ping -s 192.168.100.101
Tuesday, January 27, 2015 09:17:13 AM GMT
PING 192.168.100.101: 56 data bytes
64 bytes from 192.168.100.101: icmp_seq=0. time=0.467 ms
64 bytes from 192.168.100.101: icmp_seq=1. time=161000.816 ms
64 bytes from 192.168.100.101: icmp_seq=2. time=160001.061 ms
64 bytes from 192.168.100.101: icmp_seq=3. time=159001.295 ms
...
...
...
64 bytes from 192.168.100.101: icmp_seq=201. time=0.234 ms
64 bytes from 192.168.100.101: icmp_seq=202. time=0.254 ms
从我的服务器到我的网关的 ssh 工作正常。
感谢您的建议。
答案1
您看到的挂起很可能是由于名称解析失败造成的。
Solaris 默认会尝试反向 DNS 查找,将您正在 ping 的 IP 地址映射到一个有意义的名称。ping 输出不会打印到屏幕上,直到名称解析完成(或在本例中为超时)。一旦超时完成,您将看到到目前为止收到的所有响应几乎同时打印到屏幕上,但时间数据有误,并且每个后续 ping 都将照常进行。
解决这个问题最简单的方法是将“-n”开关添加到 ping 命令中,以防止它尝试查找,即
ping -s -n 192.168.100.101
您还可以考虑向您的 DNS 服务器添加反向区域(假设您有一个),或者如果是小型部署,则只需将主机名/IP 映射添加到您的主机文件中。
答案2
在@paulos 的帮助之后,我检查了我的服务器上的 DNS 设置。
cat /etc/resolv.conf
显示服务器上配置了 DNS 服务器,但自上次使用以来,这些服务器已关闭。因此,在这种情况下,解决方案是关闭 DNS 客户端
svcadm disable svc:/network/dns/client:default
然后重新启动。
一些参考链接: