Linux unix windows时钟同步设置

Linux/unix/windows 时钟同步设置



目录
Linux/unix/windows 时钟同步设置 1
ntpd服务简介 2
windows/Linux/unix系统时间与硬件时间的概念: 2
Linux系统时间的设置 2
Linux硬件时间的设置 3
系统时间和硬件时间的同步 3
不同机器之间的时间同步: 3
ntpd服务的相关设置文件如下: 3
关于ntp.conf 文件设置说明 4
对LINUX 客户端具体操作及说明: 4
windows时间同步客户端配置 6
在Windows 2000中配置方式: 6
在Windows XP中配置为: 6
在windows 2003 中配置为: 6

















ntpd服务简介
Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP可以利用多个途径和来源的时间服务器来更加精确的校正时间。
现在绝大部分的操作系统都支持NTP,比如在Unix和Windows中都有他们自己的NTP服务。比如在Windows中的SNTP。由于各个系统厂商会根据自己的系统情况对NTP来进行优化和设置,更加适合他自己的系统,对于其他系统的兼容性就会差很多。尽量使用NTP官方组织提供的软件进行设置而不使用其他厂商在系统中默认提供的NTP服务器。NTP官方组织为 https://www.360docs.net/doc/ad14674623.html,.
ntpd 专用端口为123,服务采用client与server模式方式工作,客户端和服务端所用主配置文件都是/etc/ntp.conf。

windows/Linux/unix系统时间与硬件时间的概念:
在Windwos中,系统时间的设置很简单,界面操作,通俗易懂。而且设置后,重启,关机都没关系。系统时间会自动保存在Bios的时钟里面,启动计算机的时候,系统会自动在Bios里面取硬件时间,以保证时间的不间断。
但在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的。在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

Linux系统时间的设置
在Linux中设置系统时间,可以用date命令:
[root@localhost ~]# date #查看时间
2008年 12月 12日 星期五 14:44:12 CST
[root@localhost ~]# date --set "1/1/09 00:01" <== (月/日/年时:分:秒)#修改时间
2009年 01月 01日 星期四 00:01:00 CST
[root@localhost ~]# date 012501012009.30 <== 月日时分年.秒#date 有几种时间格式可接受,这样也可以设置时间
2009年 01月 25日 星期日 01:01:30 CST

Linux硬件时间的设置
硬件时间的设置,可以用hwclock或者clock命令。其中,clock和hwcloc

k用法相近,只用一个就 行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
#查看硬件时间 可以是用 hwclock ,hwclock --show 或者 hwclock -r
[root@localhost ~]# hwclock --show
2008年12月12日 星期五 06时52分07秒 -0.376932 seconds

#设置硬件时间
[root@localhost ~]# hwclock --set --date="1/25/09 00:00" <== 月/日/年时:分:秒
[root@localhost ~]# hwclock
2009年01月25日 星期日 00时00分06秒 -0.870868 seconds

系统时间和硬件时间的同步
同步系统时间和硬件时间,可以使用hwclock命令。
[root@localhost ~]# # hwclock –w #以系统时间为基准,修改硬件时间
[root@localhost ~]# hwclock –s #以硬件时间为基准,修改系统时间
不同机器之间的时间同步:
可以使用ntpdate命令,也可以使用ntpd服务。
使用ntpdate比较简单。格式如下:
[root@linux ~]# ntpdate [-nv] [NTP IP/hostname]
[root@linux ~]# ntpdate 192.168.0.2
使用能ntpd服务同步时间
使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。
要注意的是,ntpd 有一个自我保护设置: 如果本机与上源时间相差太大, ntpd 不运行. 所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务 运行后, 先是每64秒与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.
ntpd服务的相关设置文件如下:
1./etc/ntp.conf:这个是NTP daemon的主要设文件,也是 NTP 唯一的设定文件。
2. /etc/sysconfig/ntpd : ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
关于ntp.conf 文件设置说明
1、关于权限设定部分
权限的设定主要以 restrict 这个参数来设定,主要的语法为:
restrict IP地址 mask 子网掩码 参数
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
参数有以下几个:
ignore :忽略所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery :不提供客户端的时间查询
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!
例如:restrict default kod nomodify notrap nopeer

noquery :对于默认的client拒绝所有的操作
restrict 127.0.0.1:允许本机地址一切的操作
restrict 192.168.1.0 mask 255.255.255.0 nomodify:允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间

