在Linux上安装诸如k8s之类的集群系统时,需要我们在各个节点之间进行时间同步。有的时候,因为内网网络原因,无法连接公共ntp server进行同步,会出现以下类似错误。
[root@localhost ~]# ntpdate 0.cn.pool.ntp.orgError resolving 0.cn.pool.ntp.org: Name or service not 电脑 known (-2) 6 Apr 22:36:56 ntpdate[1310]: Can't find host 0.cn.pool.ntp.org: Name or service not known (-2) 6 Apr 22:36:56 ntpdate[1310]: no servers can be used, exiting
这个时候,我们可以用能联网windows工作电脑来做ntp server,为内网的linux机器同步时间,前提是windows与内网的linux机器能互通。下面就讲一下具体的步骤,实验环境如下:
一台Windows 11 家庭中文版笔记本一台装在virtualbox里的centos7虚拟机centos7虚拟机关闭了nat网络,开启了host-only网络。检查连通性在window上查看ip地址
ipconfig
在centos里ping一下上面的ip(192.168.56.1),验证一下能否ping通windows
ping 192.168.56.1
如下图所示,表示可以ping通。
设置windows时间服务器点击搜索,输入【regedit】,打开注册表编辑器
在注册表编辑器的地址栏里输入
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
双击右边的【Enabled】将其值改为1,点击确定启用ntp server。
在注册表编辑器的地址栏里输入
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
双击右边的【AnnounceFlags】将其值改为5,点击确定使其为可靠源。
点击搜索,输入【服务】,打开服务管理器,
找到【windows time】服务,双击,并将其设置为开机自动启动
右键单击,选择启动或重启windows time服务
命令行输入以下命令验证设置是否成功
w32tm /stripchart /computer:127.0.0.1
如下图所示表示设置成功
设置windows防火墙点击搜索,输入【防火墙】,打开windows 防火墙
选择【高级设置】→【入站规则】→【新建规则】
选择【端口】→【下一页】
选择【UDP】→【特定本地端口】→输入【123】→【下一页】
选择【允许连接】→【下一页】
选择【公用】→【下一页】
输入名称完成设置
为了安全起见,这里设置ip限制
双击【ntp server】→【作用域】→【本地ip地址】→【下列ip地址】→【添加】→【此ip地址或子网】→输入【192.168.56.0/24】→【确定】
对【远程ip地址】进行同样操作,最终结果如下,点击确定完成
在centos上使用windows时间服务器使用windows 的ip作为ntp server,输入如下命令,同步时间
ntpdate 192.168.56.1
如下代表设置成功
[root@localhost ~]# ntpdate 192.168.56.1 7 Apr 00:42:14 ntpdate[9236]: adjust time server 192.168.56.1 offset -0.001146 sec[root@localhost ~]# dateThu Apr 7 00:43:01 CST 2022
以上就是本次全部内容,下次再见。
相关系列视频教程如下:
开发环境小助手
电脑