Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux 시간을 NTP 서버와 동기화하는 방법

Linux 시간을 NTP 서버와 동기화하는 방법

컴퓨터 시계는 완벽하지 않습니다. 며칠, 몇 주 또는 몇 달이 주어지면 드리프트하고 실시간 표시를 중지합니다. 간단히 말해서, 표류한 후 실제로는 "10:33"인데 "10:30"이라고 표시할 수 있습니다. 구형 컴퓨터에서는 컴퓨터 시계를 수동으로 주기적으로 재조정하는 것이 일반적이었습니다. 그러나 인터넷 연결이 보편화되자 최신 운영 체제는 NTP 서버의 도움으로 시계를 자동으로 조정하기 시작했습니다.

NTP란 무엇입니까?

NTP는 네트워크 시간 프로토콜의 약자입니다. 네트워크 연결을 통해 컴퓨터 시계를 동기화하고 정확하게 유지하도록 설계된 알고리즘입니다.

Linux에서 시간 동기화를 활성화하는 방법

운 좋게도 대부분의 배포판은 기본적으로 시간 동기화의 한 형태 또는 다른 형태를 구현합니다. 컴퓨터 시계가 전화 시계에서 멀어지는 것을 전혀 눈치채지 못했다면 거의 확실하게 이미 NTP 클라이언트/데몬이 실행되고 있는 것입니다.

systemd가 있는 Linux OS에서

대부분의 Linux 배포판은 systemd를 채택했으며 "systemd-timesyncd" 데몬이 함께 제공됩니다. 즉, Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro 등에 이미 NTP 클라이언트가 사전 설치되어 있습니다. 이 배포판과 배포판을 기반으로 하는 다른 배포판(예:기본 OS, Zorin OS)에서 다음을 실행하여 NTP 동기화가 활성화되었는지 확인합니다.

timedatectl

Linux 시간을 NTP 서버와 동기화하는 방법

Network time on: yes가 표시되는 경우 출력에서 컴퓨터 시계는 자동으로 NTP를 통해 주기적으로 조정됩니다. 때때로 NTP synchronized: no도 볼 수 있습니다. 이는 시계가 "systemd-timesyncd" 이외의 다른 도구를 통해 동기화되었음을 의미할 수 있습니다. 또한 systemd-timesyncd가 아직 동기화되지 않았지만 나중에 동기화될 것임을 의미할 수도 있습니다.

Network time on: no가 표시되는 경우 , 다음 명령을 실행하여 NTP 시간 동기화를 활성화합니다.

sudo timedatectl set-ntp true

이것이 이 배포판에서 해야 할 전부입니다.

systemd가 없는 Linux OS에서

최근 MX Linux가 인기를 얻으면서 이 OS에 대한 예를 시작하는 것이 적절해 보입니다. 특수한 경우이기도 하다. "종류"는 체계화되어 있지만 "종류"는 그렇지 않습니다. timedatectl은 네트워크 시간이 "켜짐"이라고 보고하지만 systemd-timesyncd는 사용되지 않습니다.

그렇다면 어떻게 동기화됩니까? 다른 Linux 운영 체제에서 사용할 수 있는 다음 명령으로 확인할 수 있습니다.

sudo cat /var/log/syslog | grep ntp

MX Linux에서는 다음 그림과 유사한 결과를 얻을 수 있습니다.

Linux 시간을 NTP 서버와 동기화하는 방법

이 필터링된 로그 메시지에서 "ntpdate" 클라이언트가 한 번 실행되었음을 알 수 있습니다. 이것은 많은 Linux 배포판에 기본적으로 설치되는 인기 있는 클라이언트입니다. 가볍고 산발적으로 NTP 서버만 쿼리합니다. 백그라운드에서 실행되지 않으며 스크립트, 동기화 및 종료에 의해 트리거됩니다.

이것은 시간이 매우 높은 정확도(밀리초 또는 마이크로초를 생각함)로 동기화되지는 않지만 대부분의 목적에 대해 충분히 정확함을 의미합니다. 일반적으로 적어도 1초까지는 정확합니다.

