ntpq 命令返回“timed out, nothing received”的排查方法

简介: 开启Ipv6网络,ecs 执行ntpq 查询超时的排查过程

问题现象

多台ecs实例机器都能通过ntpq -p命令查看时间同步情况,只有其中一个实例使用ntpq -p命令的时候出错:

localhost: timed out, nothing received

***Request timed out

aeb65a4b756fd466454e2d10a09eeb5bebf0f4d8

排查过程

1.分析对比了正常和非正常显示的主机中/etc/ntp.conf的配置文件,结果相同,排除ntp命令本身以及配置的问题

2.直接通过strace  ntpq -p 查看命令执行过程如下

d079b650de03b270feb0375bd9c427f97379830a

结果显示,AF_INET6 即IPv6 地址向外发送sendto数据超时
推测这台主机有启用Ipv6 ,默认先走的ipv6地址

验证过程

ntpq -p 如果不指定地址的话,走的是默认ntp server

1.手动指定地址,正常显示

2. ntp -4p 即指定通过ipv4 地址获取返回值,正常显示

3.ntpq  -6p  指定通过ipv6 地址获取返回值,显示和ntpq  -p 命令返回“timed out, nothing received”的结果一致
d90ef6d578f3665e17a3b319c82534ae45756fa4


通过分析对比测试
因为开启了Ipv6 ,默认ntpq 先走Ipv6的通道,而ECS  linux 默认无法直接访问ipv6地址,因此会访问超时


解决方案

关闭Ipv6 后,再重新执行ntpq -p 显示正常

临时关闭开启Ipv6的方法如下

interface-name 为eth0/eth1


 sh -c 'echo 1 > /proc/sys/net/ipv6/conf/<interface-name>/disable_ipv6'   #关闭  
 sh -c 'echo 1 > /proc/sys/net/ipv6/conf/<interface-name>/disable_ipv6'   #开启
或者关闭所有接口(包括回环接口)的Ipv6 地址
 sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'

永久关闭ipv6

/etc/sysctl.conf  中添加如下参数

# 禁用整个系统所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一个指定接口的IPv6(例如:eth0, eth1)
net.ipv6.conf.eth1.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1





目录
相关文章
接口返回aop.unknow-error,系统繁忙
创建门店返回aop.unknow-error,大多数是因为传入的门店详细地址、店铺经纬度、省市区号指向的不是同一个地点而造成的,出现此类问题时,ISV需要首先核对上述地址是否指向相同地方,经纬度是否填反,是否没有使用高德坐标系,省市区号是否不是国标,是否填错。
1254 0
|
消息中间件 网络架构
OpenStack报错:MessagingTimeout: Timed out waiting for a reply to message ID
OpenStack报错:MessagingTimeout: Timed out waiting for a reply to message ID
1447 0
|
网络协议
排错-tcpreplay回放错误:send() [218] Message too long (errno = 90)
排错-tcpreplay回放错误:send() [218] Message too long (errno = 90)
278 0
|
NoSQL Java Redis
记录Redis操作的异常QueryTimeoutException & RedisCommandTimeoutException: Command timed out after 1 min
记录Redis操作的异常QueryTimeoutException & RedisCommandTimeoutException: Command timed out after 1 min
4038 0
ssh2 Connection .connect()方法抛出连接过早关闭异常
ssh2 Connection .connect()方法抛出连接过早关闭异常
ssh2 Connection .connect()方法抛出连接过早关闭异常
|
数据库 NoSQL MongoDB
Mongodb中经常出现的错误(汇总)child process failed, exited with error number
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.
1450 0
|
安全 Java 容器
简述快速失败(fail-fast)和安全失败(fail-safe)?
快速失败(fail-fast)和安全失败(fail-safe)
187 0
|
Kubernetes NoSQL 网络协议
连接池你用对了吗?一次Unexpected end of stream异常的排查
# 能收获什么? 1. 更加了解TCP协议 2. Redis与客户端关闭连接的机制 3. 基于Apache Common连接池的参数调优 4. Linux网络抓包
1744 0
连接池你用对了吗?一次Unexpected end of stream异常的排查
巧用Response.Write(message)中止异常
public void ResponseInfo(string message) { HttpContext.Current.Response.Clear(); HttpContext.
1057 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等