AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • 主页
    • 系统&网络
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 14558
Accepted
Khaled
Khaled
Asked: 2010-11-24 08:50:20 +0800 CST2010-11-24 08:50:20 +0800 CST 2010-11-24 08:50:20 +0800 CST

如何设置本地 NTP 服务器?

  • 772

我使用以下方法在 Ubuntu Server 10.04 上安装了 NTP 服务器:

sudo apt-get install ntp

NTP 守护程序似乎在 123 端口上工作并侦听。

但是,我无法从另一台机器上获取时间:

sudo ntpdate -u my_ntp_server
23 Nov 18:48:41 ntpdate[2990]: no server suitable for synchronization found

有什么必要的配置吗?

server ntp
  • 3 3 个回答
  • 179496 Views

3 个回答

  • Voted
  1. Best Answer
    RobotHumans
    2010-11-24T08:54:33+08:002010-11-24T08:54:33+08:00

    这是来自 Ubuntu 论坛的一个很好的方法:http ://ubuntuforums.org/showthread.php?t=862620

    公然复制意大利面:

    如何:设置 NTP 服务器

    本教程介绍如何将您的计算机设置为本地网络时间协议 (NTP) 服务器和/或如何使用 NTP 守护程序定期维护准确的系统时间。

    什么是NTP?

    网络时间协议 (NTP) 是一种旨在将本地时钟与联网时间服务器准确同步的协议。时间服务器的 NTP 网络以分层方式设置,因此任何用户都可以在某个级别作为服务器进入系统(有关更多详细信息,请参阅 Wikipedia 页面)。

    NTP 层次结构分为不同的级别,称为时钟层。最精确的层 0 是为原子钟等保留的。下一层层 1 通常由本地连接到层 0 时钟的联网机器使用。Stratum 2...15 是 NTP 机器,它们依次连接到较低级别的时钟并相互连接。

    本指南介绍如何与 Stratum 1 和 2 机器准确同步,并全天保持系统时钟尽可能准确。还包括有关如何允许您的机器作为 Stratum 2/3 服务器运行在本地网络上的其他机器的部分。

    我必须制作NTP服务器吗?

    不……绝对不是!如果您对网络上的时钟与标准时间(以及彼此之间)有一些未知差异感到满意,那么您不必设置 NTP 服务器。我在笔记本电脑上设置了一台,以便在小于 1 毫秒的时间内同步本地网络上的多台机器,以进行生物工程实验。此外,还有各种其他优点,如下所述。

    动机:

    通常,未修改的 Ubuntu 机器使用 ntpdate ( /usr/sbin/ntpdate) 与一些外部时间服务器定期同步时钟。这种方法以粗略的分辨率(通常每天一次)同步时钟。

    计算机时钟是不完善的,并且会在白天偏离(正确的)时间服务器。此外,不同计算机的时钟漂移率不同,因此到一天结束时,不同的本地联网机器之间可能存在显着差异,这可能会干扰某些操作(例如,在将源代码移动到不同的机器?)。

    可以在网络上的机器上本地运行 NTP 守护程序。这有多个优点:首先,NTP 守护进程会逐渐“学习”本地机器的漂移率,并且可以全天纠正它。与上层时间服务器的同步一天要进行多次,并且可以同时使用许多不同的时间服务器以使同步更加准确。通过这种方式,NTP 守护程序充当准确的时间客户端,使您的系统时钟尽可能接近标准时间。

    除了维护准确的系统时钟外,NTP 守护程序还允许您网络上的机器(如果您愿意)作为 NTP 时间服务器运行。这样做将允许您本地网络上的其他机器以非常快速和准确的方式与您的 LAN 时间服务器同步,因为网络延迟被最小化。通过这种方式,网络上机器之间的时钟差异将尽可能地保持在最低限度。Mac,甚至 Windows 机器也能够与 NTP 服务器同步,如果你设置了一个。

    将机器设置为 NTP 服务器还有其他不那么个人的动机。首先,这样做可能会减少对更高级别 NTP 服务器的压力,因为 LAN 上的其他机器可能会与本​​地建立的时间服务器同步。此外,ntpdate 已被弃用,取而代之的是为 ntpd 使用 -q 标志(模仿其功能)。因此,即使您不想在后台不断运行 ntpd,ntpdate 最终也会被 ntpd 取代,所以您现在可能想熟悉它

    如何使用 ntpd 维护准确的系统时钟

    1. 安装 NTP 守护进程

    首先,安装 NTP 守护进程 (ntpd):

    sudo aptitude install ntpd
    

    如前所述,ntpd 既可以充当客户端(同步您的系统时间),也可以充当服务器(为其他机器提供准确的时间)。

    或者,您可能还想删除以前(已弃用)的时间同步程序 ntpdate。在 ntpd 工作之后这样做可能更明智

    sudo aptitude remove ntpdate
    
    1. 正确配置守护进程

    ntpd 的配置文件位于/etc/ntp.conf. 默认的 Ubuntu 文件可能需要进行一些修改才能获得最佳性能。

    您可能要修改的第一部分是要与之同步的服务器列表。默认部分可能如下所示:

    # You do need to talk to an NTP server or two (or three).
    server ntp.ubuntu.com
    

    为了尽可能获得最准确的时间,最好与多个不同的 NTP 服务器进行通信,并使它们尽可能靠近您的物理位置。网上有各种不同的服务器列表,最好的可能位于此处。关于要使用的适当服务器数量存在一些争论。一个比两个好,三个或更多可能是个好主意,只要你不要太过分。我使用的几个时间服务器的示例如下:

    server nist1-dc.WiTime.net iburst
    server ntp0.mcs.anl.gov
    server 0.us.pool.ntp.org
    server 1.us.pool.ntp.org
    server 2.us.pool.ntp.org
    server 3.us.pool.ntp.org
    

    一旦找到了一些好的服务器,将它们添加到列表中,放在'iburst'最有希望的服务器之后。例如:

    server nist1-dc.WiTime.net iburst
    

    这将导致 ntpd 在启动后非常快地与此服务器同步。否则,ntpd 将慢慢趋向于与服务器列表达成一致(这是它的本质),并且可能需要 15-20 分钟才能同步到足以充当网络其余部分的时间服务器。

    此外,在您的服务器列表底部添加一些额外的行,以在您暂时失去 Internet 连接时提供您当前的本地时间作为默认时间:

    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    

    如果您在笔记本电脑或其他计算机上运行 ntpd 并间歇性地与 Internet 断开连接,这将防止任何麻烦。

    总而言之,服务器列表应该类似于以下内容(这是我的,您的服务器可能会有所不同):

    # You do need to talk to an NTP server or two (or three).
    server nist1-dc.WiTime.net iburst
    server ntp0.mcs.anl.gov
    server 0.us.pool.ntp.org
    server 1.us.pool.ntp.org
    server 2.us.pool.ntp.org
    server 3.us.pool.ntp.org
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    
    1. 确保配置有效

    现在您的/etc/ntp.conf文件中有一个正确的服务器列表,是时候运行守护程序并查看您是否正确同步了!确保您有活动的 Internet 连接,然后运行:

    sudo /etc/init.d/ntp restart
    

    接下来,监视您的系统日志以查看您是否与时间服务器同步:

    tail -f /var/log/syslog
    

    在大约 10-15 秒内(如果您忘记在您最喜欢的服务器后面加上“iburst”,则最多需要 15-20 分钟),您应该会在系统日志中看到类似以下内容:

    Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2
    

    如果此消息从未出现,则您尚未与 NTP 服务器网络正确同步。使用以下命令检查您正在与之通信的 NTP 对等方列表:

    ntpq -c lpeer
    

    如果 'delay'、'offset' 和 'jitter' 字段不为零并且您还没有同步,这可能意味着您只需要等待一段时间。再次检查您是否已将“iburst”参数插入服务器列表!我的同龄人,供参考,如下所示:

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207
    -europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875
    -dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804
    +smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916
    +kechara.flame.o 216.218.254.202  2 u    -   64   77   89.183   68.717   1.713
    -host2.kingrst.c 99.150.184.201   2 u    -   64   77   24.306   62.121   2.608
     LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002
    
    1. 分享!(可选的)

    一旦 ntpd 运行并与您选择的时间服务器同步,您可以设置它以充当其他机器的时间服务器。为此,请将如下部分添加到/etc/ntp.conf:

    # Allow LAN machines to synchronize with this ntp server
    restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
    # You may add as many (or few) CIDR address blocks to allow to synchronize with your machine as you'd like. I included those commonly used with Linksys (192.168.1.*) and SMC (192.168.2.*) routers.
    
    1. 同步!(可选的)

    使用步骤 1-4 设置 NTP 服务器后,您可以通过各种方式将网络上的其他计算机与您的服务器同步。我在下面概述了其中的几个:

    ntpd:

    如果您在另一台机器上安装了 ntpd,则可以使用 ntp.conf 文件的服务器列表中的第一台服务器,或者可以使用 -q 选项同步一次,如下所示:

    ntpd -q [IP address of your server]
    

    ntpdate:

    如果您仍然在另一台机器上安装了 ntpdate,您可以使用它与您的服务器同步,如下所示:

    ntpdate [IP address of your server]
    

    注意:如果您在机器上运行 ntpd 并且由于某种原因仍想使用 ntpdate 来设置时间,则必须使用 -u 选项。

    视窗:

    Windows 机器使用称为简单网络时间协议 (SNTP) 的简化版 NTP,并且可以与 NTP 服务器同步。为了与您的新服务器同步,请双击时间并转到“Internet 时间”选项卡。将您的服务器的 IP 地址放在“服务器”字段中。我附上了一张 Windows XP 与 LAN 时间服务器同步的截图,如果有人感兴趣的话。

    而已!整个过程并不难,但是对于以前没有过多处理过 NTP 网络的人来说可能会感到困惑。我希望这有帮助!如果您在设置服务器时遇到任何问题,请告诉我。

    麦克风

    链接

    我发现以下链接很有帮助……您也可以!

    • https://help.ubuntu.com/7.10/server/C/NTP.html
    • http://linuxwave.blogspot.com/2007/0...tp-server.html
    • http://lists.ntp.isc.org/pipermail/q...er/011889.html
    • http://www.linuxhomenetworking.com/w...Fntp.conf_File
    • http://www.ntp.org/ntpfaq/NTP-a-faq.htm
    • 24
  2. Wastrel
    2014-03-02T07:11:31+08:002014-03-02T07:11:31+08:00

    有很多关于此的链接,在我看来,它们使程序复杂化。就我而言,我有一台机器充当代理服务器和防火墙,而我所有的其他机器都通过它连接到互联网。我不想在防火墙上打开端口。因此代理服务器必须是时间(ntp)服务器,其他机器(客户端)从它获取时间。

    您必须在所有机器上安装 ntp,并且您也应该在所有机器上安装 ntpq。

    首先,看看ntp是否工作。默认情况下,ntpd(ntp 守护程序)将在安装后立即运行,并且默认值应该可以工作。但是,ntp 不能立即生效,所以请稍等。然后,命令:

    ntpq -c lpeer
    

    应该给你看起来像这样的输出:

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +golem.canonical 193.79.237.14    2 u  170 1024  377  140.458   -0.655   3.234
    *gatekeeper.tss. 204.123.2.72     2 u  608 1024  377   84.650    2.168   0.471
    

    或者:

    ntpq --numeric --peers
    
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +91.189.89.199   193.79.237.14    2 u  652 1024  377  140.151   -0.242   2.821
    *66.7.96.1       204.123.2.72     2 u   64 1024  377   85.074    2.409   0.963
    

    如果是这样,您已连接并且您的时间服务器正在获取时间。如果没有,请使用

    ps -e | grep "ntp" 
    

    确保 ntp 正在运行,然后重试。也尝试重新启动ntp:

    sudo /etc/init.d/ntp restart
    

    在建立连接之前可能需要一些“时间”(对不起!)。守护程序不会经常轮询服务器。上面输出中的“when”列显示了自轮询服务器以来的时间(以秒为单位)。

    现在,您必须让时间服务器将时间发送到您的其他机器。

    编辑/etc/ntp.conf服务器上的文件。您必须为您的网络添加一条线路。就我而言,我有一个 10.0.0.0 网络。在 ntp.conf 文件中,我添加了以下行:

    broadcast 10.255.255.255
    

    您必须为网络的每个分段添加一条广播线路。如果您的网络像我一样简单,那么您只需要像上面这样的一条线。现在,使用上面的命令重新启动 ntp,然后使用 ntpq 再次检查,您应该会看到:

         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +golem.canonical 193.79.237.14    2 u   70 1024  377  140.151   -0.242   2.821
    *gatekeeper.tss. 204.123.2.72     2 u  506 1024  377   84.650    2.168   0.241
     10.255.255.255  .BCST.          16 u    -   64    0    0.000    0.000   0.002
    

    瞧,它正在广播。

    现在,您必须让每台客户端机器从您的广播服务器获取时间。在每一个上,编辑文件:

    /etc/ntp.conf
    

    你会看到一些指定服务器的行。

    添加一行

    server 10.10.10.1
    

    或无论您的服务器的地址是什么。然后使用上述命令在客户端计算机上重新启动 ntp。或者,您可以获取进程 ID 并杀死它,然后再次运行它。任何。

    然后,在足够的时间后,使用 ntpq 检查:

    ntpq --numeric --peers
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *10.10.10.1      66.7.96.1        3 u  123 1024  377    0.430    1.022   1.831
    

    你可以看到客户端正在使用时间服务器。

    这需要一些时间。

    • 4
  3. Sopalajo de Arrierez
    2018-07-15T15:10:05+08:002018-07-15T15:10:05+08:00

    接受的答案(至于 2018 年 7 月)对我不起作用。这种其他方法在2018 年 7 月的Ubuntu 16.04 LTS上运行良好:

    安装 NTP,如果没有安装:

    sudo apt-get update
    sudo apt-get install ntp
    

    编辑配置文件以允许 NTP 服务接收请求:

    sudo nano /etc/ntp.conf --syntax=sh
    

    取消注释这一行:

    # If you want to provide time to your local subnet, change the next line.
    # (Again, the address is an example only.)
    # broadcast 192.168.111.255
    

    至:

    # If you want to provide time to your local subnet, change the next line.
    # (Again, the address is an example only.)
    broadcast 192.168.111.255
    

    重启NTP服务:

    sudo /etc/init.d/ntp restart
    

    现在您的NTP 服务器必须正常工作并允许另一台计算机与您的同步。上述任何测试,例如ntpdate -u YourComputer应该可以正常工作。

    检查 NTP 服务是否正在运行:要确认您的 ntp 服务至少正在运行,它正在从上游服务器获取时间,运行

    $ sudo ntpq -p
    
    
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
     time.cloudflare .POOL.          16 p    -   64    0    0.000    0.000   0.001
     1.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
     2.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
     3.debian.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.001
    ....#further output omitted
    
    • 2

相关问题

  • 如何设置 Ubuntu 以将我的时钟与时间服务器同步?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve