Configuration d'un proxy SOCKS5 sur macOS : système entier, Terminal et par application
macOS dispose bien d'un paramètre de proxy SOCKS système, mais toutes les applications ne le respectent pas. Voici comment le définir dans Réglages Système et networksetup, router Terminal et les outils de développement, et vérifier le DNS et les fuites.
macOS dispose bien d'un paramètre de proxy SOCKS, ce qui donne l'impression d'un interrupteur à l'échelle du système. En pratique, Safari et certaines applications le respectent, tandis que Terminal, Homebrew et de nombreux outils de développement l'ignorent. Ce guide montre comment définir un proxy SOCKS5 sur macOS depuis Réglages Système et networksetup, puis comment faire en sorte que les outils que vous utilisez réellement le respectent sans fuites DNS.
Où se trouve le paramètre de proxy SOCKS de macOS
Ouvrez Réglages Système > Réseau. Sélectionnez Wi-Fi ou Ethernet, cliquez sur Détails, puis sur Proxies. Vous verrez des cases à cocher pour Proxy web (HTTP), Proxy web sécurisé (HTTPS), Proxy SOCKS, et d'autres. La section Proxy SOCKS demande un serveur et un port. Elle ne propose pas de menu déroulant pour la version du protocole. Pour un contrôle strict, configurez les applications individuellement avec socks5h lorsqu'elles le prennent en charge.
Définir le proxy SOCKS de macOS depuis Réglages Système
- Ouvrez Réglages Système > Réseau.
- Sélectionnez le service réseau actif, comme Wi-Fi.
- Cliquez sur Détails > Proxies.
- Activez Proxy SOCKS.
- Saisissez l'adresse du serveur et le port.
- Ajoutez les domaines de contournement dont vous avez besoin, comme les ressources locales.
- Cliquez sur OK et appliquez.
Gardez à l'esprit que ce paramètre affecte les applications qui respectent le proxy système de macOS. Il ne garantit pas que chaque connexion de chaque application passe par le proxy.
Le définir depuis Terminal avec networksetup
networksetup est utile pour les scripts, l'assistance à distance et les modifications rapides.
# Lister les services réseau
networksetup -listallnetworkservices
# Définir le proxy SOCKS pour Wi-Fi
networksetup -setsocksfirewallproxy 'Wi-Fi' 127.0.0.1 1080
# L'activer
networksetup -setsocksfirewallproxystate 'Wi-Fi' on
# Vérifier le paramètre actuel
networksetup -getsocksfirewallproxy 'Wi-Fi'
# Le désactiver
networksetup -setsocksfirewallproxystate 'Wi-Fi' off
Vous pouvez également définir des domaines de contournement :
networksetup -setproxybypassdomains 'Wi-Fi' '*.local' '169.254/16' 'localhost'
Utilisez des guillemets autour du nom du service réseau, en particulier s'il contient des espaces.
Faire en sorte que Terminal et les outils de développement utilisent SOCKS5
Les sessions Terminal n'héritent généralement pas du paramètre de proxy SOCKS de macOS. Définissez des variables d'environnement pour le shell actuel :
export ALL_PROXY=socks5h://127.0.0.1:1080
export all_proxy=socks5h://127.0.0.1:1080
Certains outils utilisent HTTP_PROXY et HTTPS_PROXY. Attention : tous les outils ne comprennent pas une valeur socks5h:// dans ces variables. Si un outil dispose d'une option SOCKS dédiée, utilisez-la à la place.
curl
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org
git
git config --global http.proxy socks5h://127.0.0.1:1080
git config --global https.proxy socks5h://127.0.0.1:1080
# Supprimer plus tard
git config --global --unset http.proxy
git config --global --unset https.proxy
Python
import requests
proxies = {
'http': 'socks5h://127.0.0.1:1080',
'https': 'socks5h://127.0.0.1:1080',
}
print(requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=10).json())
Notes sur les navigateurs : Safari, Chrome et Firefox
- Safari suit généralement le proxy système de macOS.
- Chrome sur macOS utilise généralement les paramètres de proxy système, sauf s'il est lancé avec des options de proxy explicites.
- Firefox dispose de ses propres paramètres réseau. S'il est configuré sur Utiliser les paramètres proxy du système, il devrait suivre macOS. Si vous avez besoin d'un DNS distant, configurez Firefox sur Configuration manuelle du proxy et activez Proxy DNS lors de l'utilisation de SOCKS v5.
Après avoir modifié les paramètres du navigateur, testez dans une fenêtre privée pour que les connexions en cache ne vous induisent pas en erreur.
Vérifier le proxy et repérer les fuites DNS
Vérifiez la configuration du proxy système :
scutil --proxy
Vérifiez l'IP de sortie :
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org
Comparez ensuite avec un test de fuite DNS. La distinction clé est socks5 contre socks5h : socks5 peut résoudre le DNS localement, tandis que socks5h envoie le nom d'hôte au proxy pour résolution. Si le géociblage est important, le DNS distant est généralement ce que vous voulez.
Le désactiver et éviter les pièges courants
- Désactivez le proxy lorsque vous n'en avez plus besoin ; sinon, les portails captifs et les appareils locaux peuvent échouer.
- Vérifiez les conflits avec les clients VPN et autres extensions réseau.
- Rappelez-vous que les paramètres de proxy système ne couvrent pas toutes les applications.
- Si le proxy s'exécute sur une autre machine, n'utilisez pas
127.0.0.1. - Vérifiez l'application réelle qui vous intéresse, pas seulement Terminal.
À retenir
macOS vous offre une véritable case à cocher pour le proxy SOCKS système, mais ce n'est pas une solution universelle. Utilisez Réglages Système ou networksetup pour les applications qui suivent le proxy système, puis configurez Terminal et les outils de développement directement avec socks5h et vérifiez le comportement DNS.