如何在Linux中安装和配置NTP服务器和NTP客户端?

How To Install And Configure NTP Server And NTP Client In Linux?

我们可能多次听说过这个词NTP服务器和客户端,而对此却知之甚少。

但是,我将在本文中清楚地告诉您有关NTP服务器和NTP客户端设置的信息

稍后让我们了解Chrony NTP客户端设置。

什么是NTP服务器?

NTP代表网络时间协议。

它是一种网络协议,可通过网络在计算机系统之间同步时钟。

换句话说,可以说,它将使通过NTP或Chrony客户端连接到NTP服务器的所有系统的时间保持相同的准确性。

NTP通常可以在公共Internet上将时间维持在数十毫秒以内,并且在理想条件下在局域网中可以达到优于1毫秒的精度。

它在端口号123上使用"用户数据报协议"(UDP)来发送和接收时间戳。 它是一个客户端/服务器应用程序,使用用户数据报协议(UDP)发送和接收时间戳。

什么是NTP客户端?

NTP客户端将其时钟同步到网络时间服务器。

什么是Chrony客户?

慢性是NTP客户端的替换。 它可以更快地同步系统时钟,并具有更好的时间精度,这对于一直不在线的系统特别有用。

为什么我们需要NTP服务器?

使组织中的所有服务器与准确的时间保持同步,以执行基于时间的作业。

为了澄清这一点,我将告诉您一个场景。 假设我们有两个服务器(Server1和Server2)。 服务器1通常在10:55完成批处理作业,服务器2需要根据服务器1作业完成报告在11:00运行另一个作业。

如果两个系统的时间都不一样,那么我们将无法按计划执行任务。 为此,我们应该设置NTP。 希望它清除了NTP的必要性。

在本文中,我们将使用以下设置进行测试。

  • NTP Server:主机名:CentOS7.2daygeek.com,IP:192.168.1.8,OS:CentOS 7

  • NTP Client:主机名:Ubuntu18.2daygeek.com,IP:192.168.1.5,OS:Ubuntu 18.04

  • NTP服务器端:如何在Linux中安装NTP服务器?

    NTP服务器和NTP客户端没有不同的软件包,因为它是客户端/服务器模型。 NTP软件包在发行官方存储库中可用,因此,请使用发行软件包管理器进行安装。

    对于Fedora系统,请使用DNF命令安装ntp。

    1
    $ sudo dnf install ntp

    对于Debian/Ubuntu系统,请使用APT-GET命令或APT命令安装ntp。

    1
    $ sudo apt install ntp

    对于基于Arch Linux的系统,请使用Pacman命令安装ntp。

    1
    $ sudo pacman -S ntp

    对于RHEL/CentOS系统,请使用YUM命令安装ntp。

    1
    $ sudo yum install ntp

    对于openSUSE Leap系统,请使用Zypper命令安装ntp。

    1
    $ sudo zypper install ntp

    如何在Linux中配置NTP服务器?

    安装NTP软件包后,请确保必须在服务器端的/etc/ntp.conf文件中取消注释以下配置。

    默认情况下,NTP服务器配置依赖于X.distribution_name.pool.ntp.org。 如果您愿意,可以使用默认配置,也可以通过访问https://www.ntppool.org/zone/@网站根据您的位置(特定于国家/地区)更改默认配置。

    举例来说。 如果您在印度,则您的NTP服务器将为0.in.pool.ntp.org,它将在大多数国家/地区使用。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # vi /etc/ntp.conf

    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict -6 ::1
    server 0.asia.pool.ntp.org
    server 1.asia.pool.ntp.org
    server 2.asia.pool.ntp.org
    server 3.asia.pool.ntp.org
    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    driftfile /var/lib/ntp/drift
    keys /etc/ntp/keys

    我们仅允许192.168.1.0/24子网客户端访问NTP服务器。

    由于默认情况下基于RHEL 7的发行版启用了防火墙,因此请允许ntp服务器/服务。

    1
    2
    # firewall-cmd --add-service=ntp --permanent
    # firewall-cmd --reload

    更新配置后,请启动服务。

    对于sysvinit系统和基于Debian的系统,我们需要运行ntp而不是ntpd。

    1
    2
    3
    # service ntpd restart

    # chkconfig ntpd on

    对于systemctl系统。 对于基于Debian的系统,我们需要运行ntp而不是ntpd。

    1
    2
    3
    # systemctl restart ntpd

    # systemctl enable ntpd

    NTP客户端:如何在Linux上安装NTP客户端?

    正如我在本文前面提到的。 没有用于NTP服务器和客户端的特定程序包。 因此,我们也可以在客户端上安装相同的软件包。

    对于Fedora系统,请使用DNF命令安装ntp。

    1
    $ sudo dnf install ntp

    对于Debian/Ubuntu系统,请使用APT-GET命令或APT命令安装ntp。

    1
    $ sudo apt install ntp

    对于基于Arch Linux的系统,请使用Pacman命令安装ntp。

    1
    $ sudo pacman -S ntp

    对于RHEL/CentOS系统,请使用YUM命令安装ntp。

    1
    $ sudo yum install ntp

    对于openSUSE Leap系统,请使用Zypper命令安装ntp。

    1
    $ sudo zypper install ntp

    我已经在CentOS7.2daygeek.com上安装并配置了NTP服务器,因此,请将其附加到所有客户端计算机上。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # vi /etc/ntp.conf

    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict -6 ::1
    <strong><span style="color: #00ff00;">server CentOS7.2daygeek.com prefer iburst</span></strong>
    driftfile /var/lib/ntp/drift
    keys /etc/ntp/keys

    更新配置后,请启动服务。

    对于sysvinit系统。 对于基于Debian的系统,我们需要运行ntp而不是ntpd。

    1
    2
    3
    # service ntpd restart

    # chkconfig ntpd on

    对于systemctl系统。 对于基于Debian的系统,我们需要运行ntp而不是ntpd。

    1
    2
    3
    # systemctl restart ntpd

    # systemctl enable ntpd

    在NTP服务重新启动后等待几分钟,以从NTP服务器获取同步时间。

    运行以下命令以在Linux上验证NTP服务器同步状态。

    1
    2
    3
    4
    5
    6
    7
    # ntpq –p
    Or
    # ntpq -pn

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *CentOS7.2daygee 133.243.238.163  2 u   14   64   37    0.686    0.151  16.432

    运行以下命令以获取ntpd的当前状态。

    1
    2
    3
    4
    # ntpstat
    synchronised to NTP server (192.168.1.8) at stratum 3
       time correct to within 508 ms
       polling server every 64 s

    最后运行date命令。

    1
    2
    # date
    Tue Mar 26 23:17:05 CDT 2019

    如果您在NTP输出中观察到明显的偏移。 运行以下命令从NTP服务器手动同步时钟。 执行命令时,请确保您的NTP客户端应处于活动状态。

    1
    # ntpdate –uv CentOS7.2daygeek.com