如何搭建自己的NTP服务器
1、首先使用组合键WIN + R 启动运行窗口,在打开的窗口中输入regedit,点击确定按钮。
2、输入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config,找到Config目录,双击Config目录下的AnnounceFlags。
3、把注册表项的值设定为5,点击确定按钮。
4、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\Services\W32Time\Time\NtpServer,再输入注册表路径,双击NtpServer下的Enabled文件。
5、把Enabled的值设定为1,点击确定按钮。
6、然后打开命令提示符窗口,输入net stop w32time停止服务,再输入net start w32time启动服务。
7、输入命令w32tm /stripchart /computer:127001,有时间回显说明配置成功了。
一、搭建时间服务器
1、在一台linux服务器安装ntp server
tar zxvf ntp-426targz
cd ntp-426
/configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make && make install
2、修改ntpconf配置文件
vi /etc/ntpconf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system
#restrict default kod nomodify notrap nopeer noquery
restrict default nomodify
(允许任何IP的客户机都可以进行时间同步,如果是只允许某个网段的客户机进行时间同步可以这样写
restrict 1058260 mask 2552552550 nomodify)
restrict -6 default kod nomodify notrap nopeer noquery
# Permit all access over the loopback interface This could
# be tightened as well, but to do so would effect some of
# the administrative functions
restrict 127001
restrict -6 ::1
# Hosts on local network are less restricted
#restrict 19216810 mask 2552552550 nomodify notrap
# Use public servers from the poolntporg project
# Please consider joining the pool
#server 0rhelpoolntporg(默认时间服务器)
#server 1rhelpoolntporg(默认时间服务器)
#server 2rhelpoolntporg(默认时间服务器)
server 101281425 (手工设置的时间服务器)
(如果是可以直连外网,可以使用LINUX默认提供的三组标准时间服务器,否则可以自己指定一个同步时间源)
#broadcast 1921681255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224011 key 42 # multicast server
#multicastclient 224011 # multicast client
#manycastserver 239255254254 # manycast server
#manycastclient 239255254254 key 42 # manycast client
# Undisciplined Local Clock This is a fake driver intended for backup
# and when no outside source of synchronized time is available
server 12712710 # local clock
fudge 12712710 stratum 10
3、以守护进程启动ntpd
#/etc/rcd/initd/ntpd -c /etc/ntpconf -p /tmp/ntpdpid
#/etc/rcd/initd/ntpd start
#ps -ef|grep ntpd
4、在ntp server上启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令进行同步时会产生no server suitable for synchronization found的错误。
下面命令可以知道何时ntp server完成了和自身同步的过程
在ntp server上使用命令:
# watch ntpq -p
注意LOCAL的这个就是与自身同步的ntp server。
注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒5=320秒的时间。
二、配置时间同步客户机
vi /var/spool/cron/root(或crontab -e)
增加一行,在每天的1点10分、9点10分、17点10分与时间同步服务器进行同步并写入BIOS
10 1 ,9,17 root /usr/sbin/ntpdate 101281425; /sbin/hwclock -w
如果同步不正常,可以加输出日志或看系统日志
输出日志的方法:
10 1 ,9,17 root /usr/sbin/ntpdate 101281425>>/tmp/1txt; /sbin/hwclock -w
在1txt中可查看时间同步时的输出结果。
或者看/var/mail/root系统日志
Subject: Cron <root@tyzssq8> /usr/sbin/ntpdate 101281425;/sbin/hwclock -w
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20121127103001076FF2090E@tyzssq8site>
Date: Tue, 27 Nov 2012 18:30:01 +0800 (CST)
27 Nov 18:29:59 ntpdate[6917]: step time server 101281425 offset -1361968 sec
可以看到同步成功了,如果未成功会报出错误。
三、无法同步的问题
检查ntp server主机的防火墙。可能是ntp server的防火墙屏蔽了upd 123端口。
可以用命令
#service iptables stop
为了避免Linux系统的主机,在长时间运行下所导致的时间偏差。因此我们需要对时间进行时间同步(synchronize)。我们一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Time Protocol)的简称,他是通过UDP协议,对时间进行同步的。
编辑NTP Server的主要配置文件为/etc/ntpconf ,如下:
配置含义:
配置完毕,重启NTP服务,使配置更改生效。
查看NTP服务和上级连通状态
内网其他设备作为NTP的客户端配置,相对就比较简单,而且所有设备的配置都相同。
首先需要安装NTP服务(与NTP-Server完全一样)。然后找其中一台配置/etc/ntpconf文件,配置完成验证通过后,拷贝到其他客户端机器,直接使用即可。
注释掉之前的上层服务,以下几行
添加本地的NTP服务器即可完成配置
可以用date命令查看时区
如果时区是EST需要改成CST
选择亚洲 /中国 /北京 /然后确认
改完后执行如下复制语句
使用
1721730100为你的NTP服务器的ip地址,显示adjust time server 1921681135 offset 0004882 sec
这里有可能出现同步失败,一般情况下原因都是本地的NTPD服务器还没有正常启动起来,一般需要几分钟时间后才能开始同步。
也有报错 no server suitable for synchronization found,这种问题由一下两种情况造成:
Server dropped: strata too high:
并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。
这种问题往往是由ntp服务启动后还没有和上层服务同步完成,可以等五分钟再次查看。
Server dropped: strata no data:
这种问题一般是因为访问不到NTP服务,需要检查NTP服务是否启动成功,或者是否是被防火墙拦截。
启动NTP_Client
启动后,查看同步情况
由于是内网,NTP服务很快会同步上,可以使用下面命令查看时间是否和服务器时间相同
本机客户端配置完成后,需要同步的客户端机器使用SCP拷贝/etc/ntpconf,命令如下,启动NTP服务即可。
Linux的NTP配置总结
NTP服务及时间同步问题
方法一
采用Windows、linux等操作系统自带的时间同步功能
对于Windows操作系统,自身已经集成了自动对时功能,在此仅以windows操作系统为例介绍一下。
双击系统托盘下方的时间在服务器地址栏输入NTP服务器的IP地址(1cnpoolntporg),然后点击“确定”按钮保存下来就行了。
方法二
修改注册表,提高时间同步精度
由于系统默认的时间同步间隔是7天,我们无法自由选择,使得这个功能在灵活性方面大打折扣。其实,我们也可以通过修改注册表来手动修改它的自动同步间隔以提高同步精度,以下以XP系统为例。
1 在“开始”菜单→“运行”项下输入“Regedit”进入注册表编辑器
2 展开[
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W32Time/TimeProviders/NtpClient
] 分支,并双击 SpecialPollInterval 键值,将对话框中的“基数栏”选择到“十进制”上
3
对话框中显示的数字正是自动对时的间隔(以秒为单位),比如默认的604800就是由7(天)×24(时)×60(分)×60(秒)计算来的。设定时间同步周期(建议设为900=15分钟或3600=1小时等周期值),填入对话框,点击确定保存关闭对话框。
4
在Parameters列表中,将NtpServer键值修改为NTP服务器的IP地址(1cnpoolntporg),然后点击“确定”按钮保存。
方法三,采用其他NTP客户端程序时间同步
可以在互联网上找到其他客户端程序实现电脑时间同步。
第一步,选择最好的NTP服务地址
具体命令为ntpdate -q IP地址或域名
广东地区NTP优选结果如下:
①time4cloudtencentcom
②server timeasiaapplecom
③server cnntporgcn
④server ntpaliyuncom
⑤server cnpoolntporg
检查BIOS主板时间的命令
hwclock -r
NTP服务启停命令
sudo systemctl start/stop ntpd
检查查看ntp服务器有无和上层ntp连通
ntpstat
查看ntp服务器与上层ntp的状态
ntpq -pn
===server选项格式===
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:
◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。
◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。
◆ prefer: 如果有多个server选项,具有该参数的服务器优先使用。
◆ mode: 指定数据报文mode字段的值。
◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。
◆ maxpoll: 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。
◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。
===同步硬件时钟===
ntp服务,默认只会同步系统时间。
如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,
在/etc/sysconfig/ntpd文件中,添加SYNC_HWCLOCK=yes这样,就可以让硬件时间与系统时间一起同步。
允许BIOS与系统时间同步,也可以通过hwclock -w 命令。
hwclock命令用来查询和设置硬件时钟。
hwclock -r 读取并打印硬件时钟
hwclock -s 将硬件时钟同步到系统时钟
hwclock -w 将系统时钟同步到硬件时钟
系统时钟与硬件时钟
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
参考文档:
Linux服务器NTP客户端配置——https://wwwcnblogscom/paul8339/p/10059364html
NTP服务、客户端配置详解——https://blog51ctocom/u_11392081/1784080
NTP(Network Time Protocol,网络时间协议)是基于RFC1305的协议,是一个跨越广域网或局域网的复杂的同步时间协议。一般情况下建议配置在路由器上,当然配置在其它设备上都是可以的。接下来我们根据下面的拓扑图来看一下在路由器上配置NTP服务器的方法以及交换机、windows服务器、Linux服务器如何设置NTP客户端。拓扑如下:
路由器NTPserver上配置如下:
R1>en
R1#conf t
Enter configuration commands, one per line End with CNTL/Z
R1(config)#hostname NTPserver
NTPserver(config)#no ip do lo
NTPserver(config)#line con 0
NTPserver(config-line)#exec-t 0 0
NTPserver(config-line)#logg syn
NTPserver(config-line)#exit
NTPserver(config)#int e0/1
NTPserver(config-if)#int e0/0
NTPserver(config-if)#exi
NTPserver(config)#int e0/0
NTPserver(config-if)#ip ad 19216811 2552552550
NTPserver(config-if)#no shut
NTPserver(config-if)#
Mar 1 00:02:39959: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
Mar 1 00:02:40959: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up
NTPserver(config-if)#clock time
NTPserver(config-if)#do wr
Building configuration
[OK]
NTPserver(config-if)#exit
NTPserver(config)#cloc
NTPserver(config)#clock time
NTPserver(config)#clock timezone peking +8
NTPserver(config)#
Mar 1 00:03:27019: %SYS-6-CLOCKUPDATE: System clock has been updated from 00:03:27 UTC Fri Mar 1 2002 to 08:03:27 peking Fri Mar 1 2002, configured from console by console
NTPserver(config)#exit
NTPserver#
Mar 1 00:04:02975: %SYS-5-CONFIG_I: Configured from console by console
NTPserver#cloc
NTPserver#clock set 12:02:20 6 Aug 2012
NTPserver#
Aug 6 04:02:20003: %SYS-6-CLOCKUPDATE: System clock has been updated from 08:04:45 peking Fri Mar 1 2002 to 12:02:20 peking Mon Aug 6 2012, configured from console by console
NTPserver#conf t
Enter configuration commands, one per line End with CNTL/Z
NTPserver(config)#ntp master
0条评论