配置ntp服务器

背景 web服务器可以上网 而数据库服务器禁网。但需要同步网络时间,本地又没有ntp服务器可以同步。
思路:web同步网络时间且做ntp服务端

数据库同步web机器的时间
  • A:192.168.15.173 (ntp服务端)
  • B:192.168.15.174 (ntp客户端)

安装下ntp包 其实默认是有安装的。

1
yum install -y ntp  #A与B机器都要安装

服务端

1、修改配置vi /etc/ntp.conf
注释掉这个行

1
restrict default kod nomodify notrap nopeer noquery

解释:上面那行表示:拒绝客户端的所有操作

字段 解释
default 就是指所有的IP
ignore 关闭所有的 NTP 联机服务
nomodify 客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust 客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery 不提供客户端的时间查询
notrap 不提供trap远端登陆,拒绝为匹配的主机提供模式 6 控制消息陷阱服务。
陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序

2、添加这两行:

1
2
restrict -4 default kod notrap nomodify
restrict -6 default kod notrap nomodify

-4 与 -6 表示 IPV4与IPV6


3、将第一server 修改为阿里的ntp服务器 将其配置为上层ntp

1
2
3
4
server ntp1.aliyun.com iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
如果你是自己是上层ntp的话,则将上面的 server 注释掉
然后添加:
server 127.127.1.0
fudge 127.127.1.0 stratum 10

4、重启ntp服务

1
service ntpd restart

5、查看端口 可以看出 ntp使用了123端口 协助为UDP

1
2
3
4
5
6
7
[root@A机器 ~]# netstat -tuplan | grep 123
udp 0 0 192.168.15.173:123 0.0.0.0:* 1293/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 1293/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 1293/ntpd
udp 0 0 ::1:123 :::* 1293/ntpd
udp 0 0 fe80::250:56ff:febe:eb5:123 :::* 1293/ntpd
udp 0 0 :::123 :::* 1293/ntpd

6、查看ntp到上层ntp服务器状态如何

1
2
3
4
[root@A机器 ~]# ntpstat 
synchronised to NTP server (120.25.115.20) at stratum 3 #stratum 3 层数在3
time correct to within 35 ms #花费的时间
polling server every 1024 s

客户端

方式一:
1、B机器 可以简单粗暴的使用 ntpdate 命令同步

1
2
[root@B机器 ~]# ntpdate 192.168.15.173
11 Sep 13:39:47 ntpdate[30768]: adjust time server 192.168.15.173 offset 0.001383 sec

2、结合cron定时任务来同步(注意要使用root):

1
0 */1 * * * /usr/sbin/ntpdate  192.168.15.173

方式二:
1、配置 vi /etc/ntp.conf
将第一个server设置为:

1
server 192.168.15.173

2、重启ntpd服务后 时间过一会儿就会同步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@B机器 ~]# date -s "20180302 11:00:00"   #设置个错误的时间
20180302日 星期五 11:00:00 CST
[root@B机器 ~]# systemctl restart ntpd
[root@B机器 ~]# date
20180302日 星期五 11:00:43 CST
[root@B机器 ~]# date
20180302日 星期五 11:00:49 CST
[root@B机器 ~]# date
2019年 09月 11日 星期三 16:18:55 CST #同步成功
[root@B机器 ~]# date
20190911日 星期三 16:18:56 CST

[root@B机器 ~]# systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since 五 2018-03-02 11:00:41 CST; 1 years 6 months ago
Process: 30993 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 30994 (ntpd)
CGroup: /system.slice/ntpd.service
└─30994 /usr/sbin/ntpd -u ntp:ntp -g

