2026年 長 RTT 環境の macOS から SSH:クラウド Mac mini を責める前の IPQoS・圧縮・暗号チューニング
ProxyMac の Mac mini(香港・日本・韓国・シンガポール・米国)を欧州や米西海岸のノートから操作する開発者は、往復遅延 120〜220ms を見てすぐ「クラウド側 CPU が壊れている」と断定しがちです。こちらで切り分けた本番インシデントの半数以上は、ハードウェア差し替えの前に macOS 搭載の OpenSSH クライアント側で完結します。IPQoS による DSCP マーキング、Compression の可否、AEAD 暗号の固定、アイドル切断に効く ServerAlive 系の設定を整えるだけで体感は大きく変わります。本稿では 症状チェックリスト、ポストモーテムに貼れる 3 指標のベースライン、MTU 作業やリージョン計画と衝突しない 4 行のチューニング表、運用で回る 7 手順の ~/.ssh/config レシピ、そして PMTUD ブラックホールが真犯人の週末を潰さないための打ち切り条件まで、手順を密にまとめます。
ローカル調整の限界を超えたら クロスリージョンのノード選定へ進み、社内手順では ヘルプセンター の SSH レシピと併読しつつ、次のパイロット向けに リージョン別 SKU を比較してください。
誰が痛みを感じるか──「遅い」の定義
長 RTT は光速を変えません。ウィンドウ制御された往復が増え、人間がフィードバックを得るまでのラウンド数が増える、という意味での遅さです。対話シェルは RTT 150ms を超えると、行エディタの再描画ごとに ACK を待つ構造上、キー入力が重く感じられます。数ギガバイト級の Xcode アーカイブを scp する場面では、単一フローの TCP がパイプを埋められないときにスループットが潰れますが、それは多くの場合クライアントスタックと経路の相互作用であり、mini 側 SSD 単体の故障ではありません。Screen Sharing はさらに遅延を増幅しますが、本稿の射程は macOS 15 上の OpenSSH 9.x が、レンタル mini 上の素の sshd と会話するケースに限定します。
pingは軽いのにキー入力だけ重い:ICMP ではなく SSH チャネルのスケジューリング待ちが支配的。IPQoS と暗号の CPU 負荷が効きます。- 先頭メガバイト以降にスループットが崩れる:既に圧縮されたペイロードへさらに圧縮を掛けた結果の CPU 浪費、または家庭内 Wi-Fi のバッファブロートが典型。必ずしもデータセンターではありません。
- 深夜だけアイドルタブが切断:家庭用 CPE の NAT テーブルは 20〜45 分で再利用されがち。キープアライブ無しではサーバは接続継続と認識していても、クライアント UI は凍ったままになります。
インシデントメモに最初から書くべき3つの数値
設定を触る前に、以下をそのままチャットに貼り、地理と相関を「感覚」ではなく数値で追えるようにします。
| 指標 | 取得方法 | 近傍 ProxyMac ノードへの目安 |
|---|---|---|
| ICMP RTT p95 | ping -c 50 host の尾部を目視 | アジア域内 8〜35ms、欧州→米 140〜190ms(仕様上の遅延であって欠陥ではない) |
| 単一フロー SCP の goodput | scp -v large.bin host:~/ | 混雑のない Wi-Fi では自宅 ISP 契約下りの 35% 超を狙える帯域が最低ライン。下回るなら無線のエアタイムか MTU 系 |
| SSH ハンドシェイク時間 | time ssh -G host | head -1 と初回シェルプロンプトまでの実時間 | ホスト鍵キャッシュ後、初回シェルは RTT の 2.5 倍未満が望ましい。超過なら DNS か鍵交換負荷を疑う |
Ciphers を弄ってもフラグメント黒穴は直りません。
チューニング表:IPQoS・圧縮・暗号・キープアライブ
各行は独立して試せます。1 パスあたり変更は多くても 2 項目までにし、効果の帰属を残します。
| 項目 | 向いている場面 | トレードオフ | 初期値の例 |
|---|---|---|---|
IPQoS | バルク scp、rsync、git packfile | 対話シェルでは lowdelay 時よりわずかに「キビキビ感」が落ちることがある | ファイル同期セッションは IPQoS=throughput |
IPQoS | vim / emacs over SSH、tmux のステータス更新 | ピーク時のバルク吞吐が数パーセント落ちる可能性 | 対話専用ホストは IPQoS=lowdelay |
Compression | RTT 120ms 超かつテキスト・ログ主体 | 両端 CPU。動画や事前 gzip 済み成果物では有害になり得る | CI ログ追跡は Compression yes、.ipa 転送は no |
Ciphers / MACs | Apple Silicon 同士の経路 | レガシー列の誤設定は互換破壊に直結 | 第一候補 chacha20-poly1305@openssh.com、予備 aes256-gcm@openssh.com |
macOS クライアント向け 7 手順レシピ
- ホスト節をリージョン名で切る: 例
Host proxymac-jp。個人用 Git ホストへ設定が漏れないように名前空間を分離します。 - KEX と暗号を明示: OpenSSH のデフォルトは概ね安全ですが、インシデント中は変数を減らすのが先。
KexAlgorithms curve25519-sha256と選んだ AEAD の組を追記します。 IPQoS throughputを夜間バックアップに: 対話専用なら同じ節を複製しIPQoS lowdelayのプロファイルを分けます。- 圧縮は節ごとにトグル: グローバル
Compression yesだけは避け、負のスループットを経営説明に載せないで済みます。 - キープアライブ:
ServerAliveInterval 30とServerAliveCountMax 4は ControlMaster 多重化 の稿と同じ思想。長 RTT ほどアイドル喪失が目立ちます。 - 再測定: 変更ごとに 3 指標表を更新。RTT が 3% 未満しか改善しないのに CPU が倍なら戻します。
- 勝ち設定を社内 Wiki に固定: ホスト名の横に節全文を貼り、インターンが読む ヘルプ 記事へリンクします。
具体例(対話ホストは IPQoS lowdelay に差し替えた複製を用意する前提):
Host proxymac-jp
HostName mini.example.jp
User youruser
IPQoS throughput
Compression yes
Ciphers chacha20-poly1305@openssh.com
ServerAliveInterval 30
ServerAliveCountMax 4
Git に入れたら、10 分間の 盲検 A/B を依頼します。片チームは従来デフォルト、片チームは新節。体感レイテンシを 5 段階 Likert で集計し、表計算をインフラチケットに添付すると財務側にも定性情報が伝わります。
ノートPC側の微調整をやめる条件
選んだリージョンへの ping RTT が、データレジデンシーを満たした代替都市への RTT の 2 倍以上なら、ssh_config を弄るのは打ち切り、地理を動かしてください。レイテンシ最適化ガイド に APAC と米国の期待値が整理されています。毎晩、家庭内ストリーミングで Wi-Fi エアタイムが争奪される環境では、45 分かかるアップロードを DSCP マークだけで救うことはできません。Ethernet を検討してください。さらに traceroute で同一中間 AS に三日連続で損失が出るなら、MTR プレイブック の出力を添えて経路チケットを切り、暗号スイートの細部に逃げないでください。
ForwardAgent yes と長寿命の多重マスタを併用すると、盗まれたノートからの横展開が一瞬で成立します。SOC ベースラインで短命鍵を徹底し、性能調整とセットで設計してください。
よくある質問
Apple 同梱の ssh と Homebrew 版は違うのか。 QoS マークとサンドボックス周りは差が出ます。スクリプトが実際に叩くバイナリで検証してください。CI コンテナと対話 Terminal のパスが食い違う典型です。
衛星回線でも ControlMaster を有効にすべきか。 多くの場合 yes ですが、専用稿のとおり単一マスタが詰まると従属セッションがすべて巻き添えになります。停止診断を忘れないでください。
ProxyMac 側で触れるサーバ設定はあるか。 共有イメージでは root は稀です。sshd は読み取り前提にし、クライアント・経路・リージョンの三点に集中してください。
クライアントを整えたあとも Apple Silicon Mac mini が効く理由
IPQoS・圧縮・キープアライブを揃えたあとに残る余裕は、10 本の並列 sftp が一度に降ってきてもスタッタしないハードウェアから来ます。ProxyMac ノードの M4 は CI 嵐の最中でも HK / JP / KR / SG / US の SSH エンドポイントを安定させ、macOS ネイティブのツールチェーン要件にそのまま応えます。勝った Host 節をリージョン SKU の横に貼り、オンボーディングチェックリストから本稿へリンクしてください。VM が Mac のふりをする過密環境より、予測可能なベアメタルに載せたほうがチューニングの単価は安く済みます。