时间同步(NTP)Timed out及解决方法:发现无法从NTP Server获取数据
阿里云服务器 | 腾讯云服务器 | VPS2EZ:老牌低调VPS | ZJI:香港日本美国独服 |
LOCVPS服务周到 | HostKvm低调KVM VPS | 傲游主机:优质VPS | 80VPS:老牌VPS主机 |
搬瓦工:CN2 GIA线路 | CloudCone:性价比高 | JustMySocks科学上网 | RackNerd:超级便宜 |
JustMySocks科学上网 | 好用的宝塔面板 | 购买搬瓦工VPS | 恒创:香港CN2服务器 |
背景
买了一台VPS,用于安放博客网站。安装Debian 11系统,使用systemd-timesyncd进行时间同步,即NTP服务。
目前这台VPS是在洛杉矶机房,三网接入AS9929,相比之前的MC机房,要快很多,丢包也几乎没有了,使用体验更加。IP属于 AfriNIC广播到本机上的,host使用 PVE 系统。
现象
在配置系统环境的时候,发现无法从NTP Server获取数据,报错如下:
systemd-timesyncd: Timed out waiting for reply from 162.159.200.1:123 (0.debian.pool.ntp.org).
已经做过的尝试
临时从 HE.NET 隧道 IPv6 ,目前走 IPv6 可以正常链接 NTP Server 进行时间同步。
IDC/host 明确没有对网络做过任何限制。
使用 golang 写了手动获取 NTP 数据的程序,在其他 VPS 上正常运行,在此 VPS 上无法正常工作,但能解析 NTPServer 对应的 IP 地址。
VPS跑了一个UDP Server,可以通过netcat连接,所以udp/123没有被禁。
使用 netcat 查看 udp 是否能连接外网,发现是正常的,如下。
nc -vz -u 8.8.8.8 443 ConnectiON to 8.8.8.8 443 port [udp/https] succeeded! nc -vz -u 0.hk.pool.ntp.org 123 Connection to 0.hk.pool.ntp.org (45.125.1.20) 123 port [udp/ntp] succeeded!
可能的原因
端口和UDP都是正常的,其他表现也没有问题。那么大概率是上游机房设置的防火墙里面,禁止了NTP协议流量的流入。这个是无法解决的问题。
解决方法
使用HE.NET的IPv6隧道广播了一个IPv6地址到VPS上(点击查看教程),在systemd-timesyncd的配置文件/etc/systemd/timesyncd.conf
中,将默认的空NTP地址修改为cloudflare的时间同步地址,即time.cloudflare.com
。
[Time] NTP=time.cloudflare.com #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org #RootDistanceMaxSec=5 #PollIntervalMinSec=32 #PollIntervalMaxSec=2048
这里改成cloudflare的服务是因为Debian默认的NTP服务地址(0.debian.pool.ntp.org)优先IPv4,会在尝试失败之后再使用IPv6链接。而cloudflare的是IPv6优先的,首次链接即可同步时间。
至此,并没有彻底解决这个问题,但是解决了时间同步失败的问题。
评论专区