3月 02 11:00:41 B机器 ntpd[30994]: Listening on routing socket on fd #22 for interface updates
302 11:00:45 B机器 ntpd[30994]: Deferring DNS for 3.centos.pool.ntp.org 1
302 11:00:45 B机器 ntpd[30994]: 0.0.0.0 c016 06 restart
302 11:00:45 B机器 ntpd[30994]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
302 11:00:45 B机器 ntpd[30994]: 0.0.0.0 c011 01 freq_not_set
302 11:00:45 B机器 ntpd[30996]: signal_no_reset: signal 17 had flags 4000000
302 11:00:47 B机器 ntpd_intres[30996]: DNS 3.centos.pool.ntp.org -> 193.228.143.22
302 11:00:50 B机器 ntpd[30994]: 0.0.0.0 c61c 0c clock_step +48230285.315134 s
911 16:18:55 B机器 ntpd[30994]: 0.0.0.0 c614 04 freq_mode
911 16:18:57 B机器 ntpd[30994]: 0.0.0.0 c618 08 no_sys_peer

最后

设置 ntp服务器开启自启

centos6.x:

1
chkconfig ntpd on

centos7.x:

1
2
3
4
5
6
[root@nessus ~]# systemctl list-unit-files  | grep ntpd
ntpd.service disabled
[root@nessus ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@nessus ~]# systemctl list-unit-files | grep ntpd
ntpd.service enabled

上述教程完毕

#其他

生产遇到的问题:

1
2
3
[root@ruiweb ~]# ntpdate  ntp1.aliyun.com 
11 Sep 16:29:44 ntpdate[27682]: the NTP socket is in use, exiting
[root@ruiweb ~]#

说明NTP服务启动了 直接使用ntpdate是不行的。想要手工执行ntpdate,就要关闭ntpd服务

生产遇到的问题2:

网络到阿里的时间服务器是通的 但网络时间同步不了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ruidb ~]# ping ntp1.aliyun.com
PING ntp1.aliyun.com (120.25.115.20) 56(84) bytes of data.
64 bytes from 120.25.115.20: icmp_seq=1 ttl=46 time=35.1 ms
64 bytes from 120.25.115.20: icmp_seq=2 ttl=46 time=35.0 ms
64 bytes from 120.25.115.20: icmp_seq=3 ttl=46 time=34.7 ms
64 bytes from 120.25.115.20: icmp_seq=4 ttl=46 time=34.6 ms
^C
--- ntp1.aliyun.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3324ms
rtt min/avg/max/mdev = 34.698/34.909/35.130/0.230 ms

[root@ruidb ~]# ntpdate ntp1.aliyun.com
11 Sep 16:33:09 ntpdate[13663]: no server suitable for synchronization found
[root@ruidb ~]#

通过 -d 参数来显示过程
-d : 开启调试模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@ruidb ~]# ntpdate  -d ntp1.aliyun.com  
11 Sep 16:36:32 ntpdate[13721]: ntpdate 4.2.6p5@1.2349-o Wed Dec 19 20:22:35 UTC 2018 (1)
Looking for host ntp1.aliyun.com and service ntp
host found : 120.25.115.20
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)
120.25.115.20: Server dropped: no data
server 120.25.115.20, port 123
stratum 0, precision 0, leap 00, trust 000
refid [120.25.115.20], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Mon, Jan 1 1900 8:05:43.000
originate timestamp: 00000000.00000000 Mon, Jan 1 1900 8:05:43.000
transmit timestamp: e1233093.43204c07 Wed, Sep 11 2019 16:36:35.262
filter delay: 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

11 Sep 16:36:36 ntpdate[13721]: no server suitable for synchronization found
[root@ruidb ~]#

###后来发现是内部网络中限制123端口的数据包

这个是错误的请求过程

1
2
3
4
5
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)
transmit(120.25.115.20)

这个是正确的请求过程

1
2
3
4
5
6
7
8
transmit(120.25.115.20)
receive(120.25.115.20)
transmit(120.25.115.20)
receive(120.25.115.20)
transmit(120.25.115.20)
receive(120.25.115.20)
transmit(120.25.115.20)
receive(120.25.115.20)

transmit:发射
receive:接收

# linux
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×