两台linux机器时间同步

本文介绍了如何在Linux系统中配置NTP服务实现两台主机间的时间同步。首先设置一台主机(node1)作为时间服务器,并调整其时区及时间;然后配置该主机的NTP服务允许局域网内主机访问;最后在另一台主机(node2)上进行配置以与时间服务器保持同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://blog.chinaunix.net/uid-12115233-id-1995280.html

Linux自带了ntp服务 -- /etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。

配置文件就是/etc/ntp.conf。

为了测试,设置让node2 -- 192.168.1.102和node1 -- 192.168.1.101做时间同步。

第一步,修改node1 作为同步源的时间

node1做time server,node1本身不和其他机器时间同步,就是取本地时间。
所以,先把node1机器的时间调准了:

修改node1 的时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
如果要更改为其他时区,可以在/usr/share/zoneinfo寻找,然后链接到 /etc/localtime 。当然要先删除那个文件夹目录的下localtime文件。
 
 当然也可以
可修改/etc/sysconfig/clock 
ZONE=Asia/Shanghai ( 查/usr/share/zoneinfo 下面的文件。 )
UTC=false ( 硬件时钟是否为 UTC 或者说 GMT 时钟。 )
ARC=false (如果是在 Alpha 机器上,则设置为 true 。 )


[root@node1 ~]date -s 08/03/2011 
[root@node1 ~]date -s 11:12:00

[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc

后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。

第二步,配置时间服务器

然后将node1配置成一个time server,修改/etc/ntp.conf,
[root@node1 ~]vi /etc/ntp.conf
其他的配置不怎么需要改,只需要关注restrict的配置:

1. 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。也可以不注释,那就所以的服务器都可以使用

2. 加入:restrict 192.168.1.0 mask 255.255.255.0 -- 让192.168.1.0/24网段上的机器能和本机做时间同步,可以不加

3. 这样就可以了,记得下面的:

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10

这两行需要,这是让本机的ntpd和本地硬件时间同步。

当然,我们也可以添加server xxx.xxx.xxx.xxx,让他和其他的time server时间同步。

4. /etc/init.d/ntpd restart

5. chkconfig ntpd on

6. 修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。


第三步,配置其他机器和时间服务器时间的同步

这样node1就成为一台time server了,现在我们配置node2这台机器,也是修改/etc/ntp.conf ,
[root@node2 ~]vi /etc/ntp.conf

1. restrict default ignore这行保留为注释状态,因为sales不需要做time server

2. 注释掉server 127.127.1.0, fudge 127.127.1.0 stratum 10这两行,因为这台机器不需要和本地硬件时钟同步了。

3. 加入server 192.168.1.101这行,和node1机器同步。

4. 或者说临时触发一下同步,使用命令:[root@clm-aws ~]# ntpdate 192.168.100.63
28 Aug 17:21:46 ntpdate[21874]: step time server 192.168.100.63 offset 784.945135 sec


这样就OK了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做这个时间

第四步,将ntpdate放到crontab中定期步也是可以的
[root@node2 ~]#vi ntpupdate.sh
/usr/sbin/ntpdate 192.168.1.101
[root@node2 ~]#chmod 755 ntpupdate.sh
[root@node2 ~]#crontab -e
*/1 * * * * /root/ntpupdate.sh
[root@node2 ~]#/etc/init.d/crond restart


### 配置NTP服务以实现在Linux内网环境中两台服务器间的时间同步 #### 安装NTP服务 对于基于Debian的系统,可以使用`apt-get`工具来更新软件源并安装ntp服务。执行以下命令完成操作: ```bash sudo apt-get update && sudo apt-get install ntp ``` 这将确保ntp被正确部署到目标机器上[^2]。 #### 查看已有NTP服务状态 如果不确定当前操作系统是否已经预装了ntp服务,可通过查询已安装包列表的方式确认是否存在该服务。具体方法取决于所使用的发行版;例如,在Red Hat系发行版中可运行如下指令: ```bash rpm -qa | grep ntp ``` 上述命令用于检索所有名称中含有“ntp”的已安装程序包[^3]。 #### 修改NTP配置文件 为了使一台服务器作为另一台或几台其他设备的时间源,需编辑/etc/ntp.conf配置文档。假设A机为时间提供者,则应在B机上的此文件里指定指向A机IP地址的服务端点,并允许其向A请求时间校准数据。通常情况下只需添加一行类似于下面的内容至客户端(即接收方)的配置文件中: ```plaintext server A_MACHINE_IP prefer iburst ``` 这里的`prefer`关键字表示当存在多个可用时间源时优先选用本条目定义的那个;而`iburst`参数则有助于加速初次建立联系的过程[^1]。 #### 启动与重启NTP服务 每次修改完配置之后都应记得重新加载或重起ntp进程以便应用更改。大多数现代Linux发行版支持通过systemctl管理守护进程生命周期,因此可以用下列任一方式激活新设定: ```bash sudo systemctl restart ntp.service # 或者 sudo service ntp restart ``` 另外,还可以利用`ntpq -p`命令即时监控正在运作中的peer关系及其质量状况,以及借助`ntpstat`检查本地节点同上级time server之间的同步进度——后者可能需要等待几分钟才能建立起稳定可靠的连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值