VPN et proxys

Votre IP publique et la route du VPN, les apps de proxy, le coupe-circuit VPN et le test de fuite.

VPN et IP publique

État › Sortie du trafic, le menu Wi-Fi et kilobat ip montrent l’interface qu’utilise la route par défaut et s’il s’agit d’un VPN, d’après les routes de ce Mac et les VPN que macOS indique comme connectés. Un VPN connecté alors que la route par défaut reste sur le Wi-Fi, comme Tailscale sans nœud de sortie, apparaît comme Partiel : seules certaines destinations passent par lui. Activez Réglages › Réseau › Rechercher l’IP publique pour voir aussi l’adresse que voient les sites web, demandée à Cloudflare à chaque changement de réseau et toutes les 30 minutes, avec le pays où elle est enregistrée d’après les données DB-IP fournies avec Kilobat. L’option est désactivée par défaut, car Cloudflare voit cette requête ; kilobat ip --public la fait une seule fois. Le pays d’enregistrement n’est pas l’endroit où vous ou un serveur vous trouvez, et ni lui ni un VPN ne prouvent qu’une connexion est privée ou anonyme. Réglages › Barre des menus › VPN ajoute Activé, Partiel ou Désactivé (avec le code pays si la recherche est activée) à côté de la chauve-souris, et l’Historique indique quand un VPN a été activé ou désactivé et quand l’IP publique a changé.

Proxys et VPN

Kilobat fonctionne aux côtés des apps proxy (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, Surge, sing-box, Stash, V2Ray, Xray, Shadowsocks) et des VPN. Il se contente de les lire : il ne route jamais le trafic et ne modifie jamais leurs réglages.

  • Le trafic compte pour la bonne app. Une app qui passe par un proxy local se voit attribuer son propre trafic, et le cœur du proxy ou le tunnel VPN qui le transfère est marqué « Transporte le trafic d’autres apps » au lieu d’être compté deux fois.
  • La route prise par chaque app. Avec une API compatible Clash (Clash Verge, ClashX, mihomo, Mihomo Party, FlClash, clash_api de sing-box), la ligne d’une app indique le nœud emprunté, par exemple « via HK-01 · 2 en direct », et son infobulle liste chaque hôte, nœud et règle. Kilobat lit l’adresse de l’API et le secret dans la configuration de l’app elle-même, et n’affiche jamais le secret.
  • Les problèmes, dans « Par où sort le trafic » de l’onglet État :
    • un proxy système qui pointe vers une app fermée, ce qui casse tous les navigateurs ;
    • un DNS ou un IPv6 qui contournent le VPN ;
    • un proxy et un VPN qui prennent tous deux le trafic ;
    • le mode global ;
    • un blocage qui ne voit pas les apps derrière un proxy système. Les filtres de macOS ne voient jamais les connexions vers 127.0.0.1 : activez donc le mode TUN du proxy, ou bloquez l’app dans les règles du proxy.
  • Pourquoi ça ne se connecte pas ? ajoute une couche « App proxy » avec le mode du proxy et la vitesse de réponse de ses nœuds actuels, et signale quand un nœud mort est en cause.

Dans le Terminal : kilobat proxy, kilobat proxy routes --app Telegram, kilobat proxy test et kilobat vpn. Pour un cœur que Kilobat ne trouve pas seul, passez --controller 127.0.0.1:9090 --secret …. Les agents obtiennent la même chose via get_proxy_status, test_proxy_nodes et check_vpn.

Coupe-circuit VPN

Avec Pro et le filtre réseau activé, activez Coupe-circuit VPN dans Réglages › Réseau. Si votre VPN se coupe, Kilobat bloque les nouvelles connexions jusqu’à son retour, pour que rien ne sorte entre-temps par le Wi-Fi du café ou de l’hôtel. Le panneau et le tableau de bord affichent Bloqué : VPN coupé, la chauve-souris de la barre des menus reçoit un cadenas, et une notification propose Autoriser pendant 5 minutes.

  • Il s’arme dès que votre VPN est connecté. Le coupe-circuit attend que votre VPN ait transporté tout le trafic une fois depuis le démarrage du Mac : l’activer sans VPN ne vous coupe donc jamais. Ensuite, jusqu’au prochain redémarrage, il bloque dès que le VPN est coupé, sur tous les réseaux, car c’est au moment où vous rejoignez un nouveau réseau que les apps fuiraient. Un VPN partiel qui ne transporte que certaines destinations est considéré comme coupé.
  • Ce qui se connecte encore : votre app VPN, ses assistants et son extension réseau (WireGuard, Tailscale, Mullvad, NordVPN, Proton VPN, ExpressVPN, Surfshark, Cisco Secure Client, GlobalProtect, OpenVPN Connect, Tunnelblick et d’autres, ainsi que toute app VPN pour laquelle macOS a une configuration), les services réseau d’Apple (DNS, DHCP, vérifications de certificats, la fenêtre de connexion au réseau, les VPN intégrés), Kilobat, et le réseau local sauf si vous le désactivez. Tout le reste attend, quels que soient ses règles ou son profil, Sans restriction compris.
  • La porte de sortie. Autoriser pendant 5 minutes dans le bandeau, la notification ou le menu contextuel de la barre des menus laisse tout passer, pour une page de connexion au réseau ou une vérification rapide, puis bloque à nouveau si le VPN est toujours coupé. Désactiver se trouve juste à côté, ainsi que dans les Réglages.

