http://www.ntp.org/downloads.html 安装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 (闲麻烦的话,大家可以选择yum -y install ntp) 手动添加,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 #调整为8,表示将使用local时间作为ntp服务提供给ntp客户端 driftfile /var/lib/ntp/drift broadcastdelay 0.008 keys /etc/ntp/keys ===================================================================== 让本服务器时间与time.nist.gov时间同步,使服务器为标准时间 使用ntpd同步时间(注意:使用ntpd时,本机与上源的时间相差不能太大,否则不运行,所以应 该先用ntpdate取得时间初值后在启动ntpd) [root@localhost ~]# ntpdate time.nist.gov 以守护进程启动ntpd [root@localhost ~]#/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid 如果是yum安装ntp 使用 chkconfig --level 35 ntpd on [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 remote:响应这个请求的NTP服务器的名称。 两个问题: 第一 设置ntp连接的是 server 0.pool.ntp.org ,为什么和remote server不一样 因为NTP提供给我们的是一个cluster server所以每次连接的得到的服务器都有可能是不一样.同样这也告诉我们了在指定NTP Server的时候应该使用hostname而不是IP 第二 最前面的+和*都是什么意思 和第一个相关,既然有这么多的服务器就是为了在发生问题的时候其他的服务器还可以正常地给我们提供服务.那么如何知道这些服务器的状态呢? 这就是第一个记号会告诉我们的信息 * 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供 + 它将作为辅助的NTP Server和带有*号的服务器一起为我们提供同步服务. 当*号服务器不可用时它就可以接管 - 远程服务器被clustering algorithm认为是不合格的NTP Server x 远程服务器不可用 ========================================================================== 如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断) [root@localhost ~]# ntpdate -d iptables设置: 安全设置,开放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 (责任编辑:IT) |