41 votes

Navigateur avec son propre fichier hosts?

J'ai un certain nombre de serveurs de préproduction et de test auxquels je dois constamment modifier mon fichier hosts pour y accéder (ils dépendent du nom de domaine, donc je dois changer le fichier hosts pour les faire fonctionner).

Je trouve cela ennuyeux. J'aimerais configurer un navigateur portable de toute sorte pour chaque type de site avec lequel je veux travailler. Existe-t-il une version de tout navigateur web graphique (y compris les navigateurs basés sur les moteurs de rendu d'autres navigateurs) qui le permettra ?

De cette façon, je peux simplement lancer l'instance déjà configurée pour fonctionner avec la préproduction si je veux tester la préproduction.

Des idées ?

EDIT: La fonctionnalité importante est la capacité d'exécuter deux navigateurs simultanément, tous deux naviguant vers some-address.com, mais avec un navigateur dirigeant les requêtes vers le serveur à l'adresse 1.2.3.4 et l'autre navigateur dirigeant les requêtes vers le serveur à l'adresse 5.6.7.8.

EDIT: (16/03/14)

Cette question a été posée il y a plusieurs années, et je ne connais toujours pas de moyen décent de le faire. Permettez-moi de tenter d'expliquer davantage, car les gens semblent mal comprendre le problème. Ce n'est pas quelque chose qui peut être facilement résolu simplement en utilisant un serveur proxy. Je suppose qu'il pourrait être possible d'écrire des règles étendues dans un serveur proxy pour résoudre les problèmes, mais c'est une solution très complexe à un problème qui devrait être simple.

Donc pour clarifier :

Il y a trois serveurs Web : Production, Test et Développement. Chacun exécute une application multi-locataire qui se personnalise en fonction du nom d'hôte utilisé pour y accéder. Conceptuellement, c'est similaire à un système de gestion de contenu ou un moteur de blog qui permet d'exécuter plusieurs sites à partir de la même instance serveur. Il suffit de pointer le nom d'hôte vers le serveur, et quel que soit le nom d'hôte utilisé pour y accéder via le mappage d'hôte HTTP 1.1, c'est le site qu'il affiche.

Toute solution qui se contente de modifier le fichier hosts ne fonctionne pas en raison de l'exigence de faire fonctionner plusieurs fenêtres de navigateur en même temps vers les différents sites, production, développement, test, etc... Donc simplement modifier constamment le fichier hosts ne fonctionne pas car cela affecte toutes les instances de navigateur. Si vous modifiez le mappage pour un navigateur, alors les autres navigateurs sont également désormais mappés vers ce serveur, de sorte que toutes les requêtes ultérieures iront vers le mauvais serveur.

Tout ce que je cherche, c'est un moyen de forcer cette instance de navigateur à utiliser ce fichier hosts, et cette instance de navigateur à utiliser ce fichier hosts, par exemple via un paramètre en ligne de commande.

Cela peut être réalisable avec Firefox portable, car je pense qu'il utilise ses propres fichiers de configuration par copie installée, mais le problème est que le logiciel tiers utilisé pour administrer les sites ne fonctionne pas avec Firefox (les sites eux-mêmes le font, mais les outils d'administration non, ils fonctionnent bien avec Chrome, IE et Opera, cependant... et je n'ai pas accès au code source pour le corriger).

19voto

Squid a résolu le problème pour moi. Je pense que de nombreux serveurs proxy pourraient en faire autant.

Plus précisément, j'ai dû installer Squid. Ensuite, j'ai modifié le fichier squid.conf pour qu'il accède à un fichier hosts alternatif. Voici la ligne que vous devez modifier :

#hosts_file /etc/hosts

Dans mon cas, j'ai utilisé hosts_file /etc/hosts-squid. J'ai créé le fichier /etc/hosts-squid et modifié le fichier hosts-squid pour qu'il me donne accès aux nouvelles adresses IP que je voulais pour l'URL donnée. C'était tout ce que je devais faire pour configurer le serveur proxy Squid.

J'ai ensuite créé une commande pour lancer mon navigateur avec les paramètres proxy. J'ai utilisé :

chromium-browser --proxy-server=localhost:3128

En exécutant cette commande, j'ai effectivement obtenu une instance fonctionnelle de chromium qui peut accéder aux domaines configurés dans le fichier hosts-squid que j'ai créé.

J'ai également pu configurer plusieurs serveurs proxy en utilisant plusieurs instances de Squid pour accéder à un site web de production, de développement et local sur le même ordinateur. Les instructions pour exécuter plusieurs instances de Squid sont ici. J'ai également écrit un article de blog expliquant le problème et la solution un peu plus en détail.

9voto

harrymc Points 394411

Je crois que vous demandez à configurer un environnement virtuel pour chaque navigateur qui comprend son propre fichier hosts.

Une solution pourrait être d'utiliser Sandboxie pour configurer une sandbox séparée, contenant chacune son propre fichier hosts. Le navigateur n'a pas besoin d'être installé dans la sandbox pour utiliser le fichier hosts, il suffit de le démarrer à partir de cette sandbox. Des raccourcis peuvent être créés sur le bureau pour lancer le navigateur depuis la sandbox.

L'inconvénient sera que les navigateurs seront isolés du véritable système de fichiers par exemple lors du téléchargement de fichiers depuis Internet, mais Sandboxie inclut des mécanismes pour copier ces fichiers en dehors de la sandbox.

Malheureusement, la fonctionnalité d'exécution de programmes dans plus d'une sandbox en même temps n'est disponible que dans la version payante de Sandboxie (15 euros plus taxes pour une licence d'un an pour un usage personnel à domicile). Des tests de faisabilité peuvent être effectués en utilisant la version gratuite. (Édition : Sandboxie est maintenant gratuit.)

Pour les utilisateurs de Linux, des produits similaires sont :

4voto

totti Points 842

Vous pouvez automatiser le processus de changement du fichier hôte avec firefox + HostAdmin

HostAdmin est un module complémentaire Firefox qui vous aide à modifier le fichier Hosts, à basculer le mappage domaine-ip. HostAdmin peut comprendre votre fichier Hosts via une syntaxe améliorée du fichier Hosts. De plus, HostAdmin actualise automatiquement votre cache DNS chaque fois que vous modifiez votre fichier Hosts, même manuellement.

Exemple de configuration

#==== Projet 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Projet 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3  

Plus d'informations sur https://addons.mozilla.org/en-US/firefox/addon/hostadmin/

Instance multiple

Pour exécuter deux instances du navigateur Firefox de manière concomitante et indépendante sous Linux, créez plusieurs lanceurs avec le script suivant. Installez également le plugin dans tous les navigateurs Firefox.

Firefox 1

#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote

Firefox 2

#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote  

Vous pouvez utiliser l'option de profil (firefox -P) dans un navigateur pour utiliser des profils natifs pour différents paramètres et les utiliser simultanément.

2voto

wyzwon Points 21

Je sais que ce n'est pas ce que vous demandez, mais une solution temporaire pourrait être d'écrire un script batch pour échanger les fichiers hosts, puis de lancer le navigateur.

Au moins, cela réduirait le travail que vous faites.

Ou vous pourriez simplement nommer ces serveurs quelque chose de complètement différent dans le fichier hosts afin de ne jamais avoir à le changer pour commencer.

1voto

Tamara Wijsman Points 56163

Privoxy peut être utilisé à cette fin.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X