文章目录
步骤1. 安装NTP2. 配置NTP3. 重启NTP服务4. 检查NTP服务状态5. 验证NTP同步`ntpq -p`检查本地ntp服务是否正常服务器不能连外网,如何配置? `ntpdate -q xxx`查询ntp服务器时间
步骤
1. 安装NTP
首先,在终端中更新你的包列表,然后安装NTP。输入下面的命令:
sudo apt updatesudo apt install ntp
2. 配置NTP
编辑NTP的配置文件,这里我们使用nano文本编辑器,但你也可以使用你喜欢的其他编辑器。
sudo nano /etc/ntp.conf
在此文件中,找到以"pool"开头的行,它们定义了NTP将与之同步的服务器。你可以保留默认值,或者根据需要添加/更改。例如:
pool 0.ubuntu.pool.ntp.org iburstpool 1.ubuntu.pool.ntp.org iburstpool 2.ubuntu.pool.ntp.org iburstpool 3.ubuntu.pool.ntp.org iburst
iburst
选项表示如果服务器没有响应,客户端将发送一串数据包。
3. 重启NTP服务
保存并关闭配置文件。然后重启NTP服务,以便更改生效。
sudo systemctl restart ntp
4. 检查NTP服务状态
你可以使用以下命令来检查NTP服务的状态。
sudo systemctl status ntp
如果一切正常,你将看到输出显示服务正在运行。
5. 验证NTP同步
ntpq -p
检查本地ntp服务是否正常
通过运行以下命令,可以查看服务器是否正在与其它NTP服务器进行同步。
ntpq -p
上述ntpq -p
命令的输出结果显示了NTP服务器正在与多个远程服务器同步。在’remote’列中,每行的开头字符有特殊含义:
从这个列表中可以看到,NTP服务器正常工作,并且已经选择了一个同步源(*dns2.synet.edu.)。此外,还有几个候选源(+36.110.235.196和+36.110.233.85)。
服务器不能连外网,如何配置?
如果希望让服务器只在内网中服务,需要检查/etc/ntp.conf
配置文件,确保只有内部时间源被列为server或pool,同时注释掉或删除其他外部服务器的配置。
例如,需要将/etc/ntp.conf
文件中的以下行注释掉或删除:
0.ubuntu.pool.ntp.org1.ubuntu.pool.ntp.org2.ubuntu.pool.ntp.org3.ubuntu.pool.ntp.org
并添加内部时间源,如果没有的话就使用本地的硬件时钟:
server 127.127.1.0fudge 127.127.1.0 stratum 10
然后重启NTP服务:
sudo systemctl restart ntp
再次运行ntpq -p
,应该只能看到内部服务器或者本地时钟。
ntpdate -q xxx
查询ntp服务器时间
我在我另一台主机192.168.1.140
上执行ntpdate -q 192.168.1.134
(134是我ntp服务器所在主机):
解释:
上述命令 ntpdate -q 192.168.1.134
的 -q
参数代表 query(查询),即查询并不真正设置系统时间。这里正在查询 IP 地址为 192.168.1.134 的 NTP 服务器的时间。
输出结果中的各部分意义如下:
server 192.168.1.134, stratum 2, offset 12.812453, delay 0.02638
:这一行显示了NTP服务器的信息。stratum 是指服务器在 NTP 层级中的位置,数字越小表示越接近参考源,其值为2。offset 是指您的系统时间相对于NTP服务器的时间差,以秒为单位,这里是 12.812453 秒。delay 是从您的系统到NTP服务器的往返延迟时间,这里是 0.02638 秒。
25 Sep 16:06:12 ntpdate[21820]: step time server 192.168.1.134 offset 12.812453 sec
:这一行是实际执行更新操作的日志记录。但由于 -q
参数只进行查询而不执行更新,所以这个操作并没有真变系统时间。如果没有 -q
参数,系统会试图根据这个 offset 调整系统时间。
这个命令和结果显示了你的机器与指定的 NTP 服务器相比,系统时间有约 12.812453 秒的差距。
(反正执行这个命令能获取到时间,说明我们部署没啥问题)