다른 운영 체제에서는 데몬인 "ntpd"가 백그라운드에서 지속적으로 실행되고 매우 정확한 것을 볼 수 있습니다. 더 많이 실행할수록 더 정확해집니다.

어떤 이유로 ntp를 설치하려는 경우 또는 ntpdate systemd가 있는 운영 체제에서는 먼저 systemd의 ntp 클라이언트를 비활성화합니다.

sudo timedatectl set-ntp false

물론 위의 명령은 시스템이 아닌 배포판에서는 필요하지 않습니다.

ntpdate 클라이언트 설치

이것은 인터넷에 지속적으로 연결되지 않는 가정용 컴퓨터, 랩톱 및 기타 장치에 적합합니다.

Debian, Ubuntu, Linux Mint, Zorin 및 이를 기반으로 하는 기타 배포판에서 다음을 실행합니다.

sudo apt install ntpdate

위의 모든 데비안 기반 배포판에서는 새 네트워크 연결을 확인한 후 실행되도록 구성되어 있습니다. 네트워크 연결을 끊었다가 다시 연결하면 지금 시간 동기화를 강제 실행할 수 있습니다.

Fedora에서 ntpdate는 더 이상 사용되지 않으므로 대신 ntpd 데몬을 사용하는 것이 좋습니다(다음 섹션 참조). 다음 두 가지 이유로 다른 모든 배포판에도 동일하게 권장됩니다.

  • 때로는 별도의 패키지에 ntpdate를 포함하지 않고 다음 섹션에서 ntpd와 함께 묶습니다.
  • 모든 네트워크 연결에서 자동으로 실행되도록 ntpdate를 자동화하지 않습니다. 네트워크가 연결된 후 자동으로 실행되는 스크립트에 ntpdate를 직접 삽입해야 합니다.

이 경우 다음 섹션의 지침에 따라 ntpd를 설치하는 것이 더 합리적입니다.

ntpd 데몬 설치

Debian, Ubuntu, Zorin, Mint 및 Debian 또는 Ubuntu를 기반으로 하는 기타 배포판에서 다음을 실행합니다.

sudo apt install ntp

이 배포판은 ntpd를 즉시 시작한 다음 부팅할 때마다 자동으로 시작합니다. 추가 조치가 필요하지 않습니다.

Fedora에서 다음을 사용하여 설치합니다.

sudo dnf install ntp

CentOS에서 실행:

sudo yum install ntp

Arch Linux의 경우 다음을 사용하십시오.

sudo pacman -S ntp

그리고 openSUSE에서 다음을 입력하십시오.

sudo zypper install ntp

그런 다음 부팅 시 서비스를 활성화한 다음 시작합니다.

sudo systemctl enable ntpd
sudo systemctl start ntpd

systemd 없이 실행되는 다른 배포판에서는 다음 명령을 대신 실행해야 할 수 있습니다.

sudo update-rc.d ntpd enable
sudo service ntpd start

또는 귀하의 OS에 해당하는 모든 것.

ntpd가 존재하지 않는다는 오류가 발생하면 위 명령에서 "ntpd"를 "ntp"로 바꾸십시오. 일부 배포판은 ntpd 데몬 서비스 파일의 이름을 다르게 지정합니다.

결론

최소한 그래픽 사용자 인터페이스가 있는 Linux OS에서 이러한 단계를 따라야 하는 경우는 드뭅니다. 시간 동기화가 이미 구성되어 있어야 합니다. 그러나 이러한 단계는 적어도 때때로 문제를 디버그하는 데 도움이 될 수 있습니다. 많은 데스크탑 환경 제어판에서 시간 동기화를 활성화 및 비활성화할 수 있습니다. 백그라운드에서 유사한 명령을 사용하여 이를 구성하므로 그래픽 사용자 인터페이스 도구가 실패할 때 직접 수행할 수 있습니다.