linux系统如何设置时间同步?

linux系统如何设置时间同步?,第1张

可以使用ntpdate命令。ntpdate命令使用网络时间协议(NTP)设置日期和时间,通过轮询指定的确定正确时间的NTP服务器来设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准NTP时钟过滤器和选择算法来选择最好的样本。

命令格式:ntpdate 时间服务器

用法示例:$ ntpdate poolntporg

设置时间同步脚本,虽然以上已经同步了时间,但是由于计时精度的原因,时间的误差会增大。可以通过设置计划任务,每天0点同步一下。

打开crontab进行编辑:$ crontab -e

在crontab任务文件添加:0 0 root ntpate -s poolntporg

-s参数指定将日志输出到syslog,而不是标准输出。

一、搭建时间服务器

1、在一台linux服务器安装ntp server

2、修改ntpconf配置文件

vi /etc/ntpconf

restrict default nomodify

(允许任何IP的客户机都可以进行时间同步,如果是只允许某个网段的客户机进行时间同步可以这样写restrict 1058260 mask 2552552550 nomodify)

3、以守护进程启动ntpd

#/etc/rcd/initd/ntpd -c /etc/ntpconf -p /tmp/ntpdpid

#/etc/rcd/initd/ntpd start

二、配置时间同步客户机

ntpdate 101281425

hwclock -w

使用cron 定时同步

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

方法/步骤

1

在电脑桌面的右下角点击时间,弹出系统时间界面。在此界面左下角点击“更改日期和时间设置”,进入日期和时间界面。XP系统需要双击时间,Win7系统中直接左键单击即可。

2

在“日期和时间”属性界面,单击“Internet时间”,进入“Internet时间”选项卡。在“Internet时间”选项卡中,单击右侧的“更改设置”按钮,进入更改界面进行设置。

3

在“Internet时间设置”界面中,在“与Internet时间服务器同步”前面挑勾。之后在服务器中输入更新服务器的IP地址。在局域网中,IP地址为你需要同步的服务器IP地址。

4

启动时间同步服务。可以点击界面的“立即更新”启动时间同步服务。如果不启动时间同步服务,将无法与你设置的同步服务器进行时间更新。

5

在“Internet时间设置”选项界面中,如果时间同步服务已经成功启动,则在此界面会显示系统下一次同步时间。如果不显示,则需求手动启动时间同步服务,否则无法实现该功能。

6

在时间设置界面,同时可以显示两个时区。日期和时间-附加时钟,选择好时区后,在“显示此时钟”前面挑勾,既可以将此时钟在时间中显示。

一、选择服务器基准时钟,可选择内部硬件时钟和外部NTP授时服务器。 (首先要保证自己的时间准确)

A配置 Windows 时间服务以使用服务器内部硬件时钟

(1) 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。

(2) 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags

(3) 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。

(4) 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。

B配置 Windows 时间服务以使用外部时间源

(1) 指定时间源。为此,请按照下列步骤操作:

a 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer

b 在右窗格中,右键单击“NtpServer”,然后单击“修改”。

c 在“编辑值”的“数值数据”框中键入 Peers,然后单击“确定”。

注意:Peers 是一个占位符,应替换为您的计算机从中获取时间戳的对等端列表(以空格分隔)。列出的每个 DNS 名称都必须是唯一的。必须在每个 DNS 名称后面附加 ,0x1。如果不在每个 DNS 名称后面附加 ,0x1,则在下面步骤中所做的更改将不会生效。

(2) 选择轮询间隔。为此,请按照下列步骤操作:

a 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

\SpecialPollInterval

b 在右窗格中,右键单击“SpecialPollInterval”,然后单击“修改”。

c 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。

注意:TimeInSeconds 是一个占位符,应替换为您希望各次轮询之间的间隔秒数。建议值为 900(十进制)。该值将时间服务器配置为每隔 15 分钟轮询一次。

(3) 配置时间校准设置。为此,请按照下列步骤操作:

a 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

\MaxPosPhaseCorrection

b 在右窗格中,右键单击“MaxPosPhaseCorrection”,然后单击“修改”。

c 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。

d 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。

注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。

e 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\

MaxNegPhaseCorrection

f 在右窗格中,右键单击“MaxNegPhaseCorrection”,然后单击“修改”。

g 在“编辑 DWORD 值”的“基数”框中单击以选择“十进制”。

h 在“编辑 DWORD 值”的“数值数据”框中键入 TimeInSeconds,然后单击“确定”。

注意:TimeInSeconds 是一个占位符,应替换为适当的值,如 1 小时 (3600) 或 30 分钟 (1800)。您选择的值将因轮询间隔、网络状况和外部时间源而异。

二、配置NTP授时服务器

(1) 将服务器类型更改为 NTP。为此,请按照下列步骤操作:

a 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。

b 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type

c 在右窗格中,右键单击“Type”,然后单击“修改”。

d 在“编辑值”的“数值数据”框中键入 NTP,然后单击“确定”。

(2) 将 AnnounceFlags 设置为 5。为此,请按照下列步骤操作:

a 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags

b 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。

c 在“编辑 DWORD 值”的“数值数据”框中键入 5,然后单击“确定”。

