array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 CentOS7下部署NTP Server - 爱码网

系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64

软件版本:chrony-3.1-2.el7.centos.x86_64

     ntp-4.2.6p5-25.el7.centos.2.x86_64

     ntpdate-4.2.6p5-25.el7.centos.2.x86_64

一、NTPd作为时间服务器

1、安装

# yum install ntp

2、修改配置文件

restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1        #系统若启用了ipv6,该项必须保留,否则会报错
#增加允许查询的网络范围
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
restrict 10.20.20.0 mask 255.255.255.0 nomodify notrap
#修改或保持默认的时间服务器列表
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

restrict的参数说明:

ignore:拒绝连接到NTP服务器
nomodiy: 忽略所有改变NTP服务器配置的报文,但可以查询配置信息
noquery: 忽略所有mode字段为6或7的报文,客户端不能改变NTP服务器配置,也不能查询配置信息
notrap: 不提供trap远程登录功能,trap服务是一种远程时间日志服务。
notrust: 不作为同步的时钟源。
nopeer: 提供时间服务,但不作为对等体。
kod: 向不安全的访问者发送Kiss-Of-Death报文

3、配置防火墙并启动服务

# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
# iptables-save >/etc/sysconfig/iptables
# systemctl start ntpd.service
# systemctl enable ntpd.service

4、确认服务运行正常

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+biisoni.miuku.n 207.224.49.219   2 u  125   64  272  188.586   -5.387  19.552
 61-216-153-105. 211.22.103.157   3 u   83   64  102   44.326   -6.224  13.534
*85.199.214.100  .GPS.            1 u   41   64  377  224.549    4.580   2.672
+ntp8.flashdance 194.58.202.148   2 u   56   64  377  241.409  -18.026  30.000

二、chrony作为时间服务器

1、安装

# yum install chrony

2、修改配置文件

#使用默认的时间服务器或指定其他服务器
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
#允许查询的客户端范围
allow 192.168.10.0/24
allow 10.20.20.0/24

iburst参数:在一个标准的轮询间隔内没有应答,客户端会发送4个包给 NTP 服务器,以便在客户端首次快速同步时间

3、配置防火墙并启动服务

# iptables -I INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
# iptables-save >/etc/sysconfig/iptables
# systemctl start chrony.service
# systemctl enable chrony.service

4、确认服务运行正常

# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ ntp1.ams1.nl.leaseweb.net     2   9   377    43    +17ms[  +17ms] +/-  241ms
^+ 61-216-153-105.HINET-IP.>     3   9   200   38m  +8127us[  +14ms] +/-   93ms
^? 61-216-153-107.HINET-IP.>     3   9    10   36m    +12ms[  +20ms] +/-   84ms
^* makaki.miuku.net              2   9   377   236  +7939us[  +11ms] +/-  242ms

三、NTP客户端

1、使用NTP服务器软件

把上面配置中的server替换成内部NTP服务器即可
server 10.20.20.2 prefer
server 10.20.20.3 iburst

使用prefer参数将优先使用该服务器

2、使用ntpdate

安装ntpdate,并修改/etc/ntp/step-tickers。当然也可以使用默认的公共时间服务器

# vi /etc/ntp/step-tickers

#0.centos.pool.ntp.org
10.20.20.2 iburst

# systemctl start ntpdate.service
# systemctl enable ntpdate.service

这里同样支持iburst或prefer等参数

参考

https://www.server-world.info/en/note?os=CentOS_7&p=ntp&f=1

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

相关文章: