本文主要是介绍0x04 在Debian12.0中部署NTP实现网络校时服务【base:NTP+Debian12+vSphere】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.概要
- 2.整体架构流程
- 3.技术细节
- 3.1 准备一个终端工具。
- 3.2 vSphere中新建Debian12,开启SSH配置。
- 3.3 终端工具连接Debian12的SSH
- 3.4 Debian12完成NTP配置
- 小结
- 花有重开日,人无再少年啊!
1.概要
NTP校时主要介绍一个作用,一些底层基础设施服务,满天飞的专业介绍,这里不去摘抄引用,就简单一句:你公司或者校园有严格的时间管理,包括了指纹打卡机、摄像头、门禁机、广播系统,这些东西如果没有统一的时间分发服务,那么比如下课铃声,乱七八糟的响,有点提前几分钟,有点往后几分钟;比如监控晚了几分钟,事件发生和画面不一致,这些都是问题。
这不,咱给自己搭一套ntp服务,进行统一时间管理咯。
其它内容传送门地址:
0x00 开局三层路由起内网【base:路由器+空闲物理主机(我是TP-LINK+台式机)】 |
---|
0x01 在空闲物理主机上部署vSphere【base:空闲物理设备+ESXI 8.0+vCenter Server 】 |
0x02 在Debian12.0中部署BIND9实现主DNS服务【base:BIND9+ESXI+Debian12】 |
0x03 在Debian12.0中部署BIND9实现从DNS服务【base:BIND9+Debian12+vSphere】 |
0x04 在Debian12.0中部署NTP实现网络校时服务【base:NTP+Debian12+vSphere】 |
0x05 在Debian12.0中部署LNMP实现基础环境【base: Debian12+Nginx+MySQL+PHP+ESXI】 |
0x06 在vSphere中部署Openmediavault实现轻量NAS【base:Openmediavault+vSphere】 |
0x07 在vSphere中部署TrueNAS实现业务NAS ZFS【base:NTP+vSphere】 |
0x08 在Debian12.0中部署LDAP目录访问【base:LDAP+Debian12+vSphere】 |
0x09 在Debian12.0中部署SAMBA4活动目录,实现DC域控 【base:SAMBA4+Debian12+vSphere】 |
2.整体架构流程
- 准备一个终端工具(mobaxterm、xshell、windterm)。
- vSphere中新建Debian12,开启SSH配置。
- 终端工具连接Debian12的SSH。
- Debian12完成NTP配置。
- 其它设备应用NTP校时服务器。
3.技术细节
3.1 准备一个终端工具。
mobaxterm、xshell、windterm各有千秋,都好用。windterm全免费,但是各种密码输入界面BUG,但不影响使用。
- mobaxterm网址:https://mobaxterm.mobatek.net/,下载Free版就够用了,英文界面。
- xshell网址:https://www.xshell.com/zh/xshell/,xshell自称最强,付费以后的确是的。
- windterm网址:https://github.com/kingToolbox/WindTerm,中文开源免费,各种指令补全快捷执行。
3.2 vSphere中新建Debian12,开启SSH配置。
此前我们都是通过ESXI创建或者运行主DNS的那台Debian12克隆,这次我们在vSphere上演示如何起虚拟机。Debian12的镜像之前DNS配置的时候,已经上传到ESXI中,无需二次上传。
首先正常登录进入vSphere(vCenter Server控制台)
在我们创建的集群上右键,选择新建虚拟机。
提供多种方式创建一个新的虚拟机,这里为了演示选择第一种,往后我推荐大家起一个模板,从模板创建,这样就以后不需要重复添加源这些操作。创建过程大家直接看图。
创建完虚拟机后,在虚拟机列表找到你的新虚拟机,右键——控制台——启动远程控制台,会打开提示:问你是否通过VMware workstation来管理,点击打开,你就跳转到你电脑本机安装的VMware workstation里了。什么?你电脑没有VMware workstation!装一个,别在ESXI的网页界面里折磨自己。
跳转到VMware workstation后,你发现ESXI其实是帮你在VMware workstation连接了一个远程服务器,接下来所有步骤就像正常的虚拟机哪有操作就行,安装Debian12过程中的重点地方,我会在下面截图中说明。
扫描完组件后,进入到配置主机名,以前的教程这步是跳过,到系统内再进行配置,主要是为了配合域的内容来操作,现在我们的DNS以及域都明白了,这里直接配置就行,如下
最后等待安装就行,Debian12的安装真没啥说的,动手强的兄弟批量装机,这玩意可能就三分钟内点完安装了。安装完成后,你的ssh服务是默认打开的。
3.3 终端工具连接Debian12的SSH
先在Debian12里面打开终端,su提权到root身份
su
一般开始都是DHCP获得的IP,正常情况NTP服务器IP地址是需要固定的,无论你用网络高级选项配置还是nmtui,你固定IP就行配置完成后,正常保存退出,通过“ip a”命令检查IP地址是否正确,通过ping www.baidu.com检查是否与外网通讯正常。
ip a
ping www.baidu.com
接着修改SSH配置文件,调整为默认允许root身份登录
nano /etc/ssh/sshd_config
把PermitRootLogin前面的#号去掉,后面改为yes,然后按ctrl+x再加Y确认修改(ctrl+u撤销上一步),接着重启ssh服务
systemctl restart sshd
以windtrem为例,右键新建会话,如下配置,root是你登录的用户名,正常连接即可。
进入到ssh后,再次检查
ip a
ping www.baidu.com
开局都是0配置,你的内网是即插即用的,这一步应该没毛病,有问题ping不通就去检查你的路由器。
接着去修改Debian软件仓库源,我喜欢同时指定为国内的阿里和清华源,流程如下
nano /etc/apt/sources.list
把里面的所有内容清空,把下面的内容粘贴进去,这里就提醒终端软件的好处了,wind支持你直接你在CSDN复制,然后在终端里面右键直接粘贴
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contribdeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
编辑好如下,按ctrl+x再加Y确认修改(ctrl+u撤销上一步)
接着apt-get update更新源
apt-get update
3.4 Debian12完成NTP配置
更新完源以后,注意NTP有很多组件如下,其中最核心的是ntp和ntpdate,一个是服务端,一个是客户端。这两个我们都安装,ntpstat就是方便查看ntp状态的,也可以安装
执行下面命令安装ntp内容,输入Y同意安装
apt-get install ntp
apt-get install ntpdate //ntp安装后自带安装ntpdate的
apt-get install ntpstat
安装完后,直接检测服务
systemctl status ntp.service
可以看到服务是激活的,咱们再通过另一个指令来检查和上层NTP服务器是否连接
ntpstat
可以看到,和一个IP为119.28.206.193的上层NTP服务器连接上了,是的这里你应该感觉出来了,NTP和DNS一样的,都是逐级分担业务的,那现在我们的ntp服务器能用了吗,去vCenter里面试一下,通过访问咱们vCenter server的5480端口,你进入vCenter server后台,平常创建虚拟机的那个是前台。左侧找到时间,点击配置试一下你搭建的ntp服务器。(你可以去DNS服务器把ntp服务器做一个域名解析,这里就可以填域名了)
可以发现,咱们的NTP服务器简直是省心,安装一下就能用,如果你只是追求能用,那么这个博客就到此为止了,如果你像了解更深,咱们继续研究ntp。
你可能听过原子钟,什么中子星频率校时这些名词,为什么时间对设备如此重要,这里的时间其实要细分两种:宏观上人感知的时间和机器工作需要的时序。
宏观上人感知的时间就像字面意思,比如几点上班,咱们就几点到。
机器工作需要的时序,玩过MCU、单片机的都接触过时序,开发硬件驱动,时序图必看,不然你程序无法协调硬件之间通信的时间规则,比如我们通信协议规定第一毫秒我给你锁,第二毫米你给钥匙,如果时序乱了的话锁就打不开,等价于硬件设备之间无法通信,无法工作。当然机器感受的时间尺度是以毫秒纳秒感受,人是以时分秒感受。
所以为了让全地球这么多电子设备工作在一个精准的时序上,人们不断的找频率稳定的发生源,通过监测发生源
发出的脉冲,脉冲一次的开始和结束咱们定义为时序的一个小周期,然后规定各种通信协议,在某某小周期内咱们之间协商认证,在某某周期内,咱们协商传数据。
那这与咱们部署NTP服务啥关系?当然有关系,大家不要以为提供时间的设备和使用时间的设备,同步一次一辈子就精准匹配,不同设备不同硬件随着时间推移,他们的精度之间尺度不同,必然会有差异,计算机都是0和1通信,时序有差异,那么传输数据就错位。我们需要NTP服务器来不断的每个一个月同步一次,保证误差在可接受的范围内,只不过硬件级的时间同步,咱们人没感知而已,我们更关心宏观尺度。
那么全球牛逼的时钟在哪呢?世界上第一座原子钟建于1949年,位于美国的国家度量衡标准实验室,用铯-133原子的一种特定跃迁来标记频率,然后N个周期定义了一秒,我们的国家授时中心的时间基准(铯原子钟)在临潼。
好了,NTP的历史背景我们交代了一点,那么我们直接访问铯原子钟吧,可能吗?技术上当然可以,但逻辑上不能这样干,且不论解码的各种设备多么昂贵,全中国这么多机器设备,访问这玩意也不现实,那么咱们做二级,三级,四级授时,逐级承担业务,这个思想,在咱们的NTP配置服务中叫stratum层,st值,怎么看?如下操作:
ntpq -p
通过命令查询咱们的remote远端授时服务器有那些,这里就查到了两个,st值为2,也就意味着咱们访问的是二级授时服务器,最后的offset是偏差,也就是我们的设备和这两个NTP二级授时服务器的时间补偿,当然这个是毫秒纳秒级别的。jitter这个参数代表咱们的系统时间和主板BIOS的时差,这些参数看一眼当一乐,想深入研究可以去参考维基百科。
了解完这些基础以后,我们来看看这个开局0配置就使用的NTP服务,提供那些配置,如下
nano /etc/ntp.conf
咱们先看看我们的上层NTP服务器是在哪里指定的,以及如何指定新的
看到server字段,这里添加了两个域名:0.cn.pool.ntp.org和1.cn.pool.ntp.org,CN代表中国,那么我能不能查其它的NTP服务器,可以,看到下面的网址了吗,访问它
国际校时
这个网站是搜集和登记NTP服务的,他们叫做NTP服务Pool池,你可以自己搞个牛逼的原子钟然后申请加入到他们的池里面,为别人提供服务,不过这都是幻想。咱们直接去看中国的NTP服务器吧,访问下面网址,你也可以官网点亚洲然后找中国,一样的。
中国NTP服务器列表
这里就是亚洲提供的4台NTP服务器地址,咱们加一个试一下,比如
保存,退出,重启NTP服务器,然后执行上层服务器查询命令
systemctl restart ntp.service
ntpq -p
明显看到咱们的上层NTP服务器列表变了,不过server一个两个就够了,你如果仔细阅读国际授时官网,人家还是建议你少指定NTP服务器,避免造成服务器性能的浪费,带宽的浪费。咱们回到配置,看下面的pool就很容易理解了。
这里他说咱们可以直接选用Pool配置,那么会自动帮我们分发低层级的NTP server,分发触发条件是每次开机的时候,这个咱就不演示了,pool很呆。来看下面访问控制部分。很多时候我们的NTP服务器是部署在内网,我只希望它和上层NTP服务器通信,然后只给我们的内网放行。
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
这两句先看后面参数:
- kod: 向不安全的访问者发送Kiss-Of-Death报文。
- ignore:拒绝连接到NTP服务器。
- nomodiy: 客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
- noquery: 不提供客户端的时间查询。
- notrap: 不提供trap远程登录功能,trap服务是一种远程时间日志服务。
- notrust: 客户端除非通过认证,否则该客户端来源将被视为不信任子网 。
- nopeer: 提供时间服务,但不作为对等体。
这些参数组合在一起,加上-4和-6,就等于默认把IPv4和IPv6的访问都拒绝掉。
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
这一段是默认放行本地,就是放行咱们安装NTP服务的这台本机服务器。
# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust
这一段就简单咯,你看英文介绍嘛,客户端子网访问权限的模板,作用就是放行你的内网,比这下面抄就行,记住要被notrust去掉,不然咱们没有认证会被拒绝访问,然后把nomodiy加上,避免被客户端修改。我上面已经写了一句了。这里不做演示,直接放图。
当然也可以只放行一个IP地址进入,语句例如
restrict 172.31.5.5 nomodify
怎么自定义大家自由发挥吧,这个部分也就到此为止了。还有一个内容就是NTP的授时方式,我们现在是客户端主动发申请模式,配置文件下面有服务端主动广播的:
# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255
我不建议开这个功能,这功能开了以后有些物联网小设备会抽疯,会一直更新时间更新时间。
如果你按上述配置,发现最后无法正常访问NTP服务器,一定要检查防火墙和你的ntp配置里面的访问控制的参数
小结
花有重开日,人无再少年啊!
那么到此为止,我们的NTP就全部搭建完成了,DNS和NTP算得上是这个互联网基础服务的基石,自己搭建它,体验他的逻辑,对这些基础服务的理解将会更加深刻,诸君共勉吧。
这篇关于0x04 在Debian12.0中部署NTP实现网络校时服务【base:NTP+Debian12+vSphere】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!