В моей сети есть надежный NTP-сервер, с которым синхронизируются все ПК. Из-за различных проблем, которыми известна служба времени Windows (по крайней мере, в Windows 7 и более ранних версиях), я отключил ее на машинах Windows и вместо этого установил порт NTPD Майнберга для Windows.

Это надежно работало в течение многих лет на всех ПК, которые я когда-либо тестировал, но сегодня у меня возникла проблема с одним из моих компьютеров с Windows (Windows 7 Pro x64, все обновления применены на момент написания этой статьи).

Обратите внимание, что C:\Program Files (x86)\NTP\etc\ntp.conf на этом компьютере буквально такой же, как и на всех других ПК с Windows в этой сети, за исключением последней строки (см. Ниже).

ntpd.conf (на проблемной машине некоторые комментарии удалены):

restrict default noquery nopeer nomodify notrap  
restrict -6 default noquery nopeer nomodify notrap  

# allow status queries and everything else from localhost 
restrict 127.0.0.1 
restrict -6 ::1 

# if you need to allow access from a remote host, you can add lines like this: 
# restrict <IP OF REMOTE HOST> 

# Use drift file 
driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift"

# Use specific NTP servers
server timeserver.in.my.local.network iburst minpoll 6 maxpoll 7

# End of generated ntp.conf --- Please edit this to suite your needs

interface ignore wildcard
interface ignore ipv6
interface listen 127.0.0.1
interface listen 192.168.20.100

Конечно, последняя строка отличается на разных компьютерах. И да, я действительно не хочу, чтобы ntpd прослушивал каждый интерфейс / IP-адрес, а только "основной" IP-адрес и localhost .

Эта проблема:

В качестве первого быстрого теста, который я делаю на каждом ПК после установки, я открыл cmd32 качестве administrator на рассматриваемом ПК и запустил

C:\Program Files (x86)\NTP>ntpq -p

Это привело к следующему сообщению об ошибке:

ntpq: read: No such file or directory

Я сначала поверил тому, что он сказал, и проанализировал его поведение с помощью ProcessMonitor , но безрезультатно. Я не мог найти ни одного намека на то, что он не может открыть файл. Я почесал голову некоторое время, а затем попытался

C:\Program Files (x86)\NTP>ntpq -p 192.168.20.100

На этот раз я получил

192.168.20.100: timed out, nothing received
***Request timed out

Итак, очевидно, в соответствии с моими выводами из ProcessMonitor , нет проблем с чтением файла, но, возможно, с открытием сетевого устройства.

Как ни странно,

C:\Program Files (x86)\NTP>ntpq -p 127.0.0.1

дал ожидаемый результат:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.20.10 ( 192.53.103.108   2 u    8  128  377    0.977    0.194   0.977

Это заставило меня снова почесать голову. Для тестирования я отключил брандмауэр Windows на этом компьютере (и там не было установлено никакого другого брандмауэра), но ntpq -p и ntpq -p 192.168.20.100 прежнему выдавали те же сообщения об ошибках, что и раньше.

В качестве последнего теста я побежал

C:\Program Files (x86)\NTP>netstat -abno

и получил

Active Connections

  ...
  UDP    127.0.0.1:123          *:*                                    5076
 [ntpd.exe]    
  ...
  UDP    192.168.20.100:123     *:*                                    5076
 [ntpd.exe]
  ...

Таким образом, ntpd прослушивает IP-адреса из файла конфигурации, как и ожидалось.

Конечно, перезапуск службы и даже перезагрузка этого компьютера не помогли.

Теперь у меня заканчиваются идеи. Что может быть причиной того, что ntpq может общаться с одним из IP-адресов, которые слушает ntpd , но не с другим, даже когда брандмауэр полностью отключен?

0