배경

2026-09-24 밤~25일 새벽 사이, 홈서버(MacBook, 클램쉘 상태로 상시 가동 — K3s-C4I-Cluster-Portfolio.md 참고)가 원인 불명으로 Tailscale에서 사라졌다. 아무도(사용자도, 이 세션도) 원격으로 그 서버에 뭔가를 한 적이 없는 시간대였고, ai-health-check.yml의 하루 1회 스케줄 실행이 다음 날에야 그걸 감지했다 — 최대 24시간 동안 아무도 몰랐다는 뜻이다.

이 문서는 그 사건 이후 두 가지를 다룬다: ① 감지를 빠르게(알림), ② 원격으로 직접 깨울 수 있는가(wake-up).

결론 요약 — 소프트웨어로 되는 것 vs 하드웨어가 필요한 것

하고 싶은 것 소프트웨어만으로 가능?
애초에 안 자게 만들기 (예방) ✅ 가능 — Amphetamine이 실제로 살아있는지 재확인, 더 견고하게 하려면 caffeinate -disu를 LaunchDaemon으로 등록. 이게 확실하면 "깨우기" 문제 자체가 안 생긴다 — 가장 먼저 해볼 것
잠들거나 죽었을 때 폰으로 즉시 알기 (감지) ✅ 가능 — 아래 ①, 이미 구현·검증 완료
밖에서 신호 하나로 원격 wake-up ❌ 순수 소프트웨어로는 불가능 — 코드/설정 문제가 아니라 물리적 제약(WoL 매직 패킷은 로컬 브로드캐스트라 그걸 대신 쏴줄 두 번째 기기가 같은 집 네트워크에 있어야 함). 예외: 지금 쓰는 공유기가 자체적으로 "Wake on WAN"을 지원하면 하드웨어 추가 없이 가능 — 공유기 모델부터 확인. 안 되면 라즈베리파이 같은 저가 상시 기기(~5만원대) 추가가 다음 단계 (아래 ②)

① 다운 감지 알림 — 구현 완료

.github/workflows/ai-health-check.yml

② 원격 Wake-up — 조사 결과: 지금 구성으론 불가능, 추가 하드웨어 있으면 가능

핵심 문제: Tailscale은 Wake-on-LAN을 못 보낸다

Wake-on-LAN(매직 패킷)은 Layer 2(MAC 주소 기반 로컬 브로드캐스트)에서 동작하는데, Tailscale은 Layer 3(IP 오버레이 네트워크)다. Tailscale이 아무리 그 기기와 "연결된 것처럼" 보여도, 매직 패킷 자체를 터널 너머로 보낼 방법이 원천적으로 없다 (Tailscale 공식 블로그).

Tailscale 공식 해법은 "같은 로컬 네트워크에 있는 다른 상시 가동 기기가 Tailscale로 명령을 받아서, 그 기기가 로컬에서 진짜 매직 패킷을 쏘는" 구조다(Raspberry Pi/NAS를 릴레이로 씀).

그런데 지금 우리 구성엔 그 "다른 상시 가동 기기"가 없다 — k3s-master/worker1/worker2가 전부 그 MacBook 한 대 위의 VM이다. MacBook이 잠들면 VM 전부 같이 죽고, 로컬 네트워크엔 신호를 릴레이해줄 게 아무것도 안 남는다. 즉 지금 상태로는 순수 소프트웨어/클라우드 조합만으로는 원격 wake가 불가능하다.

추가로 확인한 제약 (macOS 쪽)