Ubuntu 搭建Ntp服务器

当做系统集成有多台服务器的时候,多台机器间的时间同步是很有必要的。这时候就可以用到Linux的Ntp服务。
首先选一台机器做为Ntp的服务端(control),并安装好Ntp服务。其他节点(node)同样也需要安装Ntp服务,只是 node 节点配置文件的server值指向 control 的ip地址即可。

1
sudo apt-get install ntp

修改ntp配置文件。一般情况下服务端的ntp配置文件不需要做什么修改,除非有特殊要求。
ntp的配置文件位于“/etc/ntp.conf”位置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

# Use Ubuntu's ntp server as a fallback.
server ntp.ubuntu.com

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient

上面加粗的部分为当前主机与时间服务器的同步。因为我们这台机器是作为内网的Ntp服务器,所以我们选择默认配置与外网时间同步。
内网的其他服务器与我们这台主机进行同步。
配置好后,重启Ntp服务

1
2
3
sudo service ntp restart
 * Stopping NTP server ntpd         [ OK ] 
 * Starting NTP server ntpd         [ OK ]

control 节点查看时间同步

1
2
3
4
5
6
7
//查看时间同步
sudo ntpq -c peers

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+gus.buptnet.edu 202.112.10.60    2 u  184  256  247  115.806   22.098   2.077
*golem.canonical 140.203.204.77   2 u   49  256  377  323.107   -9.247   2.805

node 节点查看时间同步

1
2
3
4
5
//查看时间同步
sudo ntpq -c peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*control         91.189.89.199    3 u    3   64  177    1.075    9.805  12.799

上面的control如果是指向我们的 control 的ip地址说明已经实现了内网的时间同步。
* : 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供
+ : 它将作为辅助的NTP Server和带有号的服务器一起为我们提供同步服务.当号服务器不可用时它就可以接管
- : 远程服务器被clustering algorithm认为是不合格的NTP Server
x : 远程服务器不可用