NTP 服务简介+配置+修改linux时区,时间

发布时间:2016-12-10 22:53:36 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"NTP 服务简介+配置+修改linux时区,时间",主要涉及到NTP 服务简介+配置+修改linux时区,时间方面的内容,对于NTP 服务简介+配置+修改linux时区,时间感兴趣的同学可以参考一下。

本文介绍了时间服务器常用的二种协议:SNTP和TIME,并就局域网环境下各种系统(Linux、Windows98、2000、XP)时间服务的设置分别进行了说明,最终实现整个局域网环境下所有电脑时钟的同步与校准。 1、什么是网络时间服务 网络时间服务Net Time Service与网络文件下载服务FTP、网络浏览服务WWW等一样,是一种网络服务,提供网络时间服务的电脑叫网络时间服务器。当然有些时间服务器是纯硬件结构的,通过GPS卫星信息来获取时间,其外观与一台交换机相似,不在文本介绍之列。本文主要介绍一台电脑如何通过网络获取上级时间服务器提供的标准时间,再服务于本单位的局域网,使一个单位的所有电脑都能与标准时间保持同步,时间误差一般小于0.5秒。 TCP/IP协议中,用于同步时间的协议为NTP协议,它是由美国德拉瓦大学的David L. Mills教授于1985年提出,除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,它是设计用来在Internet上使不同的机器能维持相同时间的一种通讯协议。时间服务器(timeserver)是利用NTP的一种服务器,通过它可以使网络中的电脑保持时间同步。 NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。 SNTP(Simple Network Time Protocol)是NTP的一个子集,目的是为了那些不需要NTP实现复杂性网络时间同步的主机。通常用于局域网上的若干台主机通过互联网与其他的 NTP主机同步时钟,接着再向局域网内其他客户端提供时间同步服务。SNTP一般使用UDP的123端号,Linux系统和Windows系统都支持它,是现在架设网络时间服务器的主流协议。 Time Protocol (RFC-868)协议是一种较简单的协议。此协议提供了一个独立于站点的,机器可读的日期和时间信息。时间服务返回的是从1900年1月1日午夜到现在的秒数。该协议通过TCP或UDP的37端口提供服务。Linux下的TIME服务提供该服务,Windows系统中较少使用。  现在网上的许多时间校准软件,有些支持SNTP协议、有些支持TIME协议,有些二者都支持,我们在选择时要特别注意。另外在Windows系统的对等网中,还有使用 “net time 机器名 /set /yes”命令使用netbios协议进行时间校准,由于这种方法不支持混合网络和跨网段网络,本文也不特别介绍。 2、时间服务器有何用 也许有人认为电脑的时钟有点误差影响不大,其实这是非常错误的。电脑系统中的文件保存、文件传输、电子邮箱中的时间戳都是以电脑时钟为准的。如果今后我们想进行文件查找、日志查询,如果系统时钟不准,或同一网络中的电脑时间不同步,将给后续工作带有许多麻烦。现在许多备份软件、编译软件、FTP工具都是以文件保存时间为依据进行比较的,如果时间不统一,将使这些软件难以正常工作。 3、服务器可连接外网时时间同步: 一般企业中,能连接外网的服务器不多,但是如果能连接到外网,我们那可以比较简单的实现时间同步: # crontab -e     加入一行:     */1 * * * * ntpdate 210.72.145.44      210.72.145.44 为中国国家授时中心服务器地址,这样该机每隔1分重就可以与国家授时中心进行同步了。     注意: 在使用ntpdate 命令时, ntpd 服务必须是关闭的, 否则会报the NTP socket is in use, exiting 错误。 关闭 ntpd 服务命令如下: [[email protected] init.d]# /etc/init.d/ntpd stop Shutting down ntpd:                                        [  OK  ] 3、如何使局域网内的所有电脑时钟同步 首先要在互联网上寻找一台或几台专门提供时间服务的电脑(以下称为主时间服务器)。现在有不少机构免费提供标准时钟服务,在http: //www.ntp.org中专门介绍有不少时间服务器地址。推荐大家在平时使用pool.ntp.org这个地址,因为这个域名在DNS解析时会从一组时钟服务器的IP中随机选取,非常合适一般用户使用。大家也可以在搜索引擎中以“public time server”为关键词搜索一下,找出离你较近的时间服务器。 其次选择单位中能上网的一台电脑,让它与主时间服务器同步,这台电脑可以是Linux主机,也可以是win98、2000、XP主机。同时把这台电脑设为局域网内部的时间服务器(以下称为时间服务器),供局域网内部的所有电脑校对时间。 再在单位内部的所有电脑上设置时间服务的客户端,如果客户机为win2000、XP或Linux系统,不需要安装任何软件。如客户机为win98系统时要根据时间服务器类型的不同而区别对待:如果时间服务器选用SNTP协议进行时钟同步,则win98机上需安装一个sntp客户端软件,如时间服务器由 windows电脑通过netbios协议提供,则win98上也不需要安装任何软件。 4、设置时间服务器 以下分Linux、Win98、Win2000XP三种情况分别介绍,而且只介绍sntp服务的架设,timeserver服务和netbios对时服务由于应用很少,不做介绍。 1、Linux主机做时间服务器(以RedHat9.0为例) 第一步:检查是否已经安装有ntp软件包。输入“rpm -qa|grep ntp”,如果已经安装应该显示“ntp-4.1.2-0.rc1”。 [[email protected] ~]# rpm -qa|grep ntp ntp-4.2.2p1-9.el5_4.1 第二步:安如果没有装ntp软件,从linux安装盘的Server文件夹中(或从[url]ftp://ftp.redhat.com[/url]下载)找rpm包,输入“rpm -ivh ntp-xxx.rpm”执行安装。 第三步:配置ntp服务。备份原/etc/ntp.conf文件后, vi /etc/ntp.conf ①、第一种配置:允许任何IP的客户机都可以进行时间同步 #restrict default kod nomodify notrap nopeer noquery restrict default modify notrap ②、第二种配置:只允许192.168.2.0网段的客户机进行时间同步 在restrict default nomodify notrap noquery(表示默认拒绝所有IP的时间同步)之后增加一行: restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap 在最后添加如下内容     server pool.ntp.org               server pool.ntp.org               server pool.ntp.org               driftfile /etc/ntp/drift 三行server都设pool.ntp.org是为了提供连接冗余,当第一个地址连接失败时,后面的地址提供时间服务,注意这里的pool.ntp.org对应一组IP地址,由DNS随机分配。 第四步:启动ntp服务。输入“service ntp restart”。 为了保证以后Linux机启动后ntp服务能自动启动,还要输入“chkconfig ntpd on”。 ntpd启动后,客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable forsynchronization found”错误。 Linux下的ntp软件不但能自动与互联网上的时钟保持同步,同时本身已经是一台SNTP服务器了,可以供局域网内的电脑校对时间。建议启动 NTP服务后,先用date命令手工校正一下时间,以后系统会自动与互联网上的主时间服务器保持同步。ntp服务还有一个好处,如果当前系统的时间与标准时间有所误差,它不是马上把时间校正,而是逐步缩小与标准时间的误差,以免系统内部出现时间突变。 1.2. 架设本地时间服务器 需要修改 /etc/ntp.conf文件里的几个配置就可以了,比如本地时间服务器IP 为 10.85.10.119, 配置如下: server 210.72.145.44 prefer (中国国家授时中心服务器地址 prefer表示优先 注意把默认的server更改成这样)     server 127.127.1.0 (本地时间)     restrict 10.85.10.0 mask 255.255.255.0 nomodify (允许10..85.10.* 的IP 使用该时间服务器)     restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust (屏蔽其他IP过来更新时间)     其他的保持默认不动。      使NTP服务可以在系统引导的时候自动启动,执行:      # chkconfig ntpd on     启动/关闭/重启NTP的命令:     # /etc/init.d/ntpd start     # /etc/init.d/ntpd stop     # /etc/init.d/ntpd restart     #service ntpd restart 将同步好的时间写到CMOS里     vi /etc/sysconfig/ntpd     SYNC_HWCLOCK=yes        每次修改了配置文件后都需要重新启动服务来使配置生效。 可以使用下面的命令来检查NTP服务是否启动,你应该可以得到一个进程ID号:     # pgrep ntpd     使用下面的命令检查时间服务器同步的状态:     # ntpq -p     用ntpstat 也可以查看一些同步状态,用netstat -ntlup查看端口使用情况!   安装完毕客户端需过5-10分钟才能从服务器端更新时间!    2、Windows2000、XP做时间服务器 第一步:指定主时间服务器。在DOS方式输入“net time /setsntp:pool.ntp.org”,这里我们指定pool.ntp.org是主时间服务器,也可以是其它地址。 第二步:开始与主时间服务器同步。先关闭windowstime服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以DOS方式输入“net stop w32time”、“net start w32time”。 第三步:设置电脑的Windows time服务的启动方式为自动。在“管理工具”的“服务”界面下完成。 注意这台windows主机不能加入任何域,否则无法启动windows time服务。此时,这台windows电脑已经是互联上主时间服务器的客户了,以后每次电脑启动时,都会自动与主时间服务器校对时间。如果网络不通,电脑也会过45分钟后再次自动校对时间。需要注意的是电脑的时钟与标准时间误差不能超过12小时,否则不能自动校对,而要手动校正了。 第四步:使这台电脑成为时间服务器,供局域网内部的电脑校对时间。用“regedit”打开注册表,把 “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters”中的 LocalNTP改为1即可。 3、Windows98做时间服务器 一般不推荐Windows98系统做时间服务器,而且win98本身也不含时间服务器功能,需要安装第三方软件。本文后面介绍的nettime软件([url]http://nettime.sourceforge.net/[/url])是一个非常优秀的时间客户端软件,它可以工作在windows98、2000、XP 系统中,当选中“Allow other computers to sync to this computer”时,可以把这台电脑当做成时间服务器。 5、设置时间服务器的客户端 客户端的主要任务是连接到局域网内的时间服务器,以保持电脑的时钟与服务器同步。同样分Linux、Windows98、2000、XP几种情况介绍 1、LINUX主机 其实在上面介绍Linux系统中的ntp服务时,已经提到ntp时间服务时同时也是一个时间服务的客户端,只要把/etc/ntp.conf文件中的 “server pool.ntp.org”改为“server 内部时间服务器IP地址”即可。如不想使用ntp服务,也可使用ntp软件包中带来的ntpdate命令,只要手工执行“ntpdate 时间服务器IP地址”即可。如想每天自动对时,可以把这条命令放在cron中,注意在同一台电脑上ntp服务与ntpdate命令不能同时使用。 客户端设置:     # crontab -e    (关于crontab命令参考:http://blog.csdn.net/cymm_liu/article/details/10947471) 加入一行:     */1 * * * * ntpdate 10.85.10.119                   (本地时间服务器IP 为 10.85.10.119)   相关配置参数说明 #  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 端的时间查询 #  如果 paramter 完全没有设定,那就表示该 IP (或网域) 『没有任何限制!』 #  设定上层主机主要以 server这个参数来设定,语法为: #  server [IP|FQDN] [prefer] #  Server 后面接的就是我们上层 Time Server 啰!而如果 Server 参数 #  后面加上 perfer 的话,那表示我们的 NTP 主机主要以该部主机来作为 #  时间校正的对应。另外,为了解决更新时间封包的传送延迟动作, 使用rdate同步时间(关于rdate时间服务器的介绍参考博客:) 如果要用vmware安装RAC,则各个几点间时间必须一致,可以以一个节点作为标准,其他节点与该节点进行时间同步。 假如有两个节点: A: 10.85.10.119 B: 10.85.10.121 以A作为时间标准,B节点用A节点时间进行同步。 1、在A节点开放37端口 最简单,但也最不安全的方法是关闭防火墙:iptables -F 2. 在A节点启动时间服务 #chkconfig time on     #在系统引导的时候自动启动                   ————这一步我没有做,因为我的redhat找不到time这个服务,但其他节点同步时,并没有报错。 如果不启动该服务,则其他节点与该节点同步时间时会报错:Connect Refused 注意:要用root 用户 3、在B节点与A节点同步时间 rdate -s 10.85.10.119   可以在crontab 中做执行计划, 每分钟执行一次,这样保证时间的同步。 [[email protected] ~]# crontab -l */1 * * * * rdate -s 10.85.10.119 使用 Network Time Protocol (NTP) 服务器 1. 假如公司网络里有一个时间服务器: 10.85.10.80, 此时只需要在每个结点上修改NTP 服务配置文件,让每个结点和时间服务器进行同步即可。  # vi /etc/ntp.conf Server 10.85.10.80 prefer Driftfile /var/lib/ntp/drift Broadcastdelay 0.008 修改完后在重启一下 ntp 服务 #/etc/init.d/ntpd restart 2. 如果没有时间服务,则可以用RAC 2个结点中一个做为服务器。另一个与此服务器同步即可。  加入用node1 做服务器, 其IP 为: 10.85.10.119, 修改配置文件 #vi /etc/ntp.conf Server 127.127.1.0  -- 本地时钟 Fudge 127.127.1.0 stratum 11 Broadcastdelay 0.008 Node2 与node1 同步。  修改node2的ntp 配置文件 # vi /etc/ntp.conf Server 10.85.10.119 prefer Driftfile /var/lib/ntp/drift Broadcastdelay 0.008 修改完后在重启一下 ntp 服务 #/etc/init.d/ntpd restart 或者在node2是使用crontab 与服务器同步时间 */15 * * * * ntpdate 10.85.10.119  2、WindowsXP主机 可以按Windows2000主机的方法设置,也可双击任务栏右下角的时钟图标,打开“日期时间属性”对话框,在“Internet时间”卡片上选中“自动与Internet时间服务器同步”,并在服务器上填入内部时间服务器的IP地址即可。 6、linux主机时区查看: 1. 查看当前时区 [[email protected] ~]# date -R Mon, 02 Sep 2013 03:51:28 -0700 ——显示为西7区时间,我们接下来要改成东八区。 2. 修改设置时区   方法(1) [ 根据上面的提示,我把  TZ='Asia/Shanghai'; export TZ加到了root用户下的 .bash _profile 最后面,重新logout然后login,再次查询的时候就成功了。。。。   方法(2) 仅限于RedHat Linux 和 CentOS   timeconfig 这个方法是最简单的,一次设置永久有效。。非常的好哈哈。。。    方法(3) 适用于Debian   dpkg-reconfigure tzdata

上一篇:linux上获取本机ip的各种perl写法
下一篇:android progressDialog的使用

相关文章

相关评论