SSH / 원격 접속 2026년 4월 28일

2026년 MacBook 절전, 뚜껑 닫기, Wi-Fi 로밍, ProxyMac Mac mini 로의 SSH 끊김

ProxyMac 엔지니어링 팀 2026년 4월 28일 약 11분 읽기

Apple Silicon M4 미니를 홍콩·일본·한국·싱가포르·미국에서 빌려 쓰는 엔지니어에게 흔한 불만은 「사무실을 걸어 다니면 도쿄 SSH 가 자꾸 죽는다」입니다. ProxyMac 호스트는 정상이고, MacBook 클라이언트가 Wi-Fi 절전, AP 전환, 사내 SSID 에서 테더링으로 바꾸면서 TCP 상태를 깨뜨린 경우가 대부분입니다. 이 문서는 (1) 절전과 802.11 로밍이 TCP 를 어떻게 끊는지, (2) 그 이야기를 Wi-Fi 버퍼블로트WAN keepalive 타임아웃과 어떻게 구분하는지, (3) 티켓에 붙일 수 있는 4행 매트릭스, (4) 6단계 런북과 바로 쓸 ~/.ssh/config 스탠자를 정리합니다. 테더링에 CGNAT 가 끼면 역방향 SSH 터널을 이어 읽고, 대용량 전송만 멈추면 PMTUD 쪽을 의심하세요.

운영 관점에서는 «리전이 나쁘다」보다 «클라이언트가 언제 라디오를 껐는가»를 먼저 계측하는 편이 비용이 적습니다. 동일 증상을 겪는 팀은 도움말 센터의 SSH 스니펫과 이 매트릭스를 나란히 두고, 리전 선택은 요금 페이지의 숫자로만 하면 감정 논쟁이 줄어듭니다.

증상은 왜 보통 노트북에서 시작하는가—데이터센터가 아니라

SSH 는 장수명 TCP 연결입니다. 양 끝은 IP, 윈도 크기, 암호화 상태를 캐시합니다. macOS 가 뚜껑을 닫거나 다른 BSSID 로 로밍할 때 Wi-Fi 드라이버가 수십 ms 동안 라디오를 내리면, AP 버퍼가 얕을 경우 재전송 예산이 턱없이 부족해질 수 있습니다. HK / JP / KR / SG / US 안의 서버 입장에서는 세션이 말을 멈춘 것뿐이고, 사용자는 셸이 «얼었다»가 TCP 가 포기할 때까지 느낍니다. 이는 패킷이 늦게 도착하는 고 RTT(지연 최적화 가이드)와 다릅니다—후자는 느리지만 끊기지는 않습니다.

  • 절전: 기본 전원 정책이 NIC 큐를 멈추고, 깨어난 직후 ARP·DNS 갱신과 경쟁합니다.
  • 로밍: 빠른 전환에서 IP 는 같아도 L2 경로가 바뀌고, 일부 엔터프라이즈 WLAN 은 스테이트풀 방화벽 항목을 버립니다.
  • 테더링: LTE 재접속이 공인 IP 를 바꾸면 CGNAT 아래에서 기존 TCP 사각형이 즉시 무효가 됩니다.

따라서 SLO 를 잡을 때는 먼저 클라이언트 전원·무선 로그를 표준 샘플로 모으고, 그다음에 미니 쪽 패치나 리전 이전을 논의하는 순서가 재현 가능한 사고 분석에 맞습니다.

절전, App Nap, Wi-Fi 로밍과 TCP·UDP 의 상호작용

ServerAliveInterval 이 있으면 OpenSSH 가 주기적으로 애플리케이션 계층 트래픽을 보냅니다. 없으면 커널 TCP keepalive 만 남는데, macOS 기본은 유휴 세션에서 수 시간 간격일 수 있어 중간 미들박스가 먼저 잘라냅니다. Apple 노트북은 백그라운드 터미널에 App Nap 을 적용해—앱별로 끌 수 있음—「터미널로 돌아오면 갑자기 살아난다」는 패턴을 만듭니다. 배터리 모드의 공격적인 Wi-Fi 절전과 겹치면, 우리가 사내 세 WLAN 벤더에서 돌린 합성 로밍 하루 테스트에서 끊김 비율이 12% 를 넘는 구간도 있었습니다(환경마다 크게 다르므로 동기부여용 수치로만 쓰고, 반드시 본인 측정을 하세요).

IPv6 Happy Eyeballs 와 혼동하지 마세요. 책상에 앉아 있을 때도 멈춘다면 먼저 AAAA 레이싱을 점검한 뒤 로밍을 의심합니다.

UDP 기반 음성이 같은 머신에서 돌면 airtime 이 SSH 프로브를 밀어낼 수 있어, 평균 RTT 가 안정적이어도 셸이 굶는 착시가 납니다. 이때는 무선 측정과 애플리케이션 keepalive 주기를 함께 봐야 합니다.

4행 증상 매트릭스: 싱가포르 탓하기 전에 분류

