CentOS下部署NTP服务器

原文出处: http://viong.blog.51cto.com/844766/522799

安装NTP

wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.6p3.tar.gz
tar ntp-4.2.6p3.tar.gz
cd  ntp-4.2.6p3
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make 
make install

cp /usr/local/ntp/bin/* /usr/bin/

 

修改ntp.conf配置文件


首先先了解一下ntp.conf里面涉及到参数说明

关于权限设定部分; 权限的设定主要以 restrict 这个参数来设定
格式如下:
restrict IP地址 mask 子网掩码 参数; 其中 IP 可以是IP地址,也可以是 default ,default
就是指所有的IP参数有以下几个:

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

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

notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网
 
noquery :不提供客户端的时间查询

注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制
 
用server这个参数设定上级时间服务器

格式如下: server IP地址或域名 [prefer]
IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP
服务器主要以该部主机时间进行校准

driftfile格式如下:driftfile 文件名

在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内 注意: driftfile
后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。


vi /etc/ntp.conf

1.允许任何IP的客户机都可以进行时间同步

将“restrict default kod nomodify notrap nopeer noquery”这行修改成:

restrict default nomodify


2.只允许192.168.0.0网段的客户机进行时间同步

restrict 192.168.0.0 mask 255.255.0.0 nomodify


很奇怪的是安装完后发现没有ntp.conf,就只能手动添加,touch /etc/ntp.conf,复制以下

==============================================
restrict default nomodify notrap noquery

restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.0.0 nomodify

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org

server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys            /etc/ntp/keys 

================================================


让本服务器时间与time.nist.gov时间同步,使服务器为标准时间
[root@localhost ~]# ntpdate time.nist.gov


以守护进程启动ntpd

[root@localhost ~]#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid

[root@localhost ~]#netstat -nul |grep 123
udp        0      0 192.168.50.91:123           0.0.0.0:*                               
udp        0      0 127.0.0.1:123               0.0.0.0:*                               
udp        0      0 0.0.0.0:123                 0.0.0.0:*

[root@localhost ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 114.80.81.1     204.152.184.72   2 u    5   64    1   13.142  -287655   0.001
 218.75.4.130    216.218.192.202  2 u    4   64    1   15.109  -287655   0.001
*LOCAL(0)        .LOCL.          10 l    3   64    1    0.000    0.000   0.001


安全设置,开放192.168.0.0访问本机123端口
/sbin/iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24  --dport 123 -j ACCEPT

 


linux客户端设置NTP

目前 Linux 系统上面有两个时间,一个是 Linux 系统,另一个则是 BIOS 时间(真正的硬件记录的时间)!

我们可以使用 date 这个指令来手动修正目前主机的时间,date 这个指令仅修正 Linux 时间而已,所以需要以 hwclock 这个指令来将 BIOS 时间也更新才行

[root@test root]# date MMDDhhmmYYYY 
MM:月份 
DD:日期 
hh:小时 
mm:分钟 
YYYY:公元年

  
[root@test root]# hwclock [-rw]

-r:检视目前的 BIOS 时间 
-w:将目前 Linux 的时间写入 BIOS 当中!

[root@localhost ~]# date ; hwclock -r 
2011年 03月 23日 星期三 01:03:59 CST
2011年03月23日 星期三 03时05分00秒  -0.914570 seconds

#  date 与 hwclock -r 所显示的时间是『不一致的』! 
# 因为 Linux 时间与 BIOS 时间不一致所导致的一个问题! 
# 需要以 hwclock -w 来将 Linux 时间写入 BIOS

[root@localhost ~]# hwclock -w 
[root@localhost ~]# date ; hwclock -r 
2011年 03月 23日 星期三 01:03:59 CST
2011年03月23日 星期三 01时04分00秒  -0.814770 seconds


#自动同步服务器时钟
[root@localhost ~]# crontab -e
# 加入这一行: 

10 5 * * * root /usr/sbin/ntpdate 192.168.50.91;/sbin/hwclock -w

[root@localhost ~]# service crond restart


windows客户端设置NTP

直接在控制面板--日期和时间  修改

也可以下载以下软件修改
http://www.stdtime.gov.tw/chinese/exe/NTPClock.exe 

以下是网上复制过来当备用,因为在域环境下NTP脚本同步问题还是需要命令行

Windows Server 2003


3.1 命令介绍
Windows Server 2003下有关时间的命令有两个,net time和W32tm,下面对这两个命令的语法和参数加以说明。

3.1.1 NET TIME
net time命令使计算机的时钟与另一个计算机或域的时钟同步。如果在没有 /set 选项的情况下使用,则显示另一个计算机或域的时间。net time的语法为:

net time [\computername | /domain[:domainname] | /rtsdomain[:domainname]] [/set]

net time [\computername] [/querysntp] | [/setsntp[:ntp server list]]
 

参数说明:

l 无参数,显示被指派为本地计算机的Windows服务器域时间服务器的当前时间。

l \computername,指定要检查或与之同步的服务器的名称。

l /domain[:domainname],指定要同步时间的域。

l /rtsdomain[:domainname],指定要与之同步的可信时间服务器所在的域。

l /set,使计算机的时钟与指定的计算机或域的时间同步。

l /querysntp,显示当前为本地计算机或 \computername 所指定的计算机配置网络时间协议(NTP)服务器的名称。

l /setsntp[:ntp server list],指定本地计算机所使用的NTP时间服务器的列表。该列表可以包含IP地址或DNS名称,用空格分开。如果要使用多个时间服务器,该列表必须用引号引起来。参见注册表项中NtpServer项说明。

3.1.2 W32time
W32tm是用来同步本地计算机与远程计算机或域时间的类似命令。在域控制器上使用W32tm前必须停止W32Time,完成后再启动W32Time。W32tm的语法为:

w32tm [/? | /register | /unregister ]

w32tm /monitor [/domain:]

[/computers:[,[,...]]]

[/threads:]

w32tm /ntte

w32tm /ntpte

w32tm /resync [/computer:] [/nowait] [/rediscover] [/soft]

w32tm /stripchart /computer: [/period:]

[/dataonly] [/samples:]

w32tm /config [/computer:] [/update]

[/manualpeerlist:] [/syncfromflags:]

[/LocalClockDispersion:]

w32tm /tz

w32tm /dumpreg [/subkey:] [/computer:]
 

关于W32tm语法的详细说明,可以在命令提示符下键入W32tm /?,将列出语法和所有参数的说明。

3.2 注册表项
以下注册表项位于 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\

注册表项
 MaxPosPhaseCorrection
 
路径
 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
 
注意
 该 项指定服务可进行的最大正时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将记录一个事件。特殊情况:0xFFFFFFFF 表示总是校准时间。域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000(15 小时)。
 
注册表项
 MaxNegPhaseCorrection
 
路径
 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
 
注意
 该项指定服务可进行的最大负时间校准量(以秒为单位)。如果服务确定某个更改幅度大于所需的幅度,它将转而记录一个事件。特殊情况:-1 表示总是校准时间。域成员的默认值是 0xFFFFFFFF。独立客户端和服务器的默认值是 54,000(15 小时)。
 
注册表项
 MaxPollInterval
 
路径
 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
 
注意
 该项指定系统轮询间隔所允许的最大间隔(单位是对数表示的秒)。请注意,尽管系统必须根据预定的间隔进行轮询,但是提供程序可以根据请求拒绝生成示例。域成员的默认值是 10。独立客户端和服务器的默认值是 15。
 
注册表项
 SpecialPollInterval
 
路径
 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
 
注意
 该项指定手动对等端的特殊轮询间隔(以秒为单位)。当启用 SpecialInterval 0x1 标志时,W32Time 将使用此轮询间隔而非操作系统确定的轮询间隔。域成员的默认值是 3,600。独立客户端和服务器的默认值是 604,800。
 
注册表项
 MaxAllowedPhaseOffset
 
路径
 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
 
注意
 该项指定 W32Time 尝试使用时钟速率调整计算机时钟的最大偏移(以秒为单位)。当偏移大于该速率时,W32Time 将直接设置计算机时钟。域成员的默认值是 300。独立客户端和服务器的默认值是 1。
 

3.2.1 Parameters\NtpServer
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer

Data type
 Range
 Default value
 
REG_SZ
 DNS name or IP address[,0x1 | 0x2 | 0x3]
 time.windows.com,0x1
 

Description

Stores a list of time sources that this computer uses to synchronize its time. The time sources appear either as a DNS name or an IP address of the time source server. The list is space-delimited, with one address per line.

Each time source may also be followed by a comma and a DWORD containing flags for special handling of that time source. If the flags are not specified, they default to 0x0. The available flags are:

Value
 Meaning
 
0x1
 Instead of following the NTP specification, wait for the interval specified in the SpecialPollInterval entry before attempting to recontact this time source. Setting this flag decreases network usage, but it also decreases accuracy.
 
0x2
 Use this time source only as a fallback. If all time sources that are not fallbacks have failed, then the system selects one fallback time source at random and uses it.
 
0x4
 Set the local computer to operate in symmetric active mode in the association with this source.
 
0x8
 Set the local computer to operate in client mode in the association with this source.
 

例如net time /setsntp:"time.nist.gov,0x1 time-a.nist.gov,0x1”,其中的0x1是在使用完整域名称作为NTP服务器的时候需要的,如果使用IP地址则可以忽略。

Change Method

You can change the value of this entry by using the /setsntp parameter of the net time command at the command line. For more information about net time, see Help and Support Center for Windows Server 2003.

3.2.2 Parameters\Type
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Data type
 Range
 Default value
 
REG_SZ
 NoSync | NTP | Nt5DS | AllSync
 Nt5DS for computers joined to a domain; NTP for others
 

Description

Specifies the type of time sources, if any, to which the computer synchronizes its time.

Value
 Meaning
 
NoSync
 Does not synchronize time.
 
NTP
 Synchronizes time to the time sources specified in the Parameters\NtpServer entry.
 
Nt5DS
 Synchronizes time to the domain hierarchy.
 
AllSync
 Uses all synchronization mechanisms available.
 

Change Method

To change the value of this entry, use the command-line tool w32tm.exe (specifically, the command w32tm /config /syncfromflags). For more information about w32tm.exe, see Windows Server 2003 Help and Support Center.

Activation Method

To make changes to this entry effective, at the command line, type:

w32tm /config /update

3.3 设置示例
3.3.1 使用“时间和日期 属性”设置对话框
双击任务栏右下角“时间”,打开“时间和日期 属性”设置对话框;

选择“Internet时间”标签;

选中“自动与Internet时间服务器同步”选项,在“服务器”中填入网络时间服务器的IP地址,如“192.168.1.232”(只能输入1个服务器地址)。按“立即更新”可直接同步。

3.3.2 命令方式
在“运行(R)”中用“cmd”命令进入在DOS命令行窗体;执行以下命令(注意空格):

net time /setsntp: ”192.168.1.232 time.windows.com,0x1”

net stop w32time

net start w32time

w32tm /resync /nowait /rediscover
 (设置时间服务器地址,可多个)

(停止时间服务)

(启动时间服务)

(立即同步时间)
 

3.4 可能出现的问题
计算机没有同步。因为没有可用的时间数据。(The computer did not resync because no time data was available)

出现该问题的原因可能是windows time service没有正确的启动,或者与组策略中的时间配置冲突。请在组策略(gpedit.msc)中将配置更改为“未配置”。


参考文档:http://linux-vbird.bluedata.org/linux_server/0440ntp.htm#server_startandlook



你可能感兴趣的:(Linux系统管理)