由于项目需要,需在公司内部私有网内搭建一个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. *
2. +
3. blank(空格):没有响应的NTP服务器
4. remote
5. refid
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。
方法是:
- 开始 菜单
- 运行-->输入 gpedit.msc
- 计算机配置-->管理模板-->系统-->windows时间服务-->时间提供程序
- 右键"启用Windows NTP客户端"-->点击"属性"(win2003)(win7系统弹出的是编辑)
- 选择"已启用",再点击确定就OK
在这里设置完了之后,点击任务栏的“更改时间与日期”,如下图:
OK,工作基本完成。
有疏漏之处,还望大家拍砖指点,谢谢!
转载于:https://blog.51cto.com/chyou/1147863