ntp时间服务器 时间同步

具体两种模式1.服务器数量比较少,可以直接与公网时间服务器同步2.本地服务器较多,在本地设置时间同步服务器,  时间同步的两个命令ntpd :        校准时间,一点点的校准过来时间的,最终把时间慢慢的校正对。                     ntpd服务可以在修正时间的同时,修正cputick

大家好,又见面了,我是你们的朋友全栈君。

具体两种模式
1.服务器数量比较少,可以直接与时间服务器同步
2.本地服务器较多,在本地自建时间同步服务器,
 
 
时间同步的两个命令
ntpd :         校准时间,一点点的校准过来时间的,最终把时间慢慢的校正对。

                      ntpd服务可以在修正时间的同时,修正cpu tick

                      ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行



ntpdate : 不会考虑其他程序是否会阵痛,直接调整时间,有可能会对程序造成影响
 
ntpdate [-nv] [ IP/hostname]

# ntpdate -u 192.168.0.2

# ntpdate -u time.ntp.org

# ntpdate -u ntp.sjtu.edu.cn >>/var/log/ntp.log 2>&1;hwclock -w  
 
 注意:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
-u:指定使用无特权的端口发送数据包,可以越过防火墙与主机同步;
 
 
理想的做法是:

使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

在计算机刚刚启动,但还没有启动很多服务的那个时候可以使用ntpdate同步时间
 
 
 一、直接用命令与时间服务器进行同步
 
 实例:
使用ntpdate 进行同步: 


ntpdate -u x.x.x.x

这里的x.x.x.x可以是公网时间服务器IP地址,也可以是下面二中我们自建的ntp服务器地址。
可以加一个定时计划,定时同步
1. crontab -e  
2. */5 * * * * /usr/sbin/ntpdate -u x.x.x.x

3. /etc/init.d/crond restart 
 
2.这里提供几个公网时间服务器地址
阿里云时间服务器,授时信号来自GPS、北斗两套卫星信号,并配备原子钟守时,
以下7个域名提供服务,大家可以直接使用。
time1.aliyun.com
time2.aliyun.com
time3.aliyun.com
time4.aliyun.com
time5.aliyun.com
time6.aliyun.com
time7.aliyun.com


或者直接访问这个地址  time.pool.aliyun.com


# ntpdate -u time.pool.aliyun.com


13 Nov 10:48:28 ntpdate[26527]: adjust time server 182.92.12.11 offset 0.000458 sec


centos也有几个时间服务器(最好还是用国内的吧)
0.centos.pool.ntp.org
1.centos.pool.ntp.org
2.centos.pool.ntp.org



 
二、 自建ntpd 时间同步服务器

NTP通信协议原理

  1. 首先主机启动NTP。
  2. 客户端会向NTP服务器发送调整时间的message。
  3. 然后NTP server会送出当前的标准时间给client
  4. client接受来自server的时间后,会根据这个信息来调整自己的时间。这样就实现了网络对时。

NTP这个deamon采用了UDP 123端口。

远程服务器的层级(stratum):
由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端.
所以服务器从高到低级别可以设定为1-16.
为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的



1.配置ntp服务器
安装  
# yum install ntp
开机自启动
# chkconfig ntpd on
 
修改配置文件:
 [root@test01 ~]# less /etc/ntp.conf 
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift            系统时间与BIOS事件的偏差记录
 
配置与本机同步的机器权限
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.


restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery 

    
默认拒绝任何操作 

 
任何ip4地址、ip6地址  不能修改、不能trap远程登录、不能尝试对等、不能校对时间


restrict 控制相关权限。

语法为:  restrict [ 客户端IP ]  mask  [ IP掩码 ]  [参数]

其中IP地址也可以是default ,default 就是指所有的IP

参数有以下几个:

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

notrust :拒絕沒有認證的用戶端

noquery :客户端不能使用ntpq,ntpc来查询ntp服务器,等于不提供校对时间服务

notrap :不提供trap远程登录功能,trap服务是一种远程时间日志服务

拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

nopeer :用于阻止主机尝试与服务器对等

kod : 访问违规时发送 KoD 包,向不安全的访问者发送Kiss-Of-Death报文。

restrict -6 表示IPV6地址的权限设置。

 
如何控制客户的范围
# Permit all access over the loopback interface.  This could
 
