检测ntp服务是否安装
Ubuntu上的安装命令
sudo apt updata
sudo apt install ntp
CentOS系统上的安装命令
sudo yum install ntp
配置ntp服务器:
打开ntp配置文件
sudo vi /etc/ntp.conf #sudo是用管理员打开ntp配置文件
配置可以读取本服务器时间并同步的客户端
#允许192.168.1.0这个网段同步时间,子网掩码是255.255.255.0
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#允许所有网段同步时间
restrict default kod nomodify notrap nopeer noquery #允许ipv4类型访问
restrict -6 default kod nomodify notrap nopeer noquery #允许ipv6类型访问
配置本服务器的时间源,向其获取时间:
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst
中间的x.pool.ntp.org可根据需要修改,也可使用#号注释掉其他,只留自己需要的一个ntp服务:
如sever 192.168.1.1 iburst
iburst是为了在启动ntp时快速同步时间,也可不加。
配置本地时钟作为参考时间:
server 127.127.1.0 #服务器本地时间
fuge 127.127.1.0 stratum 10 #设置为第10层级,层级数越大,优先级越低
启动ntp服务:
sudo systemctl start ntpd #启动ntp服务
sudo systemctl enable ntpd #设置为开机自启动
查看ntp服务状态
ntp -p #查询ntp服务器状态
结果可能如下:
remote refid st t when poll reach delay offset jitter
==============================================================================
*time.example.com .GPS. 1 u 352 1024 377 20.34 -0.016 0.045
+server.example.org .PPS. 1 u 17m 1024 377 38.78 0.039 0.031
一般带有*号就说明与上级时间源同步正常。
一般在启动ntp服务过几分钟后检测状态。刚一启动可能还没同步完成。
- remote:远程服务器的地址或主机名。
- refid:参考时钟ID,通常是另一个NTP服务器或原子钟等的标识。
- st:Stratum层级,表示时间源的准确度。
- t:类型(u表示unicast,m表示multicast,l表示local)。
- when:自上次收到响应的时间(秒)。
- poll:当前的轮询间隔,即多久后进行下一次同步,通常会随网络或时间稳定性变化(以秒为单位)。
- reach:一个八进制的“reachability register”,表示最近8次尝试同步的结果(377表示所有尝试都成功)。
- delay:到服务器的网络往返时间(以毫秒为单位)。
- offset:本地时间与服务器时间的差异(以毫秒为单位)。
- jitter:时间测量的抖动(以毫秒为单位),表示时间测量的一致性。
也可使用以下代码查看ntp运行详情:
sudo systemctl status ntpd
通常显示界面如下:
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2023-10-09 10:30:45 UTC; 2h 45min ago
Main PID: 1234 (ntpd)
Tasks: 1 (limit: 4915)
Memory: 2.3M
CGroup: /system.slice/ntpd.service
└─1234 /usr/sbin/ntpd -u ntp:ntp -g
Oct 09 10:30:45 servername systemd[1]: Starting Network Time Service...
Oct 09 10:30:45 servername ntpd[1234]: ntpd 4.2.8p15@1.3728-o Thu Sep 20 16:49:08 UTC 2018 (1): Starting
Oct 09 10:30:45 servername systemd[1]: Started Network Time Service.
Active:为running表示运行正常,如出现变红字体说明存在错误,可使用以下展开查看错误提示
sudo systemctl status ntpd -l
配置防火墙:
防火墙需要允许ntp协议(123端口 UDP)的流量进出
对于iptables类型的配置命令:
sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
对于firewalld类型的配置命令:
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload
配置ntp客户端:
安装ntp服务:查看文章开头
打开ntp配置文件
sudo vi /etc/ntp.conf #sudo是用管理员打开ntp配置文件
配置时间源服务器,如向IP地址为192.168.1.1的ntp服务器获取时间:
#server 0.pool.ntp.org iburst
#server 1.pool.ntp.org iburst
#server 2.pool.ntp.org iburst
#server 3.pool.ntp.org iburst
server 192.168.1.1 iburst
注释掉其余时间源服务器,只留需要的那个。
启动ntp服务:
sudo systemctl start ntpd #启动ntp服务
sudo systemctl enable ntpd #设置为开机自启动
查看ntp服务状态:
ntp -p #查询ntp服务器状态
配置防火墙:
防火墙需要允许ntp协议(123端口 UDP)的流量进出
对于iptables类型的配置命令:
sudo iptables -A INPUT -p udp --dport 123 -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
对于firewalld类型的配置命令:
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload
注意:
部分情况下在配置完ntp服务并启动后,使用sudo systemctl status ntpd会出现端口占用等的红色报错导致Active不是running状态,这时可以考虑重启整台机器,开机后重启ntp服务可能会恢复正常。
sudo systemctl enable ntpd #重启ntp服务,每次修改配置后都需要使用重启服务来让配置生效