Ce qu’il ne peut pas faire : le filtre ne voit que les nouvelles connexions, donc celles déjà ouvertes quand le VPN s’est coupé continuent, même si la plupart meurent avec le tunnel qu’elles utilisaient. Les requêtes DNS sortent toujours, pour que le VPN puisse trouver son serveur. Si Kilobat est fermé, le filtre garde le dernier état reçu et bloque toujours quand l’interface du tunnel VPN disparaît ; ouvrez Kilobat pour autoriser le trafic ou le désactiver. Dans le Terminal : kilobat settings kill-switch on, et kilobat vpn ou kilobat conditions affichent son état ; les agents le lisent dans check_vpn et get_conditions, et set_kill_switch vous demande d’abord.

Test de fuite VPN

Avec votre VPN activé, cliquez sur Rechercher des fuites dans État › Par où sort le trafic ou dans Réglages › Réseau. En une dizaine de secondes, Kilobat vérifie trois façons dont le trafic peut contourner un VPN et indique pour chacune réussite ou échec, avec le réglage qui corrige le problème, nommé comme dans votre app VPN quand Kilobat le connaît (Mullvad, NordVPN, Proton VPN, ExpressVPN, Tailscale, WireGuard ; pour Cisco, GlobalProtect et les autres VPN professionnels, ce qu’il faut demander au service informatique).

  • DNS. Les résolveurs qu’utilise macOS pour les requêtes ordinaires, et la route vers chacun : un résolveur joint par Wi-Fi ou Ethernet au lieu du tunnel laisse fuir chaque nom que vous consultez. Kilobat résout aussi quelques noms inventés via bash.ws, qui indique les résolveurs qui ont posé la question ; un résolveur qui n’est ni celui de votre VPN ni un service DNS public comme Cloudflare ou Google est probablement celui de votre fournisseur d’accès.
  • IPv6. Un VPN qui ne transporte que l’IPv4 alors que le Mac a une route IPv6 via le Wi-Fi envoie votre vraie adresse aux sites IPv6. Kilobat demande votre adresse IPv6 à api6.ipify.org pour montrer ce qu’ils voient, et indique le réglage du VPN, ou comment désactiver l’IPv6 pour le réseau (Réglages Système › Réseau › Wi-Fi › Détails › TCP/IP › Configurer IPv6 › Lien local uniquement).
  • UDP et WebRTC. Le WebRTC d’un navigateur envoie de l’UDP depuis chaque interface réseau. Kilobat envoie une requête STUN (au serveur de Google ou de Cloudflare) par le VPN, et une autre directement par le Wi-Fi ou l’Ethernet : si la seconde reçoit une réponse, ou si la première revient depuis une autre adresse que la sortie du VPN, une page peut connaître votre vraie adresse. La solution est le coupe-circuit ou l’option de verrouillage du VPN. Kilobat ne peut pas exécuter le WebRTC d’un navigateur, il indique donc aussi comment empêcher les navigateurs de partager vos adresses locales : Safari les masque ; Firefox avec media.peerconnection.enabled désactivé ; Brave avec sa règle de traitement des adresses IP WebRTC ; Chrome avec l’extension WebRTC Network Limiter de Google.

Le test de fuite est gratuit. Il ne modifie rien, et les services qu’il interroge voient votre adresse comme n’importe quel site. Un test réussi vaut pour ce Mac à ce moment-là, pas pour chaque app. Dans le Terminal : kilobat vpn leaks (renvoie 1 en cas de fuite, --json pour les scripts) ; les agents utilisent check_vpn_leaks.