由于公司架构需求部分服务器走内部网络,这部分服务器均无外部网络,导致存在一个问题就是时间无法进行同步,于是网上找了下资料可以通过搭建ntp服务器来解决这问题,也相对简单,废话少说,看底下配置!
环境:ubuntu 10.04 server/64版本(服务端及客服端均相同)
ntp服务器IP(内网):192.168.10.2
内网服务器IP:192.168.10.*
步骤:
1、安装ntp软件
sudo apt-get install ntp
2、修改配置文件
sudo vim /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
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
server ntp.ubuntu.com
#增加了NTP服务器自身到时间服务器的同步
fudge 127.127.1.0 stratum 8 ---这是wdr后加的,不知道是否可用?
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 192.168.10.0 mask 255.255.255.0 nomodify
restrict 133.16.157.34 --- #增加了一些需要同步的客户端的ip
restrict 133.16.157.36 --- #增加了一些需要同步的客户端的ip
restrict 127.0.0.1
restrict ::1
主要是在配置文件中的:
restrict -6 default kod notrap nomodify nopeer noquery
语句后面加入:
restrict 192.168.10.0 mask 255.255.255.0 nomodify
restrict 192.168.10.0 mask 255.255.255.0 nomodify---主要是允许能同步的服务器所在的内部网段
注:
1>、权限设定部分
权限设定主要以restrict这个参数来设定,主要的语法为:
restrict IP mask netmask_IP parameter
其中IP可以是软体位址,也可以是 default ,default 就类似0.0.0.0
至于 paramter则有:
ignore:关闭所有的NTP 连线服务
nomodify:表示Client 端不能更改 Server 端的时间参数,不过Client端仍然可以透过Server 端來进行网络较时。
notrust:该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
noquery:不提供 Client 端的时间查询
如果 paramter完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』
2>、上层主机设定
上层主机选择ntp.ubuntu.com,要设定上层主机主要以server这个参数来设定,语法为:server [IP|FQDN] [prefer]
Server 后面接的就是我们上层的Time Server !而如果 Server 参数后面加上perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为时间较正的对应。另外,为了解决更新时间封包的传送延迟动作,可以使用driftfile 来规定我们的主机在与Time Server沟通时所花费的时间,可以记录在 driftfile 后面接的档案内
3、如果有设置防火墙必须取消对123端口的限制
iptables -t filter -A INPUT -p udp --destination-port 123 -j ACCEPT
4、重启ntp服务
sudo /etc/init.d/ntp restart
5、客户端同步(也就是要进行同步的内网服务器)
sudo ntpdate 192.168.10.2 (ntp Server)
可同时查看服务器的硬件时钟并进行更改:
sudo hwclock
sudo hwclock -w
6、常见故障
客户端同时时出现:no server suitable for synchronization found 错误提示
原因:
在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。如5分钟后,再在客户端执行ntpdate 192.168.10.2,提示同步完成。
那么如何知道何时ntp server完成了和自身同步的过程呢?
在ntp server上使用命令:
#ntpq -p
7、客户端配置
如果你以为上面配置好了,局域网段的服务器就能和这台ntp server自动时间同步了,那就太天真了。
还需要在需要同步时间的每台客户端上安装ntp, sudo apt-get install ntp,然后修改vim /etc/ntp.conf,增加server 192.168.10.2,
然后重启客户端的ntp服务,sudo /etc/init.d/ntp restart,这样客户端就能和ntp server 进行时间同步了。