2. 上层主机的设定
# 要设定上层主机主要以 server 这个参数来设定,语法为:
# server [IP|HOST Name] [prefer]
# Server 后面接的就是我们上层 Time Server,而如果 Server 参数
# 后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
# 时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,
# 所以可以使用 driftfile 来规定我们的主机
# 在与 Time Server 沟通时所花费的时间,可以记录在 driftfile
# 后面接的文件内,例如下面的范例中,我们的 NTP server 与
# 192.168.1.1联机时所花费的时间会记录在 /etc/ntp/drift文件内
server https://www.360docs.net/doc/ad14674623.html,
server 192.168.1.1 prefer
总结一下,restrict用来设置访问权限,server用来设置上层时间服务器,driftfile用来设置保存漂移时间的文件。

对LINUX 客户端具体操作及说明:
1、linux查询是否安装ntp,若没有安装使用rpm安装
rpm -q ntp
rpm –ivh ntp.iX86(对应安装包)

说明:一般情况下linux与unix,已经安装了NTPD服务,windows xp为windows time服务,windows 2003 为w32time服务。

2、echo “ntpdate 10.100.48.14 && hwclock -w” >> /etc/rc.local #服务器重启时同步时间并同时修改硬件时间。

3、mv /etc/ntp.conf /etc/ntp.conf.bak #备份原始配置文件

4、touch /etc/ntp.conf #新建配置文件

5、将下列配置写入 /etc/ntp.conf
server 10.100.48.14 prefer #指定上层时间服务器为主服务器
server 10.100.48.27 #指定备用服务器
restrict 127.0.0.1 #对本地LO不做限制
restrict -6 ::1 #对本地IPV6地址不做限制
driftfile /var/lib/ntp/drift #记录与 Time Server 沟通时所花费的时间
logfile /var/log/ntp.log #定义日志位置

6、命令:chkconfig --add ntpd #配置ntpd服务开机启动
chkconfig ntpd on
7、启动ntpd服务
service ntpd restart

8、检查服务情况和时间同步情况
服务端口检测:lsof –i :123
服务情况:ps aux|grep ntp
时间同步情况:ntpstat
说明:常见的错误:

25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found
其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了。
链接时间服务器情况:ntpq –p
说明:显示客户端和每个服务器的关系。

“* ”:响应的NTP服务器和最精确的服务器。
“+”:

响应这个查询请求的NTP服务器。
“blank(空格)”:没有响应的NTP服务器。
“remote”:响应这个请求的NTP服务器的名称。
“refid”:NTP服务器使用的更高一级服务器的名称。
“st”:正在响应请求的NTP服务器的级别。
“when”:上一次成功请求之后到现在的秒数。
“poll”:当前的请求的时钟间隔的秒数。
“offset”:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。

9、确保本地防火墙开放,打开iptables防火墙123端口,或者清空iptables。
NTP服务的端口是123,使用的是udp协议,所以NTP服务器的防火墙必须对外开放udp 123这个端口。方法如下,使用以下规则:
/sbin/iptables -A INPUT -p UDP --dport 123 -j ACCEPT

windows时间同步客户端配置
在确保windows时间服务启动的情况下:
校时保护阀值设置并修改注册表信息:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config
MaxNegPhaseCorrection:控制可以反向进行的可允许的最大时钟校正。如果收到的时间样本是一个过去的时间(与客户端本地时钟相比),且时间差大于MaxNegPhaseCorrection值,则丢弃该时间样本。如果发生这种情况,则 Windows Time 源将在事件查看器的系统日志中记录一个事件。默认值:54000秒。
MaxPosPhaseCorrection:控制可以正向进行的可允许的最大时钟校正。如果收到的时间样本是一个将来的时间(与客户端本地时钟相比),且时间差大于MaxPosPhaseCorrection值,则丢弃该时间样本。默认值:54000秒。
根据业务系统需求设置校时保护阀值。本次修改为1000 秒
在Windows 2000中配置方式为:
在命令行模式输入:
net time /SETSNTP:10.100.48.14 (指定NTP服务器IP) 或者试试 10.100.48.27
net stop w32time (关闭NTP服务)
Net start w32time (启动NTP服务)
w32tm –s (同步NTP时间)

在Windows XP中配置方式为:
控制面板?日期、时间、语言和区域设置?日期和时间
在服务器筐中添加NTP服务器的IP地址就可以了
或者在后下脚时间窗口中配置地址:10.100.48.14
在windows 2003 中配置方式为:


相关文档
最新文档