Raspberry Pi는 Centos7 서버에 속하는 단일 외부 IP(모든 포트 포함)에만 액세스할 수 있도록 구성된 방화벽 뒤에 있습니다.
Raspberry Pi의 UTC 시간이 항상 정확하도록 두 장치를 구성하는 방법입니다.
내가 취한 조치들...
- 서버에서 ntp를 구성하고, 서버 0.us.pool.ntp.org를 가리키고, 방화벽을 구성하는 등의 작업을 수행합니다.
- Pi 클라이언트에서 기본 서버를 주석 처리하고 내 서버를 가리킨 다음 재부팅합니다.
단, 약 1시간 정도의 휴식시간이 있습니다. 클라이언트 액세스를 허용하려면 여전히 서버를 구성해야 합니까? 그렇다면 모든 클라이언트를 허용할 수 있습니까? 아니면 내 클라이언트만 허용해야 합니까?
라즈베리 파이
michael@pi:~ $ ntpq -c lpeer
remote refid st t when poll reach delay offset jitter
==============================================================================
12.345.67.890 .INIT. 16 u - 64 0 0.000 0.000 0.000
michael@pi:~ $ date -R
Tue, 20 Jun 2017 10:37:17 +0000
약 24시간 후
michael@pi:~ $ ntpq -c lpeer
remote refid st t when poll reach delay offset jitter
==============================================================================
74.208.80.161 .INIT. 16 u - 1024 0 0.000 0.000 0.000
michael@pi:~ $ date -R
Wed, 21 Jun 2017 11:29:08 +0000
michael@pi:~ $ grep '^[^ #]' /etc/ntp.conf
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 12.345.67.890 #This is the Centos server
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
중앙 운영 체제
[michael@centos7 ~]$ ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
+104.156.99.226 192.12.19.20 2 u 21 1024 377 68.864 0.518 0.930
+108.59.2.24 130.133.1.10 2 u 68 1024 377 56.934 -0.234 0.881
+66.7.96.1 216.218.254.202 2 u 480 1024 367 71.228 0.149 1.752
*97.107.128.58 209.51.161.238 2 u 87 1024 377 52.881 1.430 1.507
[michael@centos7 ~]$
약 12시간 후
[michael@centos7 ~]$ ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
+104.156.99.226 204.123.2.72 2 u 432 1024 377 68.857 0.466 0.128
+108.59.2.24 130.133.1.10 2 u 838 1024 377 56.550 -0.114 0.083
*66.7.96.1 216.218.192.202 2 u 911 1024 377 73.391 0.920 1.763
-97.107.128.58 209.51.161.238 2 u 655 1024 377 56.110 2.394 0.125
[michael@centos7 ~]$ date -R
Wed, 21 Jun 2017 12:30:44 +0000
[michael@centos7 ~]$ grep '^[^ #]' /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
logfile /var/log/ntp.log
답변1
DS3231 RTC 모듈(I2C)을 사용하고 NTP 서버에서 시간을 업데이트합니다. 고급 비즈니스 노트북에 내장된 RTC보다 더 정확합니다.
Raspberry Pi RTC 보드 Amazon용 차세대 DS3231 실시간 클럭 모듈 |
참고: 음극이 배터리의 양극 단자에 직접 연결된 마이크로 SMD 다이오드를 절단/납땜 제거합니다. 이를 찾으려면 DMM에서 200ohm/연속성 테스트를 사용하십시오. 작은 유리구슬처럼 생겼어요. 배터리를 충전할 필요는 없지만 일부 모듈은 여전히 충전합니다.
Raspberry Pi에 DS3231 실시간 클록 추가
DS1307을 사용하지 마십시오. 한 달에 몇 분씩 표류합니다.
업데이트: Si4703 모듈을 사용하여 시간과 날짜를 얻을 수도 있습니다. SparkFuns 사이트를 확인하세요.
답변2
이 답변은 댓글을 통해 해결책을 확인한 후 제공됩니다.
해결해야 할 문제는 다음과 같습니다.
분명한
처음에는 CentOS 시스템에서 사용할 수 있는 구성 파일(없음)과 Pi(일부)에서 사용할 수 있는 구성 파일이 명확하지 않았습니다. 나중에 질문을 업데이트하면 이 사실이 훌륭하게 명확해졌습니다.
CentOS 서버는 처음에 업스트림 서버와 동기화되지 않습니다.
이를 위해서는 폴링 간격을 여러 번 반복해야 하며 이상적으로는 최소한 하나의 서버에 연결할 수 있어야 합니다
377
. 이는 최근 성공한 요청 수를 표시하는 비트 필드의 8진수 표현입니다. 각 간격은1
비트 필드의 최하위 끝에 OR을 푸시합니다. 에 해당합니다.0
377
11-111-111
Pi는 CentOS 업스트림 서버와 동기화할 수 없습니다.
CentOS 서버의 방화벽에는
iptables
결함이 없지만 Pi에서 포트 123으로의 인바운드 UDP 쿼리를 허용하고 일치하는 응답을 반환하도록 설정해야 합니다firewall-cmd --permanent --add-service ntp
. 또한 UDP/123을 통한 업스트림 서버에 대한 아웃바운드 요청과 해당 응답을 허용해야 합니다. NTP 풀에서 서버를 사용하면 서버의 IP 주소가 매시간 풀 안팎으로 이동하기 때문에 상황이 약간 더 복잡해집니다. 여기서 한 가지 옵션은 UDP/123 및 일치하는 응답의 모든 아웃바운드 트래픽을 허용하는 것입니다.CentOS 시스템은 하드웨어 방화벽으로 보호되지만 Pi의 NTP 트래픽을 허용하도록 구성되지 않은 것으로 나타났습니다.
답변3
Pi가 NTP 서비스에 액세스할 수 없는 것 같습니다. CentOS에서는 기본 제공 방화벽이 기본적으로 활성화되어 있으며 대부분의 수신 트래픽을 차단합니다. 들어오는 NTP 요청을 허용하려면 CentoOS 7 시스템에서 다음을 수행하십시오.
firewall-cmd --permanent --add-service ntp
firewall-cmd --reload