linux NTP服务器搭建

来源:互联网 发布:bilibili视频编辑软件 编辑:程序博客网 时间:2024/06/05 05:02

1. NTP简介

NTP(Network Time Protocol 网络时间协议)是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步,进行高精度的时间校正。

简而言之,NTP就是使一台或多台服务器(客户端)与时间服务器(服务端)之间进行时间同步(即客户端与服务端的时间同步),以保证时间的统一性

2. NTP服务器架设

     上面提到客户端与服务端的时间同步,现在就先来架设NTP服务端(即NTP时间服务器)

2.1 系统环境

OS: Debian 7.0 amd64

source: deb http://ftp.debian.org/debian wheezy main contrib non-free

2.2 架设NTP服务器

2.2.1 安装NTP服务软件

# aptitude install ntp

2.2.2. 编辑ntp配置文件

nano /etc/ntp.conf

最简单的配置就是修改一条信息,具体如下:

restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap

然后保存退出即可

2.2.3 重启NTP服务

# invoke-rc.d ntp restart

这样NTP时间服务器就架设好了

2.3 客户端配置

NTP时间服务器有了,那么客户端如何与这台服务器进行时间同步呢?,我们继续

2.3.1 安装时间同步程序客户端

# aptitude install ntpdate

2.3.1 让客户端与时间服务器(192.168.61.85)进行时间同步

# ntpdate 192.168.61.85

若执行完命令出现如下提示,则表示已同步成功

ntpdate[23636]: adjust time server 192.168.61.85 offset -0.052088 sec

2.3.2 上面的命令只是客户端与时间服务器的一次同步,若想周期性的进行时间同步,那我们就要添加计划任务了

# crontab -e

在最后一行添加如下内容: 

0 1 * * * /usr/sbin/ntpdate 192.168.61.85

每天凌晨1:00进行时间同步

至此,NTP时间服务器的架设和使用就算结束了。接下来是关于NTP配置文件ntp.conf的一些配置说明,仅供参考:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在配置文件/etc/ntp.conf中主要包括以下几个参数

1. restrict <IP 地址><子网掩码>|<网段> <子网掩码> [ ignore|nomodify|noquery|notrap|notrust|nokod ]: 指定可以进行NTP通信的IP地址或网段

1.1 ignore:关闭所有NTP服务

1.2 nomodify :表示客户端不能更改NTP服务器的时间参数,但可以通过NTP服务器进行时间校对

1.3 noquery: 不提供NTP服务

1.4 notrap:不提供trap远程事件登录的功能

1.5 notrust: 聚聚没有通过认证的客户端

1.6 kod:kod技术可以组织“Kiss of Death”包(一种DOS攻击)对服务器的破坏,使用此参数将开启该功能 

1.7 nopeer:不与其他同一层的NTP服务器进行时间同步

若果没有指定选项,那就表示指定的客户端在访问NTP服务器时没有任何限制

2. server [IP|FQDN] [prefer]:指定该NTP服务器上层NTP服务器,如果有多个上层NTP服务器,则参考prefer的优先级进行时间同步,prefer越小优先级越高

3. broadcast 网段 子网掩码:指定进行NTP时间广播的网段,在不指定此参数时NTP服务器会对所有能访问的网段广播


查看时间同步信息的命令:

# ntpq -p


下面对部分参数进行说明:

remote: 本地主机所连接的上层NTP服务器

st:NTP服务器优先级

when:上次与NTP服务器同步的时间(单位:s)

poll:下次与NTP服务器同步的时间(单位:s)

delay:从本地发出时间同步命令给远程时间服务器开始,到整个时间同步完成所需时间(单位:10^-6s)

offset:本地主机与时间服务器的时间差(同步后将自动纠正)

jitter:一个offset的分布统计值,该值越小,表示时间越精确


方法二:

