SSH / VNC 23 avril 2026

2026 : keepalive TCP, TCP_USER_TIMEOUT et session SSH inactif vers une Mac mini louée chez ProxyMac

Équipe Ingénierie ProxyMac 23 avril 2026 ~12 min de lecture

Les opérateurs SSH depuis l’Europe ou la côte est des États-Unis vers un ProxyMac Mac mini à Hong Kong, Tokyo, Séoul, Singapour ou aux États-Unis voient des sessions actives s’il tape, puis une disparition 7–25 min d’inactivité avec Cursor ou tail -f. Moins souvent, Apple est en cause : minuteries silencieuses côté middlebox et sockets par défaut qui prouvent trop peu. Ce guide donne un modèle en deux couches (keepalives + TCP), un tableau de décision, un bloc ~/.ssh/config (sonde toutes 30s, quatre manques d’acquiescement avant l’abandon), une suite de sept sondes (Wi-Fi hôtel, souvent 120s), des liens vers autossh, Mosh, keepalive, réglage client haute latence et puits de MTU pour ne pas traquer l’infrastructure TCP quand c’est l’IPQoS.

Conservez les ressources Aide et, une fois le chemin sûr, comparez les tarifs par région.

Lorsqu’en longue distance, SSH s’endort sans message

Les symptômes s’assemblent en (A) terminal figé, pas d’en-tête, pas de Broken pipe avant une touche ; (B) client_loop: send disconnect: Broken pipe 120–900s après le dernier paquet ; (C) l’interactif reste, scp/rsync bloqués 0 %. (A) ≈ liaison NAT expirée sans RST — Wi-Fi invité, UDP priorisé, TCP affamé. (B) ≈ pare-feu avec durée de flux. (C) mélange puits PMTUD — consulter l’article MTU avant de tourner inutilement les nombres keepalive.

  • Partage d’écran en tunnel gonfle les périodes muettes, la vidéo se fige.
  • Les Sauts en chaîne, autant de minutes possibles, par ex. 300s.
  • git pull déclenché côté mini : le transport parait muet, même si l’hôte côté serveur agit.

Keepalive noyau vs. ServerAliveInterval

Le noyau peut tenter d’émettre après net.inet.tcp.keepidle, on ne pilote pas les FAI. ServerAliveInterval injecte des trames de protocole, réveille les hauts niveaux sans attendre la valeur par défaut, parfois deux heures. C’est complémentaire : SSH, la session ; TCP, le quartet bout à bout.

Chiffres à citer : sondes 30s, 4 manques, RTT moyenne de chemin 280ms afin d’expliquer le choix de région.

Tableau ciblé par type de symptôme

Signature1ʳᵉ poignée2ᵉ poignéeEscalader
Inactif 15m+, touche = rétablissementServerAliveInterval 30réduire le nombre de sautsnoter le BSSID, Wi-Fi invité
Pipe cassée à des multiples de 300sclient TCPKeepAlive yesControlMasterexiger la minuterie FAI
SCP bloqué, pas d’inactif en même tempsclamp MSStest PMTUrégion au tableau latence
Échec nocturnecron curl depuis le miniDHCPtirer la tâche vers la mini

~/.ssh/config pour alias ProxyMac

Étiquetez HK, JP, KR, SG, US explicitement. Cet échantillon vise HK. IPQoS n’arrive qu’après le long guide — mal choisir, affamer les sondes pendant la copie.

Host proxymac-hk-dev HostName your-node.proxymac.com User youruser ServerAliveInterval 30 ServerAliveCountMax 4 TCPKeepAlive yes IPQoS throughput ControlMaster auto ControlPath ~/.ssh/cm-%r@%h:%p ControlPersist 10m

Séquence en sept étapes pour le runbook

  1. RTT : ping -c 20, moyenne, p95.
  2. Session sans effort, inactif 12 min — retour d’écho ?
  3. ssh -vvv jetable, rechercher un blocage expecting SSH2_MSG_KEXINIT.
  4. SCP parallèle (512 Mo) ; si le débit s’effondre après 90s, c’est l’MTU, pas ici.
  5. VPN, split-tunnel, UDP paresseux vs. TCP envers la mini.
  6. si sshd = vous, ClientAliveInterval n’en envoie 10s tandis que 30s côté client, énergie gaspillée.
  7. fichier final, même Git + notes launchd d’OpenClaw.

Avec autossh, Mosh, RTT, sans appliquer deux corrections pour la même cause

Le guide autossh + Mosh a la supervision, ce guide couvre l’OpenSSH seul en TCPgit+ssh, ssh -L vers l’hôte, rsync. Ciphers/IPQoS après, les AEAD chargent l’M4 sur copie : article IPQoS & chiffrements.

Attention : ServerAliveInterval 5 bouscule DDoS edge — gratter légèrement, pas par rafale.

FAQ

Baisser tcp keepidle côté mini ? Surtout client d’abord, la plupart des pannes côté portable.

ControlMaster, pire inactif ? Multiples sessions sur le même flot — si ce flot a un 60s côté Wi-Fi, toutes s’y accrochent, surveiller.

IPv6 ? Noter d’abord le groupe d’adresse choisi.

Pourquoi le mini loué a rendu la propreté mesurable

Sur M4, banc fixe, HK / JP / KR / SG / US, moins d’NATTings cafés, Partage d’écran pour TCC, tarif linéaire = argument pour une deuxième mini, pas d’un tunnel samedi.

Loue la région qui s’aligne sur les timers

Mac mini HK / JP / KR / SG / US, SSH en place