服务器时间校正
1,首先yum 安装本地ntpdate客户端,更新ntpdate cn.pool.ntp.org时使用
[root@localhost ~]# yum install ntpdate
2,使用 ntpdate cn.pool.ntp.org进行更新。
ntpdate cn.pool.ntp.org
3.查看是否校对成功
date
感受科技之美
1,首先yum 安装本地ntpdate客户端,更新ntpdate cn.pool.ntp.org时使用
[root@localhost ~]# yum install ntpdate
2,使用 ntpdate cn.pool.ntp.org进行更新。
ntpdate cn.pool.ntp.org
3.查看是否校对成功
date
ntp.conf
配置如下
ntpd
文件修改如下
ntp.conf
配置如下
ntpd
文件修改如下
# 重启服务 systemctl restart ntpd.service # 开机启动 systemctl enable ntpd.service
ntpd 不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday设置系统时间,这有几个非常明显的问题:
*,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。
第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。
第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。
因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。
NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时
一.时间服务器(NTP)相关解释
网络时间协议NTP(Network Time Protocol)是用于互联网中时间同步的标准互联网协议。NTP的用途是把计算机的时间同步到某些时间标准。目前采用的时间标准是世界协调时UTC(Universal Time Coordinated)
二.时间服务器的重要性
在互联网上进行时间同步具有重要意义。随着互联网的发展和延伸到社会的各个方面,在其他的领域对时间同步也提出了多种要求,例如各种实时的网上交易、通信网络的时间配置、网络安全性设计、分布性的网络计算和处理、交通航班航路管理以及数据库文件管理和呼叫记录等多种涉及时间戳的应用,都需要精确、可靠和公认的时间。如果系统内某个服务器的时间有误差会造成交互失败有歧义,严重的将导致交易失败。由此可以看出NTP服务器的存在是不容置疑的。
三.内外网服务器时间同步方案
说明了时间同步的重要性后,需要根据实际情况来调整服务器的时间同步策略:
1. 如果每个服务器都可以有公网IP地址与外界通信,那简单的方式就是:每个服务器都可以配置与互联网上的时间服务器进行同步,达到每个内外网服务器系统时间的一致性。
2. 但是通常的情况是:在IDC托管的服务器只有前端WEB服务器对外通信,数据库,文件等服务器只是通过私网地址与前端WEB通信,形成整体的架构。
微博易的系统正是这种情况。
这个时候就需要整体系统内部有一台服务器来担当中介,具体是:将某台服务器配置成时间服务器(注:此服务器能直接同步互联网上的时间服务器),其他所有服务器都定时与这台服务器在内部进行时间同步,达到每个服务器的时间一致性。
四.方案图示
五.时间服务器配置
1. 安装NTP软件
因为系统所用系统是CentOS就可以使用YUM方便的安装系统软件。
#yum install ntp
2. 编辑配置文件
备份一下原始配置文件:mv /etc/ntp.conf /etc/ntp.conf-bk
vi /etc/ntp.conf
添加如下内容
允许192.168.100.0 网段服务器进行同步,拒*其他服务器的同步
restrict 192.168.100.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
restrict 127.0.0.1
restrict -6 ::1
外网时间服务器定义
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server pool.ntp.org
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
3. 启动NTP服务
service ntpd s tart
4. 客户端配置
添加到计划任务中,每三十分钟同步一次
crontab –e
30 * * * * /usr/sbin/ntpdate 192.168.100.5
开机启动时的时间同步设置
echo “/usr/sbin/ntpdate 192.168.100.5 ”>> /etc/rc.d/rc.local
5. 手动在其他服务器上同步时钟
root@xen100 vm_backup_script]# /usr/sbin/ntpdate 192.168.100.5
28 Jul 17:30:59 ntpdate[19081]: adjust time server 192.168.100.5 offset -0.019476 sec
[root@xen100 vm_backup_script]# date
Sat Jul 28 17:31:02 CST 2012
我们在做工程中经常发现PC、摄像机、UPS等设备都有NTP时间这个选项,与此同时不配置的话,回经常发现时间不是统一,就如我们调出录像时发现有的时间段不统一,于是将其Server2003的NTP服务开启,客户端于此同步即可!!!
默认情况下,windows server 2003在非域控制器的情况只作为NTP的客户端工作,同时默认是与time.windows.com同步,于是通过windows自带的W32Time服务器配置NTP服务器,并需通过设定客户端来与服务器同步时间。
一、NTP服务器架设
1、运行regedit,打开注册表,修改键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time \TimeProviders\NtpServer内的Enabled设定为1,目的主要是启用NTP服务器的功能
2、将W32Time \Config\AnnounceFlags设定为5,目的是强制主机将其自身宣布为可靠的时间源(如果要使用Internet上的时间服务器,需要设定为默认a)
3、重启w32time服务
运行cmd,进入命令行界面输入
net stop w32time(停止w32time服务) ,
net start w32time(重启W32time服务)
4、到此为止我们的W32time服务器架设好了,接下了我们设置客户端同步。
二、NTP客户端设置及其同步
1、进入注册表修改
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient下的
SpecialPollInterval 值修改成十进制43200 (单位为秒,43200为12小时,该时间是客户端与服务器时间同步的间隔)
SpecialPollTimeRemaining 值修改成[时间同步服务器],0 如:192.168.3.101,0
2、到此为止客户端设定完成,可通过命令立即更新客户端时间,
w32tm /resync /nowait
也可以通过点击右下角时间,弹出【日期和时间】,点击Internet时间选项卡,选择更改设置,将其服务器192.168.3.101,点击立即更新!
注意:由于w32time服务使用的是123端口来同步时间,所以,还需要开通NTP服务连接外网的TCP和UDP的123端口
NTP服务器介绍
NTP服务器【Network Time Protocol(NTP)】是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。
问题描述
在一个与外界网络隔离的局域网内需要搭建一个NTP服务器给该局域网内的其他设备使用。尝试了一些Windows下的NTP服务器小软件之后,*后查到了Windows默认带有NTP服务器,只是默认没有开启,我们可以通过修改注册表的方式打开Windows默认的NTP服务器。
Windows时间服务介绍
从Windows 2000起的所有Microsoft Windows版本都包括Windows时间服务(W32Time),其具有将计算机时钟同步到NTP服务器的能力。
W32Time服务*初是为实现Kerberos第五版的身份验证协议,它需要误差5分钟内正确时间值以防止重放攻击。Windows 2000和Windows XP中只实现了简单的NTP,并在几个方面违反了NTP第3版的标准。从Windows Server 2003和Windows Vista开始,已包括匹配完整NTP的实现。微软称W32Time服务不能可靠地将同步时间保持在1至2秒的范围内。如果需要更高的精度,微软建议使用其他NTP实现。
Windows Server 2016现在在某些操作条件下支持1ms的时间精度。
(Windows时间服务介绍 摘抄自 “网络时间协议 – 维基百科,自由的百科全书“)
Windows 下安装NTP服务器方法步骤描述
电脑环境:
1、VMware Workstation_full_12.1.0.exe,密码:jtkr
2、虚拟机作为NTP服务器:Windows 7 (64位)(VMware 12 pro下的Windows 7 虚拟机 )
3、物理机:Windows10教育版 64位 1803版本(操作系统版本:17134.48)
详细步骤:
1、在Windows 服务器下,按住“ windows+r ”打开“运行”对话框,输入regedit,点击“确定”打开注册表。
2、在注册表中依次展开:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、TimeProviders、NtpServer,
在NtpServer项的右侧键值ENablied,将默认的0改为1,1为启用NTP服务器。
3、再在注册表中依次展开:HKEY_LOCAL_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、Config
找到Config项右侧的AnnounceFlags。
把默认的10改为5,5的意思就是自身为可靠的时间源。
4、修改完以上之后关闭注册表编辑器,win7下 以管理员身份打开命令行如下图。Windows10则用Windows+X+A以管理员身份打开命令行。
5、在命令提示符中输入:net stop w32Time,回车
等待NTP服务停止。
然后再输入:net start w32Time,回车
启动NTP服务。
6、测试,局域网内windows电脑同步成功!
7、测试,在ubuntu虚拟机中,在终端输入命令“sudo ntpdate 192.168.10.241,”出现如下界面则同步成功!
参考资料
1、NTP服务器_百度百科
2、内网测试环境 NTP 服务器搭建
3、内网NTP服务器搭建
4、meinberg官网
5、NetTime 开源的Windows系统ntp软件
6、各种NTP SERVER平台软件测试与测试结果_百度文库
7、Windows 如何安装NTP服务器_百度经验
8、网络时间协议 – 维基百科,自由的百科全书
9、Network Time Protocol – Wikipedia
10、运行net start 命令时,提示发生系统错误5,拒*访问。 – Microsoft Community
11、cmd net start 服务 提示系统错误5 拒*访问怎么办?-CSDN论坛
12、怎么获得win7*高管理员权限
13、Win7命令提示符怎么以管理员方式打开
14、Win10系统同步Internet 时间出错的解决方法_百度经验
15、Ubuntu 14.04下时间同步的设置
windows 同步时间 cmd 命令:
https://www.cnblogs.com/linkenpark/p/7776571.html
#{10.0.13.100} ntpserver,执行下面的命令后,会修改注册表的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer 的值为 {10.0.13.100},0x8
C:\Users\Administrator>w32tm /config /manualpeerlist:{10.0.13.100},0x8 /syncfromflags:MANUAL
成功地执行了命令。
w32tm /config /manualpeerlist:10.0.13.100,0×8 /syncfromflags:MANUAL #也可以不加双引号。同步局域网 ntp server
C:\Users\Administrator>net stop w32time
没有启动 Windows Time 服务。
请键入 NET HELPMSG 3521 以获得更多的帮助。
C:\Users\Administrator>net start w32time
Windows Time 服务正在启动 .
Windows Time 服务已经启动成功。
C:\Users\Administrator>w32tm /resync #同步时间,会马上同步
将 resync 命令发送到本地计算机
此计算机没有重新同步,因为没有可用的时间数据。
C:\Users\Administrator>
服务器时间同步是一个容易被忽视的问题,但在企业级应用环境中,不同服务器之间的时间差很可能引发应用系统问题。Windows提供的w32tm程序可以用来设置时间同步服务器,其用法如下:
1、指定外部时间源并与之同步
w32tm /config /manualpeerlist:”210.72.145.44″ /syncfromflags:manual /reliable:yes /update
/manualpeerlist表示外部时间源服务器列表,多个服务器之间可用空格分隔,210.72.145.44是中国国家授时中心的时间服务器ip地址
/syncfromflags:manual表示与指定的外部时间源服务器列表中的服务器进行同步
/reliable:yes设置此计算机是一个可靠的时间源。此设置只对域控制器有意义。
/update向时间服务发出配置已更改的通知,使更改生效
2、显示本地时间与目的时间的时间差
w32tm /stripchart /computer:210.72.145.44 /samples:30 /dataonly
3、显示目前服务器指定的外部时间源
w32tm /query /source
4、恢复Windows Time Service的预设值
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
在域环境中,只需设置根域控制器的外部时间源即可,其它服务器在添加进域中时将自动设置与域控制器时间同步。
改设置可解决域控制器的时间同步问题 如:Time-Service EventID:36
更多用法详见w32tm的帮助吧
网上下的没法用。找了个老外弄的,在win7+管理员权限工作正常。
下面的代码放在头文件中:
调用:
/*
**time_t转SYSTEMTIME
*/
SYSTEMTIME TimetToSystemTime(time_t t)
{
FILETIME ft;
SYSTEMTIME pst;
LONGLONG nLL = Int32x32To64(t, 10000000) + 116444736000000000;
ft.dwLowDateTime = (DWORD)nLL;
ft.dwHighDateTime = (DWORD)(nLL >> 32);
FileTimeToSystemTime(&ft, &pst);
return pst;
}
ntp配置和时间同步
在命令提示符中执行如下命令,重启服务:
C:\>net stop w32time
C:\>net start w32time
设置NTP服务器地址
以管理员身份打开命令提示符,请依次单击
「开始」–“所有程序”–“附件”–右键单击“命令提示符”–“以管理员身份运行” ,如果出现“用户帐户控制”对话框,请确认所显示的是您要执行的操作,然后单击“继续”。在命令提示符下键入以下命令(PeerList 是以逗号分隔的DNS 名称或时间源IP 地址列表):
C:\> w32tm /config /syncfromflags:MANUAL /manualpeerlist:”168.1.2.3,0×08 168.4.5.6,0×08″ /update
C:\> w32tm /resync /rediscover
完成后输入以下命令查看当前时间服务器设置:
C:\> w32tm /query /peers
启动自动时间同步服务
修改Windows Time服务为自启动:
进入服务管理器,将Windows Time调整为 “自动(延迟启动)”
修改完毕后需重启Windows Time服务。
也可在命令提示符中键入以下命令,重启服务:
C:\>net stop w32time
C:\>net start w32time
可以进入命令行模式,查看当前Windows Time服务运行情况:
C:\>w32tm /query /status
建议使用 ntpd for windows,这是一个ntp的windows版,操作和linux相似
下载:https://www.meinbergglobal.com/english/sw/ntp.htm#ntp_nt
目前版本是ntp-4.2.8p7,经测试可以在win7上使用。
1、下载安装,都很简单,下一步完成。
2、配置,基本和linux差不多,安装应用目录
点击Edit Ntp Configuration,进行ntp配置,参考linux配置
#默认拒*所有来源的任何访问 restrict default noquery nopeer nomodify notrap restrict -6 default noquery nopeer nomodify notrap # allow status queries and everything else from localhost # 允许本地访问 restrict 127.0.0.1 restrict -6 ::1 # if you need to allow access from a remote host, you can add lines like this: # restrict <IP OF REMOTE HOST> # 设置自己需要访问的网段地址 restrict 10.102.145.0 mask 255.255.255.0 nomodify restrict 10.20.0.0 mask 255.255.0.0 nomodify # Use drift file driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift" # your local system clock, could be used as a backup # (this is only useful if you need to distribute time no matter how good or bad it is) # 按自己需求增加上层NTP服务器 server 0.centos.pool.ntp.org prefer server 1.centos.pool.ntp.org server 2.centos.pool.ntp.org server us.npt.org.cn # but it should operate at a high stratum level to let the clients know and force them to # use any other timesource they may have. fudge 127.127.1.0 stratum 10 # End of generated ntp.conf --- Please edit this to suite your needs
使用菜单中的Restart Ntp Server 重启服务。
使用Quick NTP Status查看NTP服务的状态,其实就是 watch ntpq -p;如果如下图,基本就成功了
然后就是你的服务器端设置了。
下面再说下一些术语解释:
# 1. 关于权限设定部分
# 权限的设定主要以 restrict 这个参数来设定,主要的语法为:
# restrict IP mask netmask_IP parameter
# 其中 IP 可以是软件地址,也可以是 default ,default 就类似 0.0.0.0
# 至于 paramter 则有:
# ignore :关闭所有的 NTP 联机服务
# nomodify:表示 Client 端不能更改 Server 端的时间参数,不过,
# Client 端仍然可以透过 Server 端来进行网络校时。
# notrust :该 Client 除非通过认证,否则该 Client 来源将被视为不信任网域
# noquery :不提供 Client 端的时间查询
# notrap :不提供trap这个远程事件登入
# 如果 paramter 完全没有设定,那就表示该 IP (或网域)“没有任何限制”
restrict default nomodify notrap noquery # 关闭所有的 NTP 要求封包
restrict 127.0.0.1 #这是允许本级查询
#在192.168.0.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了
restrict 192.168.0.1 mask 255.255.255.0 nomodify
# 2. 上层主机的设定
# 要设定上层主机主要以 server 这个参数来设定,语法为:
# server [IP|HOST Name] [prefer]
# Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数
# 后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为
# 时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,
# 所以可以使用 driftfile 来规定我们的主机
# 在与 Time Server 沟通时所花费的时间,可以记录在 driftfile
# 后面接的文件内,例如下面的范例中,我们的 NTP server 与
# cn.pool.ntp.org联机时所花费的时间会记录在 /etc/ntp/drift文件内
server 0.pool.ntp.org
server 1.pool.ntp.org
注:windows原生的做ntp服务不是很稳定,建议重要环境不要使用,不然要死翘翘
1. 修改注册表项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
Enabled 设定为 1(默认0)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\
AnnounceFlags 设定为 5 (默认 10)
2. 禁用防火墙或设置例外,UDP 123端口。
3. 运行 services.msc,将Windows Time服务设置成自动(延迟启动)
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值’来传递对象。
python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址
如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]。
!!!注意这一点,这可是可以引起重大错误的。。。
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速 |