Debain 콘솔만 포함된 시스템이 있습니다.
방금 시계가 업데이트되지 않는다는 것을 깨달았습니다.
$ date
Mon 10 Aug 20:33:23 BST 2020
$ ntpdate
10 Aug 20:27:45 ntpdate[8029]: no servers can be used, exiting
$ ntpdate-debian
10 Aug 20:28:20 ntpdate[8038]: the NTP socket is in use, exiting
$ sudo ntpdate
10 Aug 20:33:53 ntpdate[8371]: no servers can be used, exiting
$ sudo ntpdate-debian
10 Aug 20:28:20 ntpdate[8038]: the NTP socket is in use, exiting
사실:
- 잘못된 구성으로 인해 ntpdate가 작동하지 않습니다(나중에 구성을 확인하십시오).
- 소켓이 사용 중이므로 ntpdate-debin이 작동하지 않습니다(ntp 서비스가 실행 중임).
"ntp 서비스"를 중지한 후:
$ sudo service ntp stop
$ sudo ntpdate
10 Aug 20:33:53 ntpdate[8371]: no servers can be used, exiting
$ sudo ntpdate-debian
1 Apr 17:25:24 ntpdate[8383]: step time server a.b.c.d offset 83278265.128578 sec
$ sudo service ntp start
보시다시피 ntp 서비스를 중지한 후에도 ntpdate
여전히 실행할 수 없지만 ntpdate-debian
마침내 올바른 날짜를 설정할 수 있습니다.
"ntp 서비스"가 백그라운드에서 자동으로 작업을 수행하도록 다음 구성을 어떻게 변경할 수 있습니까?
driftfile /var/tmp/ntp/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
pool 0.europe.pool.ntp.org iburst
pool 1.europe.pool.ntp.org iburst
pool 2.europe.pool.ntp.org iburst
pool 3.europe.pool.ntp.org iburst
server 0.debian.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery
내 구성에 문제가 있나요? 심지어 수동으로 실행하면 작동하는 "0.debian.pool.ntp.org"도 포함되어 있습니다:
ntpdate -q 0.debian.pool.ntp.org
답변1
Debian 버전을 언급하지 않았지만 Debian 10( buster
현재 "oldstable") 이하인 것 같습니다. NTP 코드의 상태는 NTP 제품군의 주요 개발자가 은퇴한 이후 정체되었습니다(David L. Mills, 84).
Debian 11이 출시되었을 때 두 최신 업스트림 버전은 꽤 오래 ntpdate
되었고 ntpd
여러 가지 알려진 보안 취약점이 있었기 때문에 Debian 11은 궁극적으로 최신 NTP 구현을 권장했습니다 chrony
. 그러나 클래식 ntpdate
과 ntpd
.
사용되는 유일한 구성 파일 /usr/sbin/ntpdate
은 입니다 /etc/ntp.keys
. 다른 모든 파일은 명령줄이나 호출된 스크립트에서 지정해야 합니다 /usr/sbin/ntpdate
.
ntpdate-debian
/etc/default/ntpdate
그 안에 구성된 타임서버를 읽고 사용하는 스크립트입니다 .
/etc/ntp/ntp.conf
NTP 서비스(프로세스)에만 적용 됩니다 ntpd
.
ntpdate
sudo ntpdate
다른 매개변수가 없으면 ntpdate
이와 같이 호출할 때 어떤 서버를 사용할지 알 수 없기 때문에 오류가 정상적이고 예상된 것처럼 보입니다.
및 ntpdate
( ntpd
=ntp 서비스)는 모두 로컬 UDP 포트 123을 사용하려고 시도하므로 동시에 둘 다 실행할 수 없습니다. 둘 중 하나여야 합니다. 이는 sudo ntpdate
NTP 서비스를 중지한 경우에만 작동하는 이유를 설명합니다. UDP 포트 번호는 1024 미만이므로 루트 권한이 없으면 이 포트를 사용할 수 없습니다.
콘텐츠를 표시하지 않아 /etc/default/ntpdate
어떤 서버를 사용했는지 짐작할 수 없지만 NTP 서비스를 중지한 후에는 작동한 것 같습니다. 인수 없이 실행하면 ntpdate
동기화에 사용할 NTP 서버가 지정되지 않습니다 sudo
.
시스템 시간이 다음과 같으므로 NTP 서비스가 시계를 동기화할 수 없습니다.방법(몇 년 동안!) 사실이 아닙니다. 기본적으로 NTP 서비스(= process ntpd
)에는 보안 제한이 있으며 약 +/- 1000초인 것 같습니다. 시스템 시간이 이 범위를 벗어나면 ntpd
수정하려는 시도조차 없을 것입니다. 긴 점프로 인해 데이터베이스가 시간을 관리하는 다른 소프트웨어에 문제를 일으킬 수 있습니다. 시스템 시계를 대략적으로 현재 시간과 비슷하게 만든 다음 ntpd
이를 동기화할 수 있도록 하는 것은 시스템 관리자의 책임입니다 .
ntpd
이 옵션으로 시작 하면 -g
첫 번째 조정(만!)이 1000초 안전 제한보다 클 수 있습니다. 시스템이 Debian 10의 기본 설정을 사용하는 경우 서비스를 시작할 때 이 옵션을 사용하라는 메시지 /etc/default/ntp
가 있어야 합니다 . 이와 같은 구성이 있는 경우 NTP 서비스( )를 중지하고 다시 시작하는 것만으로도 시간을 수정할 수 있습니다. 1년 이상 조정을 거부하는 최종 온전성 검사가 없는 한 .NTPD_OPTS='-g'
ntpd
sudo service ntp stop; sudo service ntp start
ntpd
(이 기본값은 실제로 시간에 민감한 응용 프로그램을 실행하는 경우 Debian 10의 NTP 서비스를 다시 시작하는 것이 약간 위험합니다. 다른 배포판은 두 가지 별도의 서비스를 제공하여 이 문제를 해결합니다. 하나는 부팅 서비스 초기에 실행되고 ntpdate
대규모 조정이 가능합니다. 시작하기 전에 필요한 경우 증분 조정만 수행하면 언제든지 ntpd
서비스를 다시 시작하는 것이 더 안전해집니다 .)ntpd
시스템이 PC와 유사한 x86 하드웨어를 사용하고 배터리로 구동되는 실시간 시계(RTC, "BIOS 시계"라고도 함)를 사용할 수 있다고 가정하면 RTC가 정확한 시간을 얻을 수 있도록 sudo hwclock --systohc --utc
사후 작업을 수행해야 할 것입니다. sudo ntpdate-debian
RTC가 정확도가 낮더라도 작동하는 경우 시스템이 완전히 동기화될 수 ntpd
있도록 시스템이 종료될 때 시스템 시간을 안전한 제한 내에서 유지 해야 합니다.ntpd
답변2
추가하려는 서버의 구성 파일을 대조 확인하세요.
ntpdate는 "ntp.conf"를 사용하지 않습니다.
또한 "ntpd" 서비스가 실행 중인지 다시 확인하십시오. 이로 인해 충돌이 발생할 수 있습니다.