NTPD: используйте неограниченный порт для связи

StackOverflow https://stackoverflow.com/questions/232722

  •  04-07-2019
  •  | 
  •  

Вопрос

При запросе серверов ntp с помощью команды ntpdate я могу использовать аргумент -u , чтобы сделать исходный порт неограниченным (порт 1024 и выше).

С ntpd, который предназначен для работы в фоновом режиме, я не могу найти способ включить эту опцию. Таким образом, порт источника всегда 123. Он ужасно играет с моей конфигурацией брандмауэра.

Есть ли в ntp.conf параметр конфигурации, позволяющий использовать случайный исходный порт?

Это было полезно?

Решение

Не похоже, что это возможно ... см. страница устранения неполадок ntp :

  

Если вы собираетесь запустить ntpd, вам нужно исправить свою сеть / брандмауэр / NAT, чтобы ntpd мог иметь полный неограниченный доступ к UDP-порту 123 в обоих направлениях.

     

Если это невозможно, вам может потребоваться запустить ntpd на самом брандмауэре, чтобы он мог иметь полный неограниченный доступ к UDP-порту 123 в обоих направлениях, а затем предоставлять время вашим внутренним клиентам.

     

Если это невозможно, единственным вариантом для вас может быть покупка необходимого оборудования для подключения к одному или нескольким вашим компьютерам и запуск вашего собственного сервера времени Stratum 1 или покупка предварительно упакованного сервера времени Stratum 1.

Другие советы

Мне удалось решить эту проблему, заменив официальный NTPD на OpenNTPD. В то время как официальный NTPD привязан к порту UDP 123, OpenNTPD использует непривилегированные порты.

У меня была эта проблема раньше, и я не мог найти решение. В итоге я просто добавил запись в crontab, которая запускает ntpdate один раз в час. Это дает достаточно хорошее разрешение для всего, что я делаю, так как мои часы никогда не дрейфуют более 1 секунды в час.

Вы не можете изменить порт NTP, но вы можете добавить iptables cmd, чтобы перенаправить его через порт VPN.

Подробности: http://openvpn.net/archive/openvpn- пользователи / 2007-11 / msg00223.html

Как писал @Andy_Whitfield, ntpd не может этого сделать. Но есть альтернативы, такие как OpenNTPD и Chrony . AFAIK, Chrony также используется Android.

В моей настройке я использую хрони. Он использует непривилегированный порт для запроса удаленных серверов. У этой техники гораздо больше шансов пройти NAT. Это тот же механизм, который ntpdate -q использует для запросов к серверу, но только при вызове от имени непривилегированного пользователя.

Я думаю, что главная проблема, почему это иногда не работает, состоит в том, что многие маршрутизаторы сами реализовали NTP для установки своих внутренних часов. На этих устройствах порт используется и, следовательно, не может быть NAT. Это может даже иметь место, если устройство не отвечает на запросы NTP.

Вы можете использовать исходный NAT на хосте, на котором работает ntpd, чтобы заменить исходный порт 123 номером порта выше 1024.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top