一、搭建时间同步服务器
1、编译安装ntp server
wgethttp://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.4p4.tar.gz
tar zxvf ntp-4.2.4p4.tar.gz
cd ntp-4.2.4p4
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make && make install
注:如以上下载地址无法访问,请从ntp官方下载网页(http://www.ntp.org/downloads.html)寻找下载地址。
2、修改ntp.conf配置文件
vi /etc/ntp.conf
①、第一种配置:允许任何IP的客户机都可以进行时间同步
将“restrict default nomodify notrap noquery”这行修改成:
restrict default nomodify
配置文件示例:/etc/ntp.conf
②、第二种配置:只允许192.168.18.***网段的客户机进行时间同步
在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行:
restrict 192.168.18.0 mask 255.255.255.0 nomodify
配置文件示例:/etc/ntp.conf
3、以守护进程启动ntpd
/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
4、ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。
二、配置时间同步客户机
vi /var/spool/cron/root
增加一行,在每天的5点13分、9点13分、14点13分、19点13分与时间同步服务器进行同步
13 5,9,14,19 * * * /usr/sbin/ntpdate 192.168.18.2
备注:如果客户机没有ntpdate,可以下载ntpdate.tar.gz到/usr/sbin/目录,然后解压:
wgethttp://blog.s135.com/attachment/200708/ntdate.tar.gz
cd /usr/sbin/
tar zxvf ntpdate.tar.gz


方法三:

配置ntpd
服务器配置:
1、确认已安装ntp包
2、vi /etc/ntp.conf
server  time.nist.gov   #配置公网ntp服务器,也可不配因为配置中增加三组标准时间服务器,每组服务器的域名(如0.pool.ntp.org)下有世界各地的十多台标准时间服务器,非常强大,不会像中国国家授时中心的标准时间服务器(210.72.145.44)那样经常因为负载过大无法访问
默认允许所有主机连服务器同步时间,要做限制先屏蔽下面一行
#restrict default kod nomodify notrap nopeer noquery
再做限制如
restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap #从192.168.1.1-192.168.1.254的主机可以使用我们的NTP服务器来同步时间  
3、启动NTP服务器
   service ntpd start
默认情况下,我们配置的NTP服务器不会去时间源那里同步时间,所以必须修改/etc/ntp/step-tickers文件,加入我们的时间源,这样每次通过/etc/init.d/ntpd 来启动服务的时候就会自动更新时间了
检查服务器同步状态:
  ntpq -p
  ntptrace time.nist.gov
如果输出正确,则说明时间服务器成功。每次启动服务器,会自动同步时间。
4. ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。

配置linux客户端
  在linux客户端上执行ntpdate ntp_server_ip 就可以根据时间服务器统一局域网的时间了,将上面的命令放到cron里做个任务以后自动更新
如:每天早上3点定期执行,crontab –e 然后输入

  0 3 * * *  /usr/sbin/ntpdate  ntp_server_ip
 

本文出自 “老林的技术笔记” 博客,请务必保留此出处http://lilinqing.blog.51cto.com/1122687/328769

 

 

----------------------由于有时还是会出现


12 Oct 18:13:56 ntpdate[15349]: no server suitable for synchronization found

 

所以再转其它资料供参考....

其中最重要的一点就是说到ntpd 刚启动时.要等几分钟才能可以正常同步.

所以我想,,可能之前就重启就可以了.只不过要多等 几分钟而己

 

from :

http://space.itpub.net/665930/viewspace-684110

Linux 下快速搭建ntp 时间同步服务器

一、搭建时间同步服务器
1、编译安装ntp server
tar zxvf ntp-4.2.4p5.tar.gz
cd ntp-4.2.4p5
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make
make install
注: ntp 官方下载网http://www.ntp.org/downloads.html
2、修改ntp.conf 配置文件
vi /etc/ntp.conf
①、第一种配置:允许任何IP 的客户机都可以进行时间同步
将“restrict default nomodify notrap noquery”这行修改成:
restrict default nomodify
②、第二种配置:只允许192.168.18.***网段的客户机进行时间同步
在restrict default nomodify notrap noquery(表示默认拒绝所有IP 的时间同步)之
后增加一行:
restrict 192.168.18.0 mask 255.255.255.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 8
3、以守护进程启动ntpd
/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
4、ntpd 启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server
suitable for synchronization found”错误。
二、配置时间同步客户机
vi /var/spool/cron/root
增加一行,在每天的5 点13 分、9 点13 分、14 点13 分、19 点13 分与时间同
步服务器进行同步
13 5,9,14,19 * * * /usr/sbin/ntpdate 192.168.18.2  >> /root/ntpdate.log 2>&1
备注:如果客户机没有ntpdate,可以下载ntpdate.tar.gz 到/usr/sbin/目录,然后解
压:
wgethttp://blog.s135.com/attachment/200708/ntdate.tar.gz
cd /usr/sbin/
tar zxvf ntpdate.tar.gz
三、同步
在ntp server 上重新启动ntp 服务后,ntp server 自身或者与其server 的同步的需
要一个时间段,这个过程可能是5 分钟,在这个时间之内在客户端运行ntpdate
命令时会产生no server suitable for synchronization found 的错误。
那么如何知道何时ntp server 完成了和自身同步的过程呢?
在ntp server 上使用命令:
# watch ntpq –p
出现如下结果:
Every 2.0s: ntpq
-p Thu Jul 10
02:28:32 2008
remote refid st t when poll reach delay offset jitter
============================================================
192.168.30.22 LOCAL(0) 8 u 22 64 1 2.113 179133. 0.001
LOCAL(0) LOCAL(0) 10 l 21 64 1 0.000 0.000 0.001
四、ntp.conf 文件
restrict default kod nomodify notrap nopeer noquery
restrict 10.10.0.0 mask 255.255.0.0 nomodify notrap
server 10.10.7.141
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 8
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
authenticate no
keys /etc/ntp/keys
五、参考网址:
http://www.itlearner.com/article/2008/4234.shtml
http://linux.chinaunix.net/bbs/viewthread.php?tid=708915&page=1
http://www.blogjava.net/spray/archive/2008/07/10/213964.html

_______________________________________________________________________

解决ntp的错误 no server suitable for synchronization found

 

当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 的错误的信息有以下2个:

错误1.Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。

在ntp客户端用ntpdate –d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。而正常情况下stratum这个值得范围是“0~15”。

这是因为NTP server还没有和其自身或者它的server同步上。

以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

server 127.127.1.0
fudge 127.127.1.0 stratum 8


 

在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?

在ntp server上使用命令:

# watch ntpq -p


出现画面:

Every 2.0s: ntpq -p                                                                                                             Thu Jul 10 02:28:32 2008

     remote           refid      st t when poll reach   delay   offset jitter

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

 192.168.30.22   LOCAL(0)         8 u   22   64    1    2.113 179133.   0.001

 LOCAL(0)        LOCAL(0)        10 l   21   64    1    0.000   0.000  0.001

注意LOCAL的这个就是与自身同步的ntp server。

注意reach这个值,在启动ntp server服务后,这个值就从0开始不断增加,当增加到17的时候,从0到17是5次的变更,每一次是poll的值的秒数,是64秒*5=320秒的时间。

如果之后从ntp客户端同步ntp server还失败的话,用ntpdate –d来查询详细错误信息,再做判断。

错误2.Server dropped: no data

从客户端执行netdate –d时有错误信息如下:

 

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Server dropped: no data

server 192.168.30.22, port 123

 

.....
28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found

出现这个问题的原因可能有2:

1。检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。

使用以下命令检查ntp的版本:

# ntpq -c version


下面是来自ntp官方网站的说明:
The behavior. of notrust changed between versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd

解决:

把notrust去掉。


2。检查ntp server的防火墙。可能是server的防火墙屏蔽了upd 123端口。

可以用命令

#service iptables stop

 

来关掉iptables服务后再尝试从ntp客户端的同步,如果成功,证明是防火墙的问题,需要更改iptables的设置。

 ________________________________________________________________________

1. 与一个已知的时间服务器同步

2. 配置网络时间协议(ntp)


1. 让linux自动同步时间
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov
time.nist.gov 是一个时间服务器.

2. 时间服务器配置(192.168.10.1)

1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
2). # vi /etc/ntp.conf
注释一行
restrict default ignore
加入一行
restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
3). # vi /etc/ntp/step-tickers
加入一行
pool.ntp.org
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4). # service ntpd start
5). # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192.168.10.2)
1). # ntpdate 192.168.10.2
应该显示同步成功
2). # crond -e
加入
0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1 >> /root/ntpdate.log 2>&1
表示每隔10分钟同步一次时间

0 0
原创粉丝点击