관측 패턴유력 계층빠른 프로브심화 링크
뚜껑 닫은 뒤 30초 이내 끊김절전·전원 assertioncaffeinate -dimsu 로 일시적으로 절전 끄고 재현이 글 + 전원 설정
RSSI 가 −75 dBm 을 넘나들 때 끊김Wi-Fi 로밍·sticky client무선 진단에서 BSSID 변화 로그Wi-Fi 버퍼블로트 가이드
iPhone 핫스팟에서만 끊김CGNAT·캐리어 타이머끊김 전후 공인 IP 비교CGNAT 가이드
가만히 둔 셸이 15–25분 뒤 죽음NAT 미들박스 타임아웃ServerAliveInterval 30 활성화Keepalive 튜닝

6단계 클라이언트 런북

  1. 타임스탬프: pmset -g log 발췌로 절전 이벤트와 끊김을 맞춥니다.
  2. 캡처: Option+Wi-Fi 아이콘으로 로밍 이벤트·BSSID 델타를 적습니다.
  3. 적용: 호스트 스탠자에 ServerAliveIntervalTCPKeepAlive yes 를 넣습니다.
  4. 테스트: 로밍이 잦은 한 시간 동안 USB-C 이더넷 으만 같은 호스트에 붙여 안정적인지 비교합니다.
  5. 에스컬레이션: WLAN 팀에는 경로 진단 MTR 을 첨부합니다.
  6. 리전 재평가: 클라이언트 경로가 깨끗해진 뒤에만—감이 아니라 요금 데이터로 고릅니다.

배터리 모드, App Nap, 백그라운드 터미널 탭

배터리에서는 macOS 가 백그라운드 프로세스를 늦춰 런타임을 보존합니다. 앞에 없는 Terminal 탭은 타이머 코얼레싱 으로 설정한 ServerAliveInterval 간격이 늘어난 것처럼 보일 수 있습니다. 통제 실험으로 «절전 방지」를 켜거나 한 시간만 caffeinate -i ssh user@host 로 비교해 보세요. App Nap 은 앱별입니다—증거 수집 기간에만 Terminal·iTerm2·Warp 의 정보 창에서 끄고, 끝나면 다시 켜 조직 전체 배터리를 보호하세요. 하루 종일 코딩할 때는 장시간 세션은 유선 CPE, 나머지 트래픽은 Wi-Fi, 픽셀이 꼭 필요할 때만 VNC 가 이기는 패턴입니다.

건물 사이를 이동할 때 같은 노트북에서 VoWiFi 나 화상 통화가 돌면 SSH 용 airtime 이 줄어들 수 있습니다. 로밍이 불가피하면 사람용 셸은 Mosh, 서버에는 tmuxscreen 으로 프로세스 상태를 보존하고, AP 가 원할 때가 아니라 내가 정한 주기로 OpenSSH 재연결을 하게 만드는 편이 낫습니다.

미스터리 드롭 순간에 클라이언트에서 tcpdump 를 잡아 보면, Wi-Fi 대신 터널 인터페이스에서 RST 가 노트북 쪽에서 쏟아지는 경우가 있습니다—수정은 로컬이라는 냉정한 신호입니다.

ProxyMac 호스트용 SSH config 스니펫

Host proxymac-* HostName %h.your-domain.example User automation ServerAliveInterval 30 ServerAliveCountMax 6 TCPKeepAlive yes

함께 읽기: 불안정한 경로의 장시간 세션은 autossh 와 Mosh 장단점을 겸하세요—대화형은 Mosh, SCP·포워딩은 평문 SSH 가 맞습니다.

FAQ

ProxyMac 이 미니를 가까이 옮겨 주나요? 리전은 컴플라이언스·지연 전략에 매핑됩니다. 노트북을 먼저 고친 뒤 HK / JP / KR / SG / US 를 의도적으로 고르세요.

iCloud 릴레이가 SSH 에 영향을 주나요? 관계 없는 프록시로 터널링할 때만 해당됩니다. SSH 는 직접이거나 기업 CONNECT 문서대로만 두세요.

로밍 중 VNC 는요? 화면 공유도 같은 TCP 리셋을 겪습니다—VNC 기본을 보고, 경로가 안정될 때까지 적응형 화질 실험은 미루세요.

노트북이 순해진 뒤에도 Mac mini 가 이기는 이유

절전과 로밍을 다룬 다음에는 전용 Mac mini M4 가 자동화에 예측 가능한 CPU, 병렬 빌드를 위한 통합 메모리, 리눅스 렌탈에 얹은 macOS API 꿈을 대신할 네이티브 macOS 를 줍니다. ProxyMac 은 다섯 리전을 같은 런북으로 유지합니다. 플랜은 요금 페이지에서 비교하고, 이 매트릭스 옆에 도움말 센터 SSH 스니펫을 두며, GUI 휴식은 VNC 안내를 북마크하세요.

클라이언트를 안정화한 뒤 리고른다

HK / JP / KR / SG / US · Apple Silicon M4