pop_os 21.10으로 업그레이드한 후 시스템 시계 동기화가 작동하지 않습니다.

pop_os 21.10으로 업그레이드한 후 시스템 시계 동기화가 작동하지 않습니다.

최근에 21.04에서 pop_os 21.10으로 업그레이드했는데 장치를 부팅할 때마다 컴퓨터에 임의의 시간/날짜가 설정됩니다. 설정의 자동 날짜 및 시간이 작동하지 않습니다.

출력은 다음과 같습니다 timedatectl.

               Local time: Wed 2022-02-23 10:43:32 IST
           Universal time: Wed 2022-02-23 05:13:32 UTC
                 RTC time: Wed 2019-07-24 03:48:55
                Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

시스템 시계 동기화를 활성화하기 위해 실행을 시도했지만 timedatectl set-ntp true작동하지 않았습니다.

또한 시도이것Ubuntu 18.04의 유사한 문제에 대한 솔루션에서는 @restart구성에 매개변수를 추가할 것을 제안했지만 crontab그 역시 작동하지 않았습니다.

답변1

timedatectl이는 NTP 서비스가 활성 상태이지만 시계가 여전히 동기화되지 않았음을 나타내 므로 서비스가 완전히 구성되지 않았거나 방화벽이 NTP 패킷을 차단하고 있기 때문에 NTP 서비스가 NTP 서버에 연결할 수 없음을 의미합니다.

첫 번째 작업은 동기화 서비스의 실제 이름을 찾는 것입니다.

에서 자세한 내용을 찾을 수 있지만 기본적으로 이름에 확장명이 포함된 man systemd-timedated.service디렉터리나 파일을 확인하세요 . /usr/lib/systemd/ntp-units.d/이러한 파일은 사용할 수 있는 잠재적 NTP 서비스의 이름을 정의하며, 파일이 여러 개인 경우 파일의 영숫자 순서에 따라 우선 순위가 결정됩니다./usr/local/lib/systemd/ntp-units.d//etc/systemd/ntp-units.d.listtimedatectl.list

또는 서비스 우선순위를 환경 변수로 정의할 수도 있습니다 systemd-timedated.service. 를 실행하면 systemd cat systemd-timedated.service | grep Environment다음과 같은 줄을 찾을 수 있습니다.

Environment=SYSTEMD_TIMEDATED_NTP_SERVICES=<primary NTP service>.service:<1st alternative NTP service>.service:<2nd alternative NTP service>.service

EnvironmentFile또는 서비스에 대해 해당 변수를 정의할 수 있는 파일에 대한 참조를 찾을 수도 있습니다 .

가장 일반적인 NTP 동기화 서비스는 chronyd.service, ntp.service(또는 ntpd.service일부 배포판에서는) 및 systemd-timesyncd.service이므로 우선 순위를 나타내는 항목을 찾을 수 없더라도 이 세 가지 서비스 중 하나일 가능성이 높습니다.

NTP 동기화에 사용되는 서비스가 이면 chronyd.service연결 상태를 쿼리하는 명령은 입니다 chronyc sources -a -v.

의 경우 ntp[d].service를 사용할 수 있습니다 ntpq -np.

chronyc sources및 출력은 ntpq -np다소 유사합니다. NTP 동기화가 제대로 작동하면 목록의 가장 왼쪽 열에 시스템이 현재 동기화 중인 서버를 나타내는 별표가 있어야 합니다. 이 Reach열은 마지막 8개의 NTP 요청 상태를 8진수로 나타냅니다. 이 열의 값은 NTP 서버가 이러한 모든 요청에 ​​응답했는지 여부를 나타냅니다 377. 값은 서버에 연결할 수 없음 Reach을 나타냅니다 .0

상태를 쿼리하려면 systemd-timesyncd.service를 사용할 수 있습니다 timedatectl timesync-status.

동기화 서버가 사용하려는 NTP 서버를 알고 나면 해당 연결 문제 해결을 시작할 수 있습니다. 사용할 NTP 서버 목록이 비어 있거나 잘못된 경우 먼저 이를 수정한 후 동기화 서비스를 다시 시작(또는 시스템을 다시 시작)해야 합니다.

의 경우 NTP 서버는 또는 파일에 나열됩니다 chronyd./etc/chrony/chrony.conf/etc/chrony/sources.d/*.source

의 경우 ntp[d].service구성 파일은 /etc/ntp.conf.

systemd-timesyncd.service/etc/systemd/timesyncd.conf및/또는 파일 에서 구성되지만 파일이나 DHCP 구성 정보를 통해 구성 /etc/systemd/timesyncd.conf.d/*.conf할 수도 있습니다 ./etc/systemd/network/*.network

ntpdate이 명령이 설치 되면 해당 디버그 모드를 사용하여 NTP 서버에 대한 연결을 테스트할 수 있습니다. 실행 ntpdate -d <NTP server name or IP address>하고 출력을 확인합니다. 출력의 마지막 줄이 나타나면 no server suitable for synchronization found명령이 지정한 NTP 서버에 연결할 수 없는 것입니다. 명령이 NTP 서버로부터 유효한 응답을 받으면 출력의 마지막 줄에 해당 명령의 수가 표시됩니다.있을 것이다디버그 모드가 아닌 경우 로컬 시스템 시계를 조정합니다.

관련 정보