리눅스 시스템에서 시간 설정은 때때로 예상치 못한 문제를 일으키거나 잘못 구성될 수 있습니다. 이러한 시간 설정은 일반 사용자가 쉽게 수정하기에는 복잡할 수 있습니다. 따라서 리눅스에서 네트워크 시간 동기화를 설정하는 구체적인 방법을 자세히 안내하고자 합니다.
또한, NTP 설정 외에도 리눅스와 윈도우를 듀얼 부팅할 때 발생하는 시간 불일치 오류를 해결하는 방법도 함께 알아보겠습니다.
네트워크 시간 프로토콜(NTP) 설정
정확한 시간을 얻는 가장 일반적인 방법은 리눅스 PC의 소프트웨어 시계를 시간 서버와 동기화하는 것입니다. 대부분의 리눅스 배포판에서는 이 과정이 자동으로 이루어지지만, 모든 배포판에서 NTP 데몬(NTPd)을 사용하는 것은 아닙니다. 게다가 NTP 설정이 제대로 되지 않았을 수도 있습니다. 이 문제를 해결하기 위해 리눅스에서 NTPd를 수동으로 구성하는 방법을 자세히 살펴보겠습니다.
만약 여러분의 PC에 NTP가 설치되어 있지 않다면, 터미널을 열고 NTP를 설치하는 것부터 시작해야 합니다. 이미 설치되어 있을 가능성도 있지만, 확실하게 하기 위해 다음 명령어를 사용하여 설치할 수 있습니다. 이 명령어들은 대부분의 최신 리눅스 배포판에서 작동합니다.
우분투
sudo apt install ntp
데비안
sudo apt-get install ntp
아치 리눅스
sudo pacman -S ntp
페도라
sudo dnf install ntp
오픈수세
sudo zypper install ntp
소프트웨어 설치가 완료되면, 다음 단계는 NTP 서버에 연결하는 것입니다. 일반적으로 대부분의 리눅스 배포판은 `/etc/ntp.conf` 파일에 구성된 자체 NTP 서버를 사용합니다. 그러나 이러한 서버가 신뢰할 수 없다고 판단된다면, 보다 안정적인 서버(예: 공식 Google NTP 서버)로 변경할 수 있습니다.
Google NTP 서버를 추가하기 위해서는 `ntp.conf` 파일을 편집해야 합니다.
sudo nano /etc/ntp.conf
원한다면 기존의 내용을 모두 삭제하고 아래 내용으로 대체할 수 있습니다(권장하지는 않지만). 최적의 결과를 얻으려면 Google NTP 항목을 파일의 맨 위에 추가하는 것이 좋습니다.
참고: 각 항목의 끝에는 `iburst` 옵션이 필요합니다. `iburst` 옵션은 시간 서버와의 연결에 문제가 발생했을 때 서버에 “버스트” 패킷을 전송하여 연결을 시도합니다.
server time.google.com iburst server time2.google.com iburst server time3.google.com iburst
편집이 완료되면, Ctrl + O를 눌러 Nano 편집기에 구성 파일을 저장하고, Ctrl + X를 눌러 편집기를 종료합니다.
시간대 설정
NTP는 서버로부터 시간을 자동으로 동기화할 수 있지만, 먼저 사용자의 정확한 시간대를 알아야 합니다. 일반적으로 리눅스 운영체제는 초기 설정 과정에서 시간대를 묻고 설정합니다. 그러나 설치 과정에서 문제가 발생했다면, `tzselect` 명령어를 사용하여 수동으로 시간대를 수정해야 합니다.
터미널을 열고 시간대 설정 도구를 실행합니다.
tzselect
`tzselect` 도구를 실행하면 올바른 시간대를 설정하는 과정을 안내받을 수 있습니다. 시간대 설정이 완료되면 NTPd를 시작할 수 있습니다.
NTP 시작
시간 서버에 대한 모든 연결 설정이 완료되었습니다. 다음 단계는 Systemd init 시스템을 사용하여 부팅 시 NTP를 자동으로 로드하는 것입니다. 만약 여러분의 리눅스 운영체제가 대부분의 최신 시스템처럼 Systemd를 사용하지 않는다면, 이 명령어에 대한 대안을 찾아야 합니다.
먼저 NTPd를 시작합니다.
sudo systemctl start ntpd.service
그 다음 `systemctl enable` 명령어를 사용하여 부팅 시 자동으로 활성화되도록 설정합니다.
sudo systemctl enable ntpd.service
이제 BIOS의 UTC 시간이 정확하므로 (그리고 `tzselect` 덕분에) 위 명령어를 실행하면 시간이 즉시 올바르게 구성될 것입니다.
로컬 시간 사용
NTP 외에도 리눅스에서 시간을 설정하는 다른 방법이 있습니다. 가장 인기 있는 대안 중 하나는 “로컬 시간”을 사용하는 것입니다. 로컬 시간은 리눅스 시스템 자체적으로 시간을 유지하도록 설정하며, 외부와 동기화하지 않습니다. 즉, 시간을 독립적으로 유지하고 다른 요소의 영향을 받지 않습니다. 다소 안정성이 떨어질 수 있지만, 제대로 작동합니다. 그렇다면 왜 이 설정을 사용해야 할까요?
NTP 대신 로컬 시간을 사용하는 주된 이유는 듀얼 부팅 환경에서 시간 문제가 발생하는 것을 방지하기 위해서입니다. 리눅스를 사용하다가 윈도우 10으로 재부팅하면 시간이 어긋나는 것을 볼 수 있습니다. 이는 두 운영체제 모두 자체 시간 동기화 서비스를 가지고 있기 때문에 서로 충돌하기 때문입니다. 이러한 문제를 해결하는 가장 효과적인 방법은 리눅스에서 시간 동기화를 비활성화하는 것입니다.
주의: 리눅스에서 로컬 시간을 사용하도록 설정하더라도 윈도우에서 여전히 시간 문제가 발생할 수 있습니다. 두 운영체제 간의 충돌을 완전히 방지하기 위해서는 윈도우 시간 설정도 확인해야 합니다.
`timedatectl` 명령어를 다음과 같이 수정하여 실행하면 로컬 시간을 설정할 수 있습니다.
sudo timedatectl set-local-rtc 1
로컬 시간으로 전환한 후 PC를 재부팅해야 할 수도 있습니다. 재부팅 후 로그인하면 모든 설정이 로컬 시간을 사용하게 됩니다.
로컬 시간 설정을 다시 끄고 싶으신가요? 그렇다면 `timedatectl` 명령어를 다시 실행해야 합니다. 아래 명령어를 시도해 보세요.
sudo timedatectl set-local-rtc 0
이전과 마찬가지로, 리눅스 PC를 재시작하여 변경 사항을 적용해야 합니다. 다음 로그인 시에는 로컬 시간이 더 이상 사용되지 않아야 합니다.