10 votes

Pourquoi les navigateurs ignorent-ils /etc/hosts derrière un proxy SOCKS ?

Mon MacBook au bureau n'a pas d'accès à Internet. J'ai donc mis en place un proxy SOCKS instantané via SSH pour naviguer sur le web.

Cependant, lorsque j'essaie d'ajouter une entrée à /etc/hosts, le navigateur ne va pas sur le site auquel je m'attendais...

Le WIFI de mon MacBook est éteint et est connecté au LAN de l'entreprise :

 Adresse IP : 192.168.8.250
 Masque de sous-réseau : 255.255.255.0
 Routeur : 192.168.8.1
 Serveur DNS : 8.8.8.8

Par défaut, il n'y a pas d'accès à Internet.

Il y a une boîte de développement Linux (192.168.12.128) qui a accès à Internet, donc j'ai configuré un proxy SOCKS instantané pour avoir accès à Internet pour mon MacBook :

 ssh -fND localhost:30000 ohho@192.168.12.128

Ensuite, dans les Préférences Système de mon MacBook > Réseau > Proxies

 (Activer) Proxy SOCKS
 Serveur Proxy SOCKS : 127.0.0.1:30000
 Ignorer les paramètres proxy pour ces Hôtes & Domaines :
   *.local, 169.254/16, 127.0.0.1

Maintenant je peux surfer sur le web, jusqu'ici tout va bien.

Pour le développement, j'ai configuré quelques entrées dans /etc/hosts pour des besoins de serveurs virtuels:

 127.0.0.1 air.company.com

Dans bash:

 $ ping air.company.com
 PING air.ohho.es (127.0.0.1) : 56 octets de données
 64 octets de 127.0.0.1: icmp_seq=0 ttl=64 temps=0,046 ms

 $ curl air.company.com
 OK

Cela semble bon et curl renvoie bien le contenu de l'index.html.

Cependant, si j'essaie d'ouvrir le site : http://air.company.com dans les navigateurs (Safari/Chrome/Firefox), aucun d'eux ne renvoie le résultat comme l'a fait curl. Chrome renvoie une erreur :

Cette page web n'est pas disponible La page web à l'adresse http://air.company.com/ est peut-être temporairement inaccessible ou a peut-être été déplacée de façon permanente vers une nouvelle adresse web. Erreur 120 (net::ERR_SOCKS_CONNECTION_FAILED) : Erreur inconnue.

Si j'ajoute une autre entrée dans /etc/hosts:

 127.0.0.1 www.microsoft.com

Dans bash:

 $ ping www.microsoft.com
 PING www.microsoft.com (127.0.0.1) : 56 octets de données
 64 octets de 127.0.0.1: icmp_seq=0 ttl=64 temps=0,047 ms
 64 octets de 127.0.0.1: icmp_seq=1 ttl=64 temps=0,128 ms
 ^C
 --- Statistiques ping de www.microsoft.com ---
 2 paquets transmis, 2 paquets reçus, 0,0% perte
 min/moy/max/dev = 0,047/0,087/0,128/0,041 ms

 $ curl www.microsoft.com
 OK

Cependant, les navigateurs renvoient le contenu du serveur web du vrai site Microsoft, au lieu du contenu de mon MacBook (127.0.01). Pourquoi?

p.s.

Si je désactive le proxy SOCKS, le navigateur renvoie correctement le contenu de 127.0.0.1.

Si je débranche le câble LAN, le navigateur renvoie correctement le contenu de 127.0.0.1.

9voto

nOw2 Points 276

Votre navigateur demande au proxy SOCKS pour les sites, il ne se connecte pas directement. Par conséquent, mettre l'adresse IP dans la liste des exceptions ne fonctionne pas, car votre ordinateur ne fait pas la recherche de air.company.com vers 127.0.0.1. Le proxy SOCKS le fait.

Pour éviter cela, placez le nom de domaine complet de ce que vous voulez accéder localement dans la liste des exceptions dans Préférences Système > Réseau > Proxy.

Donc pour air.company.com, vous auriez une liste d'exceptions (à partir de votre exemple ci-dessus) de :

  *.local, 169.254/16, 127.0.0.1, air.company.com

Votre ordinateur se connectera désormais directement à air.company.com, et utilisera donc /etc/hosts.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X