下面的配置 允许运行任何权限的访问在本地接口,

# be tightened as well, but to do so would effect some of
   
这里最好收紧权限,但是会影响一些管理功能

# the administrative functions.

restrict 127.0.0.1 

restrict ::1

# Hosts on local network are less restricted.  
                 
配置
 
 给本地局域网络配置小一些的权限

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
 
本机与公共时间服务器同步选项
设定NTP主机来源(其中prefer表示优先主机)
# Use public servers from the pool.ntp.org project.   使用公共服务器从 时间池工程中


# Please consider joining the pool (
http://www.pool.ntp.org/join.html
).  请考虑加入这个 时间池 项目


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
 

server host  [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]

其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:

◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。

◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。

◆ prefer: 优先使用。

◆ mode: 指定数据报文mode字段的值。

◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。

◆ maxpoll:  指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。

◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。

#broadcast 192.168.1.255 autokey        # broadcast server


#broadcastclient                        # broadcast client


#broadcast 224.0.1.1 autokey            # multicast server


#multicastclient 224.0.1.1              # multicast client


#manycastserver 239.255.254.254         # manycast server


#manycastclient 239.255.254.254 autokey # manycast client

当外部时间不可用时,以本地(本机)时间作为服务时间
本地时间以 127.127.1.0 表示  级别为10



# Undisciplined Local Clock. This is a fake driver intended for backup


# and when no outside source of synchronized time is available.


#server 127.127.1.0     # local clock


#fudge  127.127.1.0 stratum 10

下面是一些加密认证的配置


# Enable public key cryptography.


#crypto


includefile /etc/ntp/crypto/pw

# Key file containing the keys and key identifiers used when operating


# with symmetric key cryptography.


keys /etc/ntp/keys

# Specify the key identifiers which are trusted.


#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.


#requestkey 8

# Specify the key identifier to use with the ntpq utility.


#controlkey 8

 

# Enable writing of statistics records.

#statistics clockstats cryptostats loopstats peerstats



一个简单实例如下:
restrict default kod nomodify notrap nopeer noquery
拒绝所有ip4 的请求
# restrict -6 default kod nomodify notrap nopeer noquery  #针对ipv6设置
 
# 允许本地所有操作
restrict 127.0.0.1
#restrict -6 ::1
 
# 允许的局域网络段或单独ip 某些权限
restrict 10.0.0.0 mask 255.0.0.0 nomodify motrap
restrict 192.168.0.0 mask 255.255.255.0 nomodify motrap
restrict 192.168.1.123 mask 255.255.255.255 nomodify motrap
 
# 使用上层的internet ntp服务器
restrict cn.pool.ntp.org
restrict 1.cn.poo.ntp.org
restrict 0.asia.pool.ntp.org
restrict 3.asia.pool.ntp.org
server cn.pool.ntp.org prefer
server 1.cn.poo.ntp.org
server 0.asia.pool.ntp.org
server 3.asia.pool.ntp.org
 
# 如果无法与上层ntp server通信以本地时间为标准时间
server   127.127.1.0   
# local clock
fudge    127.127.1.0 stratum 10
 
# 计算本ntp server 与上层ntpserver的频率误差
driftfile
/var/lib/ntp/drift
 
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys
/etc/ntp/keys
 
#日志文件
logfile
/var/log/ntp
.log


配置/etc/sysconfig/ntpd文件

ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

#允许BIOS与系统时间同步,也可以通过hwclock -w 命令

SYNC_HWCLOCK=yes

 

启动ntpd 服务
# service ntpd start

 


# 查看ntp的端口,应该看到123端口
#netstat
-unlnp


# 查看ntp服务器有无和上层连通
#ntpstat
 
synchronised to NTP server () at stratum 2
time
correct to within 74 ms
polling server every 128 s
# 注意:此命令出现上述synchronised结果比较慢,我的用了大概5分钟。


刚启动的时候,一般是:

# ntpstat 

unsynchronised

  time server re-starting

   polling server every 64 s

连接并同步后:

synchronised to NTP server (202.112.10.36) at stratum 3 

   time correct to within 275 ms

   polling server every 256 s


ntptrace -n 127.0.0.1
 
