为了验证这个解决方案,我在CentOS下编译安装开发版ntp,但参考网上的教程时遇到了不少问题,特写此教程。
一、条件及环境:
1、CentOS:我用的是最新的CentOS 6.5 64位版,此教程应该也适用于RedHat 6及CentOS 6系列所有系统;
2、编译所需环境:
# yum -y install vim ntP* wget gcc gcc-c++ ncurses-devel cmake make
# cp /etc/ntp.conf /usr/local/src/ntp.conf
# yum remove ntP*
注意:编译安装不会在/etc下自动生成配置文件,所以我先yum安装ntp 4.2.6p5生成/etc/ntp.conf后复制出配置文件,再卸载ntp。
3、关闭防火墙及SELINUX!
# chkconfig iptables off
# vim /etc/sysconfig/selinux
将SELINUX=enforcing修改成:
SELINUX=disabled
二、下载并安装ntp 4.2.7p425:
1、下载ntp 4.2.7p425:
如果服务器可以上网,可直接用wget命令下载:
# cd /usr/local/src
# wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-dev/ntp-dev-4.2.7p425.tar.gz
如果服务器不能上网,那你就去http://www.ntp.org/downloads.html下载到本地,然后通过SFTP或FTP上传到服务器上!
2、解包安装ntp-dev-4.2.7p425.tar.gz:
# tar zxvf ntp-dev-4.2.7p425.tar.gz
# cd ntp-dev-4.2.7p425
# ./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
# make && make install
3、修改配置文件ntp.conf:
# cp /usr/local/src/ntp.conf /etc/ntp.conf
# vim /etc/ntp.conf
第(1)种配置:允许任何IP的客户机都可以进行时间同步
则将“restrict default kod nomodify notrap nopeer noquery”这行修改成:
restrict default nomodify
第(2)种配置:只允许192.168.200.*网段的客户机进行时间同步
在“restrict default kod nomodify notrap nopeer noquery”(表示默认拒绝所有IP的时间同步)之后增加一行:
restrict 192.168.200.0 mask 255.255.255.0 nomodify
另外,配置文件默认通过网络同步时间:
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
(RedHat默认有类似上面4行内容,域名不一样而已)
如果需要使用本地时间,则把上面4行删掉或者用“#”号注释掉,然后添加以下两行:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
(RedHat默认有上面两行,但被注释掉了)
4、启动ntp服务:
# /usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid
# 检查ntp服务器是否在后台运行可以用下面这条命令:
# ps -ef | grep ntp
# 检查ntpd侦听的UDP 123端口是否正常用下面这条命令:
# netstat -unl | grep 123
5、用客户端检验时钟同步服务器是否可用。
6、如需设置ntpd服务开机自动启动,则只需把上面的启动命令放入/etc/rc.local文件中即可。