NTP 시간 동기화에 시간이 오래 걸림

NTP 시간 동기화에 시간이 오래 걸림

저는 Raspberry Pi 3를 사용하고 있으며 시스템을 재부팅한 후 ntp를 통해 시간을 업데이트해야 합니다.

dhcp를 사용하여 Wi-Fi를 통해 업데이트해야 합니다. 일반적으로 작동하지만 동기화에는 약 시간이 걸립니다. 30분 동안 나는 이유를 이해하지 못했습니다.

ntp 서비스를 수동으로 시작하고 싶을 때

>>sudo /etc/init.d/ntp restart

"확인"이라고 표시되지만 시스템은 아무 작업도 수행하지 않습니다. 잘못된 시간이 여전히 RTC에 표시됩니다.

문제가 무엇인지 아시나요?

또 다른 정보는 Pi가 읽기 전용 모드에서 실행된다는 것입니다. 하지만 쓰기 액세스 없이 작동하지 않으면 30분 후에 업데이트되지 않습니다. 그렇죠?

자세한 내용은:

내 질문을 완성하려면 다음이 ntp.conf입니다.

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

Driftfile /var/lib/ntp/ntp.drift

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

...

Server 0.de.pool.ntp.org iburst
Server 1.de.pool.ntp.org iburst
Server 2.de.pool.ntp.org iburst
Server 3.de.pool.ntp.org iburst

Server 127.127.1.0 #local clock
Fudge 127.127.1.0 stratum 10

...

내 프로젝트에 대한 설명을 확장합니다. Pi를 NTP 서버로 사용하고 싶습니다. 첫 번째 문제는 재부팅 후 또는 Pi가 종료될 때 RTC가 "통제 불능" 상태가 된다는 것입니다. 특히 오랜 시간 동안 그렇습니다. 이것이 바로 RTC를 설정하기 위해 Pi가 먼저 NTP 클라이언트 역할을 해야 하고, 그 후에 Pi가 이더넷을 통해 Pi에 연결된 장치에 대한 NTP 서버가 되어야 한다는 생각을 갖게 된 이유입니다. 그래서 현재 시간을 얻기 위해 Wi-Fi를 통해 Pi를 연결합니다. 내가 말했듯이 일반적으로 작동하지만 시간이 너무 많이 걸립니다.

그런 다음 이전에 게시한 이 명령을 사용하여 수동으로 동기화하고 싶습니다. 내 생각은 이 작업을 cronjob으로 수행하는 것이지만 다음 문제가 있습니다. 1. Pi가 명령을 무시합니다. 2. cronjob도 무시되거나 재부팅 후 삭제됩니다.

하지만 단계별로 진행하고 싶고 가장 먼저 해결하고 싶은 문제는 동기화 시간을 줄이는 것입니다.

이제 내 상황을 더 잘 이해하셨기를 바랍니다…

더 자세한 내용이 필요하신가요?

새로운 정보: 2018년 2월 1일

이제 원하는 해결책을 찾았지만 이해할 수 없는 동작이 있습니다. 구성이 정확합니다. 그러나 저는 온보드 WiFi를 사용하여 ntp.conf에서 구성한 NTP 서버를 통해 시스템 시간을 동기화합니다. RPi의 NTP 서버에 대한 유선 장치로 이더넷(유선 LAN)을 사용하고 있습니다. IP 설정은 다음과 같습니다.

WLAN (DHCP): 192.168.1.x
Ethernet (static): 192.168.10.10

그렇지 않으면 하나의 연결만 작동하기 때문에 두 개의 인터페이스를 서로 다른 네트워크에 배치했습니다. 하지만 실제로는 왜 그럴까요? 이것이 동기화가 너무 오래 걸리는 주요 문제입니다. 지역 시계로 라인을 주석 처리하면

Server 127.127.1.0

그러면 네트워크 동기화가 즉시 적용됩니다. 왜 이런 일이 발생합니까?

답변1

rpi에는 RTC가 없으므로 항상 1970년 1월 1일에 시작됩니다. 즉, 서버와 NTP가 천천히 점진적으로 동기화되도록 하므로 기본적으로 NTP는 정상적으로 작동하지 않습니다.

파일 에 첫 번째 줄을 추가하겠습니다 ntp.conf(첫 번째 줄이어야 합니다).

tinker panic 0

가상 머신에 대해 이를 설정하는 것이 좋습니다.그리고IoT 장치.

Tinker Panic - 패닉 임계값을 초 단위로 지정하며 기본값은 1000초입니다. 0으로 설정하면 패닉 온전성 검사가 비활성화되고 모든 값의 클럭 오프셋이 허용됩니다.

특히 인터넷 연결 없이 프로젝트를 수행할 계획이라면 가격이 저렴하기 때문에 RTC 구입을 고려해볼 수도 있습니다. 바라보다hwclock이 rtc 파일을 열 수 없습니다

답변2

/etc/ntp.conf의 퍼지 줄에 "flag1 1"을 추가하여 문제를 해결했습니다. 우리는 GPS를 사용하여 시간을 설정합니다. 시스템 시계 배터리가 방전되면 시스템이 올바른 시간에 부팅되지 않습니다. 빨리 고치려면 NTP가 필요합니다. 이것은 /etc/ntp.conf 파일입니다:

# "flag1 1" means skip the difference limit check and fix the time even if it is far off.
# If the battery for the system clock fails the system clock will start with a default time.
# The date will be years off, more than the sanity check limit, we need for ntp to correct the time anyway.
#
# GPS Serial data reference
server 127.127.28.0 minpoll 4 maxpoll 4 true
fudge 127.127.28.0 time1 0.0 refid GPS flag1 1

# GPS PPS reference 
server 127.127.28.1 minpoll 4 maxpoll 4 prefer true
fudge 127.127.28.1 refid PPS flag1 1

driftfile /var/lib/ntp/drift

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# Allow unrestricted acces from the localhost
restrict 127.0.0.1 mask 255.255.255.0
restrict -6 ::1

# Enable this if you want statistics to be logged.
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day disable
filegen clockstats file clockstats type day enable

여기에서 이 솔루션을 찾았습니다.NTP 문서

답변3

ntpdate 유틸리티를 일회성 시작 유틸리티로 사용하여 ntpd가 관리할 수 있을 만큼 시계를 가깝게 유지합니다.

배포판에 있는 경우 chrony RPM 패키지를 확인하세요. 기존 NTP보다 관리하기가 더 쉽습니다.

관련 정보