(3) 启用 NTPServer。为此,请按照下列步骤操作:

a 找到并单击下面的注册表子项:

程序代码

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

b 在右窗格中,右键单击“Enabled”,然后单击“修改”。

c 在“编辑 DWORD 值”的“数值数据”框中键入 1,然后单击“确定”。

三、使配置即时生效

1 退出注册表编辑器。

2 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:

程序代码

net stop w32time && net start w32time

四、配置防火墙允许NTP访问

如果你需要在服务器所在区域外访问该服务器的NTP服务,需要在防火墙上添加允许:

程序代码

名称 端口 协议 方向

SNTP时间基准 123 UDP 入

五、相关注册表说明

注册表项 MaxPosPhaseCorrection

路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

注意: 该项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。(0xFFFFFFFF 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。

注册表项 MaxNegPhaseCorrection

路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

注意: 该项指定服务可进行的最大负时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将转而记录一个事件。(-1 是一种特殊情况,它表示总是校准时间。)域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000,即 15 小时。

注册表项 MaxPollInterval

路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

注意: 该项指定系统轮询间隔所允许的最大间隔(单位是对数表示的秒)。尽管系统必须根据预定的间隔进行轮询,但是提供程序可以根据请求拒绝生成示例。域成员的默认值是 10。独立客户端和服务器的默认值是 15。

注册表项 SpecialPollInterval

路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

注意: 该项指定手动对等端的特殊轮询间隔(以秒为单位)。当启用 SpecialInterval 0x1 标志时,W32Time 将使用此轮询间隔而非操作系统确定的轮询间隔。域成员的默认值是 3,600。独立客户端和服务器的默认值是 604,800。

注册表项 MaxAllowedPhaseOffset

路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

注意: 该项指定 W32Time 尝试使用时钟速率调整计算机时钟的最大偏移量(以秒为单位)。当偏移量大于该速率时,W32Time 将直接设置计算机时钟。域成员的默认值是 300。独立客户端和服务器的默认值是 1。

备注说明:

1、一般操作:

1)将时间服务器改成,授时中心地址(210。72。145。44)

net time /setsntp:2107214544

2)启动时间同步服务

sc start w32time

3)同步时间

w32tm /resync (实际上,大多数情况下,光作第三步即可。) 2、启动前提:

DOS启动Window Time服务: net stop w32time 、 net start w32time

要启动 Window Time 服务,必须先启动 Remote Access Connection Manager 服务。

WindowsXP时间服务器配置

1在注册表中将服务NTPServer的Enabled属性设置为1Type改为NTP。

2如果外部时间源获取时间将Config/AnnounceFlags设置为5

3将parameters\NtpServer地址改为外部时间源的IP地址或者DNS,在使用DNS是后面要加上”,0x1”多个地址之间用空格隔开。

4其他参数是可选的参数,可根据需要配置。

5重启w32time服务在命令行中,net stop w32time && net start

w32time就配置完成了。

6此外,要保证windows

防火墙是关闭的。或者启动防火墙时,在例外中添加C:\WINDOWS\system32\w32timedll端口号:123类型UDP。

经过以上六步服务器端就设置完成了。

WindowsXP客户端的配置

1将NtpServer地址设置为服务器的地址。

2服务类型改为NTP。

3SpecialPolInterval自动同步时间间隔根据需要配置比如15分钟轮询一次(设置为900,因为单位为秒)。

4将默认的时间服务器设置为服务器的地址, XP默认是微软的时间服务器timewindowscom。在注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\WINDOWS\CurrentVersion\DateTime\Servers

新建一个字符串值(名字3),输入服务器的IP地址。

并将默认值改为3这样在时期时间属性\Internet时间默认的时间同步服务器就成为我们设置的了。

一:NTP是网络时间同步协议,就是用来同步网络中各个计算机的时间的协议

二:NTP服务端配置

21、检查系统是否安装了NTP包(linux系统一般自带NTP42),没有安装我们直接使用yum命令在线安装: yum install ntp

22、NTP服务端配置文件编辑: vim /etc/ntpconf

结果:

# @3新增-权限配置restrict 12712710restrict 192168310 mask 2552552550 nomodify notrap# @3改动-注释掉上级时间服务器地址#server 0centospoolntporg iburst#server 1centospoolntporg iburst#server  2centospoolntporg iburst#server 3centospoolntporg iburst# @4新增-上级时间服务器server 12712710 # local clockfudge 12712710 stratum 10

23、启动NTP时间服务器:service ntpd start

24、设置NTP开机自动启动:chkconfig ntpd on

25、查看NTP是否正常运行:netstat -tlunp | grep ntp

26、配置防火墙过滤规则:/sbin/iptables -I INPUT -p udp --dport 123 -j ACCEPT

如何配置:/etc/sysconfig/iptables 文件内配置开放udp 123端口: -A INPUT -p udp --destination-port 123 -j ACCEPT

A服务端配置文件解释

①:设定NTP主机来源(其中prefer表示优先主机),19216831134是本地的NTP服务器,所以优先指定从该主机同步时间。

server 192168749 prefer

