2026 MacBook スリープ、ディスプレイクローズ、Wi-Fi ローミングと ProxyMac Mac mini への SSH 切断
Apple Silicon M4 の mini を香港・日本・韓国・シンガポール・米国で借りる開発者からよく聞くのは、「オフィスを歩いて東京の SSH が途切れる」という報告です。ProxyMac 側は健全なことが多く、実際にはMacBook クライアントが Wi‑Fi を省電力停止させたり AP をまたいだり、会社 SSID からテザリングへ切り替えたりしているだけです。本稿では(1) スリープと802.11 ローミングが TCP をどう壊すか、(2) それを Wi‑Fi バッファブロート や WAN 側キープアライブタイムアウト とどう切り分けるか、(3) チケットに貼れる四列表、(4) 六ステップとそのまま使える ~/.ssh/config をまとめます。テザリングがCGNAT を挟む場合は 逆 SSHへ、巨大転送だけが詰まるなら PMTUD を優先してください。
症状はまずノート側——データセンターだけではない理由
SSH は長寿命の TCP であり、両端は IP・ウィンドウ・暗号状態をキャッシュします。macOS がディスプレイを閉じたり別 BSSID に付け替わったりすると、Wi‑Fi ドライバがラジオをわずかな時間だけ落とし、その間に進行中パケットが再送回数からこぼれることがあります。HK / JP / KR / SG / US にあるサーバ視点では単に沈黙しますが、ユーザーにはシェルが「固まった」ように見えます。これは高 RTT(遅いが届く)とは異なります。クロスリージョン最適化 を読んでください。RCA ではクライアントの電源イベントとサーバログを時系列でつなぐことが決定的です。
- スリープ:既定の電源ポリシーが NIC キューを止め、復帰時に ARP と DNS の競合が起きる。
- ローミング:高速遷移で IP を保ちながら L2 パスが変わり、企業 WLAN ではステートフル FW エントリが消える例もある。
- テザリング:LTE/5G の再附帯で CGNAT 下の公開 IP が変わり、既存の TCP 四つ組が無効になる。
同じ mini に Thunderbolt ドック経由の有線だけで繋げば安定するのに、東京リージョンを疑うのは典型的な誤誘導です。まずクライアント経路を観測可能な証拠に落としてください。
TCP と UDP がスリープ、App Nap、Wi‑Fi ローミングと相互作用する仕組み
OpenSSH は ServerAliveInterval がある場合のみ周期的なアプリケーションレベルの通信を送ります。無い場合、TCP keepalive はアイドル時約 2 時間に一度しか発火しないことがあり、長時間シェルを守りません。Apple のノート PC はバックグラウンドのターミナルに App Nap を適用し、「SSH が固まってフォーカスを戻したら動いた」という体感になり得ます。バッテリー駆動では Wi‑Fi の省電力も重なり、ある現場ではローム負荷の高い 8 時間で切断率が12% を超える合成試験もありました(ベンダ依存であり保証値ではありません)。計装が目的です。
Activity Monitor のエネルギー列と log stream を並べれば、バックグラウンド ssh がサスペンドされていないか確認できます。証拠が揃えば組織の無線チームとの議論も短く済みます。
四行のローミングマトリクス——シンガポールを責める前に分類する
| 観察パターン | 推定レイヤ | 簡易試験 | 詳細リンク |
|---|---|---|---|
| ディスプレイを閉じて30 秒以内に切断 | スリープ/電源宣言 | caffeinate -dimsu でタイムボックス比較 | 本記事と電源設定 |
| RSSI が−75 dBm をまたぐ歩行で切断 | Wi‑Fi ローム/スティッキークライアント | ワイヤレス診断で BSSID 変化をログ | Wi‑Fi ガイド |
| iPhone ホットスポットのみ | CGNAT/キャリアタイマー | 切断前後のグローバル IP を比較 | CGNAT |
| 静止時に15–25 分アイドルで切断 | NAT ミドルボックスタイムアウト | ServerAliveInterval 30 を有効化 | キープアライブ調整 |
この表は「どの説明筋がチケットに書けるか」を固定するためのものです。一回の ping 平均だけで WAN とローカルを混ぜないでください。
六ステップのクライアント手順書
- タイムスタンプ:
pmset -g logでスリープイベントと切断を突き合わせる。 - キャプチャ:メニューバー Wi‑Fi を Option クリックして BSSID の差分を記録。
- 適用:Host 節に
ServerAliveIntervalとTCPKeepAlive yes。 - テスト:ロームが多い時間帯に同一ホストへUSB‑C 有線でも張り、安定なら WLAN が本命。
- エスカレ:パス診断 の MTR を無線チームへ。
- リージョン再評価:クライアント経路が白けてから 料金 で選ぶ。
バッテリーモード、App Nap、バックグラウンドのターミナルタブ
バッテリー駆動ではタイマー合体がキープアライブ間隔を引き延ばし、設定した ServerAliveInterval より遅く感じることがあります。制御下のテストで「スリープを防ぐ」を有効にするか、caffeinate -i ssh user@host を 1 時間だけ当てて挙動差を見てください。App Nap はアプリ単位でオフにでき、証拠集めのあと元に戻してバッテリー消費を守ります。長時間 ProxyMac mini 向けに作業するなら、本番セッションは CPE 有線、会議とブラウザを Wi‑Fi、ピクセル作業だけ VNC が現実的です。
同一ノートで VoWiFi やビデオ会議が走ると、東京への平均 RTT が滑らかでも空気時間を奪われます。ロームが避けられないなら対話シェルは Mosh を検討し、サーバ側は tmux で状態を保持してください。
クライアント側 tcpdump で RST が自分のマシンから出ているなら、ケーブルより先ではなく手元が修正ポイントです。
ProxyMac 向け SSH 設定断片
Host proxymac-*
HostName %h.your-domain.example
User automation
ServerAliveInterval 30
ServerAliveCountMax 6
TCPKeepAlive yes
FAQ
mini を身近な拠点に移してもらえるか? リージョンはコンプラと遅延方針のマッピングです。先にノートを直し、HK / JP / KR / SG / US をデータで選んでください。
iCloud リレーは? 関係のないプロキシを通す場合のみ。直列接続か、CONNECT 手順に従って文書化します。
ローム時の VNC は? TCP のリセットは同じです。VNC 基礎 を読み、経路が安定するまで適応画質実験は避けてください。
ノートが落ち着いたあとも Mac mini が勝つのはなぜか
スリープとローミングを抑えたうえで、専用 Mac mini M4 は自動化に予測可能な CPU、並列ビルド向けのユニファイドメモリ、空想のハックintosh ではなくネイティブ macOS API を提供します。ProxyMac は五リージョンで同一手順書を共有できます。料金ページ でプランを比較し、ヘルプ の SSH 断片をこのマトリクスと並べ、GUI が必要なら VNC 資料 を手元に。