Simuler la manipulation du fichier etc / hosts dans Google Chrome


30

Comment puis-je configurer Chrome pour référencer les recherches de nom d'hôte localement et non à partir du fichier standard etc / hosts?

Lors du débogage d'un site Web, il est parfois utile de configurer des entrées dans C: \ Windows \ system32 \ drivers \ etc \ hosts qui remplacent certains domaines par localhost, me permettant ainsi de tester à la volée des sites Web ou des domaines qui peuvent conflit avec des sites réels.

Puis-je configurer Google Chrome d'une manière qui simule et simplifie ce processus?

Je ne modifierai pas l'instance du navigateur pour se comporter comme si etc / hosts avait été modifié, même si cela pourrait être trop dangereux pour une extension.


Veuillez lancer
Ali

Réponses:


13

Je viens de trouver l' extension Chrome Host Switch Plus qui fait exactement cela;)


Host Switch Plus ne fonctionne pas pour moi et pour beaucoup d'autres.
zylstra

1
Host Switch Plus ne fait PAS exactement cela. Il change de proxy. Mais l'objectif est de changer l'IP du domaine. (Émuler le serveur DNS)
TEXHIK

Ne fonctionne pas pour moi, désolé.
Serzhan Akhmetov

7

Une façon d'atteindre votre objectif réel n'implique pas du tout les extensions Chrome, ni même Chrome. Cette méthode consiste à configurer un serveur HTTP proxy intelligent, à pointer Chrome vers celui-ci, puis à ajouter des règles de réécriture au serveur proxy qui réécrivent les URL sous les couvertures.

Il y a beaucoup de gens qui font cela, avec différents serveurs HTTP proxy différents - trop nombreux pour couvrir chacun en détail dans une réponse ici. Ils le font à des fins de zapping de publicités, de bogues Web, etc., mais le principe et le mécanisme sont identiques à ce que vous voulez faire. Ils veulent que le navigateur WWW récupère une URL particulière comme d'habitude, mais le contenu réel qu'il reçoit doit être celui d'une autre URL (locale ou autre). La seule chose que le navigateur WWW doit savoir, c'est qu'il communique avec Internet via un serveur proxy.

Pour un exemple, consultez Ad Zapper sur SourceForge . Il s'agit d'un script Perl qui fonctionne en conjonction avec le serveur HTTP proxy Squid pour réécrire les URL à la volée sur le serveur proxy. Comme vous pouvez le voir dans sa base de données de configuration, les gens ont utilisé son mécanisme pour un large éventail d'objectifs, allant de s'assurer que l'on voit toujours les formes "imprimables" d'articles sur les services de nouvelles à se débarrasser des redirections publicitaires aléatoires sur les sites de pornographie sur Internet.

Notez que c'est bien mieux que ce que vous faites avec le hostsfichier, qui est un mécanisme inapproprié pour manipuler le service WWW. hoststraite uniquement le nom → les recherches d'adresses, détruit tout le reste (en dehors du navigateur WWW) qui doit faire le nom → les recherches d'adresses et (comme vous le savez probablement déjà), chaque nom d'hôte réécrit doit être configuré en tant qu'hôte virtuel sur le serveur HTTP de contenu cible. Un serveur HTTP proxy de réécriture de ce type, en revanche, traite les URL et n'affecte que HTTP et les navigateurs WWW configurés pour l'utiliser en premier lieu. Il peut donc faire des choses comme seulement réécrire les URL JavaScript et laisser tout le reste du même site WWW seul; réécrire une charge entière de noms d'hôtes en un seul; et faire (encore plus) la correspondance de motifs. (Il y a des exemples de cette chose même dans la base de données de configuration d'Ad Zapper, remarquez.) Et on peut faire des choses comme avoir un navigateur WWW qui regarde le monde via le proxy de réécriture et un autre qui le regarde directement, sur une seule machine simultanément.


Un avantage supplémentaire par rapport à une extension chrome - il fonctionne sur plusieurs navigateurs! Pour le moment, j'utilise toujours le fichier hosts, mais je vais envisager de passer à un proxy si le besoin se fait sentir.
ripper234

4

J'ai utilisé (et utilise toujours) HostAdmin religieusement, mais avoir à vider le cache ou à ouvrir une nouvelle fenêtre de navigation privée à chaque fois a toujours été une corvée, j'ai donc fini par développer une extension Chrome pour moi l'année dernière pour aider dans une situation similaire, et J'en ai récemment publié une version très approximative dans le Chrome Web Store, elle s'appelle LiveHosts .

L'essentiel est que si @JdeBP a raison et que la configuration d'un proxy serait la bonne solution, ce n'est souvent pas une option. Une extension Chrome ne peut pas reproduire exactement ce qui se passe lorsque vous modifiez le fichier hôte, donc ce que LiveHosts fait actuellement est:

  • vous permet de configurer plusieurs entrées de nom d'hôte / IP;
  • détecter les demandes à l'un des noms d'hôtes définis;
  • rediriger la demande vers l'IP souhaitée avec l'en-tête HTTP Host approprié;
  • ajouter une référence visuelle (et moche, je l'admets) dans l'URL de la barre d'adresse, qui ressemblera à quelque chose http://127.0.0.1/www.example.com/whateverelse;
  • autorisez différents couplages hôte / IP dans différents onglets en même temps.

Ce n'est pas joli, mais c'est assez bon pour le développeur Web standard qui essaie de basculer rapidement entre les environnements. Il y a bien sûr quelques mises en garde:

  • selon le serveur, certaines parties d'une page Web faisant référence à l'URL du site (comme les attributs href et src) peuvent être différentes de l'original;
  • window.location a une valeur différente qui peut potentiellement supprimer des extraits de code JavaScript;
  • la plupart des demandes Cross-Origin ne fonctionneront pas.

0

Le plugin Virtual Hosts est le seul qui fonctionne pour moi comme je m'y attendais.

Accédez aux hôtes virtuels d'un serveur sans avoir besoin de redirection d'hôte ou DNS.


2
Pour moi, cette extension semble faire une redirection côté client vers l'adresse IP, ce qui n'est pas du tout la même chose qu'une modification de fichier d'hôtes.
Jeff Ward

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.