server 0rhelpoolntporg

server 1rhelpoolntporg

server 2rhelpoolntporg

server 3rhelpoolntporg

②:限制你允许的这些服务器的访问类型,在这个例子中的服务器是不容许修改运行时配置或查询您的Linux NTP服务器

restrict 19216800 mask 2552552550 notrust nomodify notrap

在上例中,掩码地址扩展为255,因此从19216801-1921680254的服务器都可以使用我们的NTP服务器来同步时间

#此时表示限制向从19216801-1921680254这些IP段的服务器提供NTP服务。

restrict 19216800 mask 2552552550 notrust nomodify notrap noquery

#设置默认策略为允许任何主机进行时间同步

restrict default ignore

三:NTP客户端配置

31、检查安装NTP服务有没有安装,未安装请自行安装

32、NTP客户端配置文件编辑: vim /etc/ntpconf

# @1新增-权限配置restrict 192168310 mask 2552552550 nomodify notrap# Use public servers from the poolntporg project# Please consider joining the pool (http://wwwpoolntporg/joinhtml)# 注释掉原来的实际服务器地址#server 0centospoolntporg iburst#server 1centospoolntporg iburst#server 2centospoolntporg iburst#server 3centospoolntporg iburst# @2新增-自己的时间服务器地址server 19216831223 prefer <==以这部主机为最优先#broadcast 1921681255 autokey # broadcast server#broadcastclient # broadcast client#broadcast 224011 autokey # multicast server#multicastclient 224011 # multicast client#manycastserver 239255254254 # manycast server#manycastclient 239255254254 autokey # manycast client

33、手动同步一次时间:/usr/sbin/ntpdate19216831134 (服务端主机IP,这里需要先关闭NTP服务哦)

34、启动NTP服务:service ntpd start

35、观察时间同步状况:ntpq -p

结果:

[root@localhost hct]# ntpq -p remote refid st t when poll reach delay offset jitter==============================================================================19216831134 LOCAL(0) 11 u 64 128 377 0202 73980 412834

⑥查看时间同步结果:ntpstat

[root@hct ~]# ntpstat

unsynchronised

polling server every 8 s

同步失败,同步也需要时间,需等待5-10分钟再次查询:

Every 20s: ntpstat Tue Jul 11 16:55:57 2017synchronised to NTP server (101011247) at stratum 12 time correct to within 605 ms polling server every 128 s

时间同步完成,date一下看是不是和服务器主机时间一致

B客户端配置文件详解

修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对

C系统时间与硬件时间同步

如果主从服务时间超过1000秒则不再进行同步了,这时候要手动同步,即:/usr/sbin/ntpdate命令,如果怕服务器时差会经常变动比较大可以再Linux中添加计划任务,例如:

10 5 root /usr/sbin/ntpdate 19216831223 && /sbin/hwclock -w

ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

拓展内容

ntpq -p各个选项相关信息

restrict 控制相关权限。

语法为: restrict IP地址 mask 子网掩码 参数

其中IP地址也可以是default ,default 就是指所有的IP

参数有以下几个:

ignore  :关闭所有的 NTP 联机服务

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网

noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器

notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

kod : 访问违规时发送 KoD 包。

restrict -6 表示IPV6地址的权限设置。

root@www ~]# vim /etc/ntpconf# 1 先处理权限方面的问题,包括放行上层伺服器以及开放区网用户来源:restrict default kod nomodify notrap nopeer noquery <==拒绝 IPv4 的用户restrict -6 default kod nomodify notrap nopeer noquery <==拒绝 IPv6 的用户restrict 22013015871 <==放行 tockstdtimegovtw 进入本 NTP 伺服器restrict 5912419683 <==放行 tickstdtimegovtw 进入本 NTP 伺服器restrict 5912419684 <==放行 timestdtimegovtw 进入本 NTP 伺服器restrict 127001 <==底下两个是预设值,放行本机来源restrict -6 ::1restrict 1921681000 mask 2552552550 nomodify <==放行区网来源# 2 设定主机来源,请先将原本的 [0|1|2]centospoolntporg 的设定注解掉:server 22013015871 prefer <==以这部主机为最优先server 5912419683server 5912419684# 3预设时间差异分析档案与暂不用到的 keys 等,不需要更动它:driftfile /var/lib/ntp/driftkeys /etc/ntp/keys

ntpd、ntpdate的区别

下面是网上关于ntpd与ntpdate区别的相关资料。如下所示所示:

使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

1、同时按下win+R组合键,调出运行窗口,输入“servicesmsc”,单击“确定”

2、打开的服务界面,往下面拉动

3、找到“windows time”选项

4、双击“windows time”选项,弹出的界面中,在启动类型中选择“自动”选项,单击确定

5、在电脑桌面上面双击控制面板

6、找到“时钟、语言和区域”选项

7、在打开的界面中,单击“日期和时间”选项

8、在弹出的界面中,单击“internet时间”选项

9、单击下方的“更改设置”选项

10、在打开的internet时间设置的界面中,勾选“与internet时间服务器同步”选项,单击后面的“立即更新”选项,单击“确定”

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux系统如何设置时间同步?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情