在/etc/ntp.conf文件中我们可以用restrict关键字来配置上面的要求; C# f7 \" |* ^" [- C! r- ~
4 X6 ~: j* e' l 首先我们对于默认的client拒绝所有的操作
! Y, X- n0 A! u6 M
; D# F5 a7 W( [- S+ E9 c& ^8 r1 [3 z restrict default kod nomodify notrap nopeer noquery4 {/ c; Y3 n: G6 G. ?
! O4 O1 S6 @7 i% T2 z
然后允许本机地址一切的操作/ C% x& R- ]' Q$ [: |" C! k
) Y5 x/ |# |, Y2 }" ]" V* L: j5 q restrict 127.0.0.1
2 X; ?7 F3 ^6 D, Z/ i
1 U/ R, E" `' }3 d8 O( U% p 最后我们允许局域网内所有client连接到这台服务器同步时间。但是拒绝让他们修改服务器上的时间
& h! Z0 q9 t- J2 J 6 t' v8 T. H( e8 K
restrict 192.168.1.0 mask 255.255.255.0 nomodify6 p- p2 o2 ~/ X' c$ T4 p. E' K
1 p& I& v0 y( p( Y( o d
把这三条加入到/etc/ntp.conf中就完成了我们的简单配置。 NTP还可以用key来做authenticaiton,这里就不详细介绍了
' h6 Y# n! K0 E) o' Z7 M
! j$ I% V y& l& o$ w 8. NTP client的设置" U# f9 {( Y, n* Z Y: y
t8 l- ?. k' t. l" S 做到这里我们已经有了一台自己的Relay Server.如果我们想让局域网内的其他client都进行时间同步的话那么我们就都应该照样再搭建一台Relay Server,然后把所有的client都指向这两台服务器(注意不要把所有的client都指向Internet上的服务器)。 只要在client的ntp.conf加上这你自己的服务器就可以了
4 t0 e" I1 |0 d; k v' n: o
: E5 t- e" M! z; h 代码:# t* f4 [" R; ~2 m9 n
; D/ }1 n, Y6 q$ B) l
server ntp1.leonard.com; q d8 w6 v" B4 q
$ `3 Q" Z9 w& N& C, M
server ntp2.leonard.com' B& t. B5 C( d' n' [! }" J( h) ]
2 f& E, R. e. p4 z! |/ H% I server 10.1.0.41
8 t s7 Z- J7 U+ z2 x4 j
0 G! y+ V- q! n 9. 一些补充和拾遗9 C$ Y) H% ?: u7 N5 p
3 P! }) M2 i- \' b8 _
1. 配置文件中的driftfile是什么?
/ x0 E- B: X; p3 Q 3 q, P, r0 N: ], ?
我们每一个system clock的频率都有小小的误差,这个就是为什么机器运行一段时间后会不精确。 NTP会自动来监测我们时钟的误差值并予以调整。但问题是这是一个冗长的过程,所以它会把记录下来的误差先写入driftfile.这样即使你重新开机以后之前的计算结果也就不会丢失了: R$ C9 n' C! P
* E4 Z; [9 c( ] R' } 2. 如何同步硬件时钟?
0 H( m, @. {% B) D9 J% Y ( E8 y( G3 Y2 n
NTP一般只会同步system clock. 但是如果我们也要同步RTC的话那么只需要把下面的选项打开就可以了
4 j6 p( D& m! e/ M J j7 p2 K + k% r/ Z3 V. j! ]2 J
可以通过ps –ef |grep ntp或者使用pgrep –lf ntp查看一下你的ntp服务是否启动了。然后可以通过snoop命令进行ntp的检测。. C, ^4 m+ o6 ^9 D Q6 j
8 y' M+ N, f; v5 }( Q8 V1 Z Snoop |grep –i ntp进行检测。: _* |" t7 Z7 Y
' ^8 x% O- ^# [: h6 u
在建立好ntp服务以后,可以用2个工具命令对ntp服务进行管理。
9 ^5 g* r# ? I ; L/ I0 ~ v3 |) S% `; l, D. H" W: I
一个是ntpq是一个交互式应用命令,在它的下面有很多的子命令可以供大家使用。使用peers可以查看同步进程。如果还需要其他的命令可以输入help 进行查看。还有一个工具命令是ntpdate这个命令一般用于ntp的客户端使用。可以在/var/adm/messages中看到ntp的同步信息的情况。如果需要更加详细的ntpq和ntpdate的信息可以使用man帮助进行查询。 |