127.0.0.1: stratum 3, offset -0.001095, synch distance 0.532610
116.193.83.174: timed out, nothing received



查看ntp服务器与上层ntp服务器的状态:ntpq

#ntpq -p
 
# 其中:

# remote - 本机和上层ntp的ip或主机名,“+”有连线可做候选,“*”正在使用的

# refid - 更上一层的ntp地址

# st - stratum的 级别

# when   - 多少秒前曾经同步过时间
# poll   - 下次更新在多少秒后
# reach  - 已经向上层ntp服务器要求更新的次数
# delay  - 网络延迟
# offset - 时间补偿
# jitter - 系统时间与bios时间差

# ntpq -p
     remote           refid                  st t when poll reach   delay   offset  jitter
==============================================================================
*time4.aliyun.co 10.137.38.86     2 u  111  128  377   27.480   -5.995   1.852

2.配置NTP客户端:
在所有客户端上vim /etc/ntp.conf,添加:
server x.x.x.x 

x.x.x.x 为上面配置的ntp服务器地址


注意:当server与client之间的时间误差过大时(可能是1000秒),处于对修改时间可能对系统和应用带来不可预知的问题,NTP将停止时间同步!
所以如果发现NTP启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,
此时需要先手动进行时间同步 ntpdate 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127356.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MATLAB笔记—绘制三维图像「建议收藏」

    MATLAB笔记—绘制三维图像「建议收藏」记录几个MATLAB中绘制三维图像的常用函数1.plot3(x,y,z)需要注意的是当你要绘制由线段连接的一组坐标,那么就将x、y、z指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将x、y、z中的至少一个指定为矩阵,其他指定为向量。现在通过几个实例看一下绘制效果t=linspace(-10,10,1000);xt=exp(-t./10).*sin(5*t);yt=exp(-t./10).*cos(5*t);p=plot3(xt,yt,t);p.Line

    2022年10月26日
  • 在Linux(Ubuntu版)下编写运行C语言程序

    在Linux(Ubuntu版)下编写运行C语言程序    最初学习C语言用的是VisualC++6.0,后来还用过一些IDE,复制粘贴都可以用鼠标对目标进行选择即可。但在Linux系统里,需要熟练掌握在Terminal里编写C语言程序,进行编译调试。本章主要介绍在Linux的终端下编写C程序并编译运行。一,编写C时需要掌握的一些Linux操作(1)文件管理相关的命令Linux命令名称作用使用举例mkdir新建文件夹mkdirtest,m…

  • 安卓短信转发qq邮箱

    安卓短信转发qq邮箱fork一个github项目简介准备工作Tips简介最近不怎么带手机,所以收不到一些验证码什么的,所以想搞一个app放手机上将短信以有邮件的形式发送到指定邮箱,然后用电脑查看邮件,这样就可以不用带手机了。在github上找到一个项目叫sms-backup-plus,于是准备在这个项目的基础上进行更改。准备工作安装androidStudio学习kotlin怎么整合java和k…

  • 判断一个数是否为素数的代码(判断10000以内的数是不是素数)

    素数(也叫质数)的数学定义为:大于1的自然数中除了1和它本身外没有其他因数的整数,常见的素数有:2,3,5,7,11,13……等,判断一个数是不是素数经常作为考试题目。先了解一下算法:设i=2,n为需要判断的数。 计算n/i 如果n/i的余数为0,则输出:n不是素数 如果n/i的余数不为0,则令i=i+1,如果此时i<n,则返回第2步,否则输出:n是素数。算法流程图:…

  • 详解 傅里叶变换的物理意义

    详解 傅里叶变换的物理意义这是一篇辅助理解傅里叶变换的博客,下面如果有不适合或错误的表达,请大家在评论区给我留言,我一定积极修改。一、傅里叶分析关于任意函数的傅里叶变换频域(频率,振幅、相位三维正交)图像,韩同学给出一个形象的解释,这里借用韩同学的图片准确表达一下,一个函数的傅里叶级数展开如下式,二、傅里叶变换在了解了时域与频域的空间特征后,那我们再来看下傅里叶变换,这里可以看潘工的文章,潘工有趣的引入了:简单→分解→正交→内积思想,并提出函数之间内积(投影)的定义,,其中g表示共轭。e^ix本质上是一个单位圆,则原

    2022年10月25日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号