一、修改系统时间
#查看时区,不是则修改
[root@10-121-2-96 opt]# timedatectl set-timezone Asia/Shanghai
#禁用系统中的网络时间协议(NTP)同步
[root@10-121-2-96 opt]# timedatectl set-ntp no
#手动修改
[root@10-121-2-96 opt]# timedatectl set-time "2024-05-10 16:39:00"
#查看时间
[root@NTPSERVER ~]# date
2024年 05月 10日 星期五 16:39:03 CST
二、下载ntp的rpm包
#下载ntp
wget http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm
#下载ntp依赖
wget -c http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/autogen-libopts-5.18-5.el7.x86_64.rpm
#下载ntp依赖
wget -c http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
三、部署ntp
rpm -ivh autogen-libopts-5.18-5.el7.x86_64.rpm
rpm -ivh ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm
四、修改配置文件
#拷贝修改
cp /etc/ntp.conf.rpmnew /etc/ntp.conf
#拷贝配置文件
[root@NTPSERVER ~]# grep -Ev "^#|^$" /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 192.168.221.0 mask 255.255.255.0 nomodify notrap
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntpstats/ntpd.log # 定义ntp日志目录
pidfile /var/run/ntp.pid # 定义pid路径
- 配置文件详解
#记录系统时间与BIOS事件偏差的文件
driftfile /var/lib/ntp/drift
#允许IPV4和IPV6查询,拒绝修改
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
#放行本机localhost对NTP服务的访问,利用restrict 来管理权限控制
restrict 127.0.0.1
restrict ::1
#设置服务器无法同步外网时间,就和本地系统时间同步
server 127.127.1.0
fudge 127.127.1.0 stratum 10
##允许192.168.221.0 网段服务器进行同步,拒绝其他服务器的同步
restrict 192.168.221.0 mask 255.255.255.0 nomodify notrap
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
#用于在NTP服务器配置中包含指定路径下的密码文件
includefile /etc/ntp/crypto/pw
#用于指定NTP服务器应该读取的密钥文件的路径
keys /etc/ntp/keys
#禁用NTP服务器的监视器功能,使其不再主动提供性能和状态信息
disable monitor
# 定义ntp日志目录
logfile /var/log/ntpstats/ntpd.log
# # 定义pid路径
pidfile /var/run/ntp.pid
五、配置防火墙
firewall-cmd --zone=public --add-port=123/udp --permanent #放行端口 firewall-cmd --reload #刷新防火墙策略
#放行服务
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload
firewall-cmd --list-all
#关闭防火墙
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux #c重启生效
#临时关闭(下次开机,防火墙自启动)
systemctl stop firewalld
#查看防火墙状态
systemctl status firewalld
#永久关闭防火墙(开机时,不再启动防火墙)
systemctl disable firewalld
#常用命令
#查看版本
firewall-cmd --version
#查看帮助
firewall-cmd --help
#显示状态
firewall-cmd --state
#查看所有打开的端口
firewall-cmd --zone=public --list-ports
#更新防火墙规则
firewall-cmd --reload
#查看区域信息
firewall-cmd --get-active-zones
#查看指定接口所属区域
firewall-cmd --get-zone-of-interface=eth0
#拒绝所有包
firewall-cmd --panic-on
#取消拒绝状态
firewall-cmd --panic-off
#查看是否拒绝
firewall-cmd --query-panic
#查询指定端口是否已开
firewall-cmd --query-port=3306/tcp
#移除指定端口
firewall-cmd --permanent --remove-port=3306/tcp
六、开机自启动
#禁止chronyd开机启动
systemctl disable chronyd.service
#启动
systemctl start ntpd
#设置开机自启
systemctl enable ntpd
#查看ntp状态
systemctl status ntpd
[root@NTPSERVER ~]# cat /usr/lib/systemd/system/ntpd.service
[Unit]
Description=Network Time Service
After=syslog.target ntpdate.service sntp.service
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/ntpd
ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS
PrivateTmp=true
[Install]
WantedBy=multi-user.target
注:每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接,否则在客户端执行同步命令的时候将返回:no server suitable for synchronization found
七、客户端同步时间
wget http://blog.s135.com/attachment/200708/ntdate.tar.gz
tar zxvf ntpdate.tar.gz -c /usr/sbin/
rz
rpm -ivh ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm
#修改配置文件
[root@NTPSERVER ~]# grep -Ev "^#|^$" /etc/ntp.conf
driftfile /var/lib/ntp/drift
server 192.168.221.31 iburst
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntpstats/ntpd.log # 定义ntp日志目录
pidfile /var/run/ntp.pid # 定义pid路径
systemctl start ntpd
systemctl enable ntpd
systemctl status ntpd
ss -nlap | grep 123
# 查看ntp链接状态
[root@NTPSERVER ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 10 l 10 64 377 0.000 0.000 0.000
> remote 详细说明了我们连接到的NTP服务器。 # 本机和上层ntp的ip或主机名,“+”有连线可做候选,“*”正在使用的
> refid 表示远程服务器连接的NTP服务器。 # 上一层服务器
> st 指的是服务器的层级,指的是服务器离我们有多“近”(数字越低,越“近”,通常越好)。
> t 表示类型,具体来说是服务器使用单播、广播、多播还是多播。
> when 指的是距离上次轮询服务器的时间有多长。
> poll 表明服务器将被轮询的频率,对于示例屏幕截图中的大多数条目,轮询时间为64秒。
> reach 包含最近8次NTP更新的结果。如果所有8个都成功,这个字段将读取377。#这个数字是八进制的,正常情况下值为[0, 1, 3, 7, 17, 37, 77, 177, 377],对应的二进制为[0, 1, 11, 111, 1111, 11111, 111111, 1111111, 11111111],所以8个成功的八进制数将被表示为377。当您第一次在服务器上启动ntp守护进程时,这个数字可能需要一段时间才能达到377。
> delay 表示到达服务器的延迟时间,单位为毫秒。
> offset 指的是本地时钟和服务器时钟之间的差异。
> jitter 指的是remote和refid服务器之间的网络延迟。
######## 查看端口
[root@NTPSERVER ~]# netstat -anup | grep 123
udp 0 0 192.168.182.50:123 0.0.0.0:* 2604/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 2604/ntpd
udp6 0 0 ::1:123 :::* 2604/ntpd
九、同步硬件时钟
ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,
在/etc/sysconfig/ntpd文件中 添加【SYNC_HWCLOCK=yes】,就可以让硬件时间与系统时间一起同步。
允许BIOS与系统时间同步,也可以通过 hwclock -w 命令
十一、二进制部署ntp
1)解压部署
wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2.6.tar.gz
tar zxvf ntp-4.2.6.tar.gz
cd ntp-4.2.6
./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks
make && make install
- 编译如果报错没有c则安装gcc即可
2)修改配置
[root@NTPSERVER ~]# grep -Ev "^#|^$" /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 192.168.221.0 mask 255.255.255.0 nomodify notrap
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntpstats/ntpd.log # 定义ntp日志目录
pidfile /var/run/ntp.pid # 定义pid路径
3)启动
1)拷贝常用命令
#拷贝ntp
scp /usr/local/ntp/bin/* /usr/sbin/
#手动重启
/usr/local/ntp/bin/ntpd -c /etc/ntp.conf -p /var/run/ntp.pid
#停止服务
root@jia-VMware-Virtual-Platform:~/ntp-4.2.6# ss -nlap | grep ntp|grep -v 172.17.0.1|grep pid|head -n 2
u_dgr ESTAB 0 0 * 47653 * 12443 users:(("ntpd",pid=20674,fd=3))
udp UNCONN 0 0 192.168.50.129:123 0.0.0.0:* users:(("ntpd",pid=20674,fd=19))
#停止服务
kill 20674
mkdir -p /etc/sysconfig/
root@jia-VMware-Virtual-Platform:/usr/local/ntp/bin# cat /etc/sysconfig/ntpd
OPTIONS="-g"
---
cat << EOF > /usr/lib/systemd/system/ntpd.service
[Unit]
Description=Network Time Service
After=syslog.target
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/ntpd
ExecStart=/usr/local/bin/ntpd -u ntp:ntp $OPTIONS
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
mkdir -p /var/log/ntpstats/
mkdir -p /etc/ntp/keys
mkdir -p /etc/ntp/crypto/pw
systemctl stop ntpd
systemctl start ntpd
systemctl status ntpd
ss -nlap |grep ntp