由于项目需要,需在公司内部私有网内搭建一个NTP服务器。我刚开始跟其他人说的时候,都表示非常easy,这让我很无语啊。只是简单的去让机器同步时间,找一个服务器的IP地址再看看通不通就OK,可是搭一个服务器。让笔者费了不少劲,在这过程中也学习了不少东西。

其实很简单,只需要简单的下面几步就OK。

【搭建一个NTP客户端】比较简单,你只要安装ntpdate的RPM包(一般ISO镜像里面会有的),rpm -ivh ntpdate.*.rpm或者配好yum源直接yum -y install ntpdate就OK。

 
  
  1. 附:从网易镜像下载一个yum源 
  2. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo  #下载为CentOS6.*准备的repo文件 
  3. mv CentOS6-Base-163.repo /etc/yum.repos.d/   #移动此文件到/etc/yum.repos.d目录下 
  4. yum makecache 
  5. yum -y install ntpdate  

下面要做的是:

 
  
  1. ntpdate 202.120.2.101  #上海的一个授时中心,当然你可以选择中国授时中心210.72.145.44
  2. ## 笔者在这里有一个问题,使用"ntdate -d 210.72.145.44"命令进行同步时间的时候,发现中国授时中心
  3. ## 的服务器并没有给予回应。这是笔者使用上海授时中心的原因。

这样你的linux主机就能够去网络上同步本机的时间。

【搭建NTP服务器】

这个说起来也比较简单。yum源配好之后,需要安装NTP的RPM包。

 
  
  1. yum -y install ntp ntpdate #安装NTP服务器端和客户端
  2. # NTP服务器端是给客户机使用。而公司的服务器从上海授时中心获取时间,这样
  3. # 同时也是一个客户端,因此也需要NTPDATERPM包

 怎么样?简单吧,只是需要一个包,下面要做的只是更改一个文件/etc/ntp.conf

 
  
  1. restrict  default kod nomodify notrap nopeer noquery  #去掉此句中的notrap nopeer noquery
  2. restrict -6 default kod nomodify notrap nopeer noquery  #如何你的网没有用到IPV6,删除此行
  3. 修改完成之后,试着执行下列命令:
  4. ntpdate 202.120.2.101 #手动从服务器同步时间
  5. watch ntpq -p #查看ntp服务器是否完成了和自身同步的过程

相信细心的读者会发现,这个图有两个IP,而我们的配置文件里只有202.120.2.101这一个IP,这是为什么了?图中的各列的列名称又代表什么意思了?

 
  
  1. * :响应的NTP服务器和最精确的服务器 
  2. + : 响应这个查询请求的NTP服务器 
  3. blank(空格):没有响应的NTP服务器 
  4. remote :响应这个请求的NTP服务器的名称 
  5. refid :NTP服务器使用的更高一级服务器的名称 
  6. st:正在响应请求的NTP服务器的级别 
  7. when:上一次成功请求之后到现在的秒数 
  8. poll:当前的请求的时钟间隔的秒数 
  9. offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms) 

【开放端口给外网】

     在公司内部网络测试通过后,剩下的就是要把NTP开放给外网的客户机。分两种情况:

  1.软件防火墙:

     iptables -A INPUT -p UDP -i eth0 -s 192.168.0.0/24 --dport 123 -j ACCEPT
  2.硬件防火墙:

     做一条映射规则,把公司的IP和端口映射为那个内部服务器的IP和对应端口就OK。这些不是问题。最关键的是,协议要写对,这里用到的是UDP协议,不是TCP/IP。当时笔者在这里就被坑了半天时间啊。相当的无语!

【windows客户端与其同步】

windows能与linux的NTP服务器同步么?

答案是yes。windows里面已经有NTP客户端。只要找到并开启就OK。

方法是:

 
  
  1. 开始 菜单 
  2. 运行-->输入 gpedit.msc 
  3. 计算机配置-->管理模板-->系统-->windows时间服务-->时间提供程序 
  4. 右键"启用Windows NTP客户端"-->点击"属性"(win2003)(win7系统弹出的是编辑) 
  5. 选择"已启用",再点击确定就OK 

 在这里设置完了之后,点击任务栏的“更改时间与日期”,如下图:

OK,工作基本完成。

有疏漏之处,还望大家拍砖指点,谢谢!