節點與延遲 2026年5月8日

2026 多筆 DNS A 紀錄與 SSH「黏性」:當 ProxyMac Mac mini 主機名在香港/日本/韓國/新加坡/美國解析出多個 IPv4 時,實際發生什麼事

ProxyMac 工程團隊 2026年5月8日 約 13 分鐘閱讀

連線至遍布香港、日本、韓國、新加坡、美國、租用Apple Silicon M4 Mac mini機隊的維運者有時執行 dig +short A mini.example.com,看到四個不同的 IPv4,便擔心 SSH 會像負載平衡的 HTTP 一樣在連線中途「輪換」。實情較單純但仍須謹慎:DNS 回答的是候選清單;已建立的 TCP 連線才決定真正走哪條路。本文拆解(1) 為何多筆紀錄很少劫持仍開著的互動 shell;(2) 何時會咬人—多半是 CI 重連風暴而非每次按鍵;(3) 比較人類、機器人與跳板機的四欄矩陣(4) 含數字檢核(300 秒 TTL 對 24 小時連線)的八步穩定手冊(5) 與 IPv6 文中 AAAA + Happy Eyeballs 的交互,並連結 解析器異常固定 egress IP 允許清單IPv6/Happy Eyeballs。在把現象歸咎於「亞洲路由」之前,請先讀這篇—很多案例純屬 DNS 政策。

已建立的 TCP 不會因後續 DNS TTL 到期而自動改道

當 OpenSSH 與位址 203.0.113.44 完成三次握手後,後續封包的 IP 標頭仍指向該處,即使權威 DNS 稍後把另一筆 A 紀錄輪進輪換。筆電上的 stub resolver 在你開啟 socket 前不再參與—通常是又一次 ssh,或閒置已久的跳板終於重連。HTTPS 負載平衡會頻繁重連,令人誤判;而 SSH 自動化有時每 90 秒重連一次,反而會暴露輪詢,真人長連線則往往無感。

  • 量化參考:內部遙測約 18%「SSH 一夜換區」工單來自編排重連迴圈,而非電信路由。
  • 故障樣態:CI 使用 ssh -o ConnectionAttempts=12,若封包遺失又碰上 DNS 順序重排,會看似後端不停抖動。
  • 安全細節:主機金鑰綁定仍看名稱;多筆 A 若無一致的 PTR,可能觸發與延遲無關的 SOC 告警。
請記住:把 TTL 從 3600 秒縮到 60 秒只加速新連線的容錯—不會搬移既有 TCP 連線。

基礎設施團隊為何發布多筆 A 紀錄

地理感知 DNS、anycast 前端或 active/active 叢集合理回傳多個 IPv4,讓客戶端自然分流。以 Apple 生態為主的 CI 也能在 HK/JP/KR/SG/US PoP 間分散建置而無需人工試算表—但決定性流水線需要決定性端點。這是政策張力,不是單純掉包。若需證明「第一次連到哪台後端」,請搭配 MTR 診斷

四欄矩陣:誰最先感受到 DNS 輪換

角色 典型重連間隔 會察覺多 A 漂移嗎? 緩解優先順序
互動式開發者 shell 數小時(單一連線) 很少—除非 VPN 斷 TCP 使用穩定的跳板主機名
GitHub Actions → SSH 部署 每次 job(3–12 分鐘 常見—每次 job 重新解析 鎖數字 IP 或僅單一 A 的專用名稱
經 SSH 隧道的 rsync 單次長傳輸 傳輸中途不換跳 依 keepalive 指南留意閒置斷線
OpenClaw 閘道北向 SSH 守護進程重連迴圈 故障時會 對齊 閘道復原

八步手冊:讓 SSH 目的地可預測

  1. 盤點答案:至少連續執行 五次 dig +short A 主機名—記錄排序差異。
  2. 記錄現有對端:macOS 可用 lsof -nP -iTCP -sTCP:ESTABLISHED | grep ssh;Linux 改用 ss -tnp
  3. 比對閒置逾時:TCP keepalive 文章 調整 ServerAliveInterval,避免 NAT 悄悄逼你重連。
  4. 凍結自動化:DNS 遷移期間暫停 cron 驅動的重連腳本—別放大局部故障。
  5. 建立單一 A 跳板別名:例如 stable-mini-sg.provider.example 僅指向維護核准的位址。
  6. 驗證 SaaS egress:若 API 白名單 IP,後端搬遷時務必交叉檢查 出站穩定性
  7. 文件化 TTL 計算:同時記錄權威 TTL 與本機 stub 快取—覆寫後常見 30–120 秒落差。
  8. 事後檢討模板:時間戳、受影響區域(HK/JP/KR/SG/US)、IPv6 是否參與。
別誤會:設定 CheckHostIP no 無法阻止多 A—它只放寬 known_hosts 內的 IP 釘選。請搭配 主機金鑰衛生,而非盲目關閉檢查。

雙堆疊現實:AAAA 競速可能蓋過 IPv4 輪詢

RFC 8305 Happy Eyeballs 可能在您僅手動查 IPv4 時就建立了 IPv6—造成「SSH 選錯 A」的假像。請同時擷取:dig AAAA +shortdig A +short。若 IPv6 路徑異常,先調 Happy Eyeballs 再改區檔。

若 DNS 變動同時伴隨 MTU 黑洞,請走 PMTUD 卡頓—接近 1400 位元組的封包常與隧道疊加有關,而非多 A。

常見問題

系統完整性保護(SIP)會改 DNS 嗎?不會—SIP 保護二進位檔,不保護解析器快取。

ProxyMac 每週輪換位址嗎?僅在公告維護時;請訂閱供應商通知,勿只猜 TTL。

該用 ssh -4 嗎?調查 IPv6 時可暫時使用—別當成永久掩蓋 DNS 架構債的手段。

為何 ProxyMac Mac mini 適合搭配明確的路由紀律

當您把自動化釘在可預測端點後,租用在 HK/JP/KR/SG/USMac mini M4 能以一致 macOS 行為支撐 Xcode 與自動化,無需採購實體機。Apple Silicon 待機功耗低,適合長駐編排;同一機隊也能測雙堆疊。方案比較見 定價頁,DNS 情境演練見 說明中心;若需人工確認位址的 GUI 流程,請搭配 VNC 說明

先選區域—再釘死 DNS 策略

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