Simula la manipolazione del file etc / hosts in Google Chrome


30

Come posso configurare Chrome per fare riferimento alle ricerche dei nomi host a livello locale e non dal file etc / hosts standard?

Quando si esegue il debug di un sito Web, a volte è utile impostare voci in host C: \ Windows \ system32 \ drivers \ etc \ che sostituiscono determinati domini con localhost, permettendomi di testare al volo versioni di siti Web o domini che potrebbero conflitto con siti reali dal vivo.

Posso configurare Google Chrome in modo da simulare e semplificare questo processo?

Non modificherò l'istanza del browser in modo che si comporti come se etc / hosts sia stato modificato, anche se in un'estensione potrebbe esserci un rischio eccessivo per la sicurezza.


Per favore aggiungi
Ali

Risposte:


13

Ho appena trovato l' estensione Chrome di Switch Switch Plus che fa esattamente questo;)


Host Switch Plus non funziona per me e molti altri.
Zylstra,

1
Host Switch Plus non fa esattamente questo. Cambia proxy. Ma l'obiettivo è cambiare l'IP del dominio. (Emula DNS-server)
TEXHIK

Non funziona per me, scusa.
Serzhan Akhmetov,

7

Un modo per raggiungere il tuo obiettivo reale non prevede affatto le estensioni di Chrome, o Chrome. In questo modo è possibile configurare un server HTTP proxy intelligente, puntare Chrome su di esso, quindi aggiungere regole di riscrittura al server proxy che riscrivono gli URL sotto le copertine.

Ci sono molte persone che lo fanno, con vari server HTTP proxy diversi, troppi per coprirne ciascuno in dettaglio in una risposta qui. Lo fanno per scopi di zapping di annunci pubblicitari, bug web e simili, ma il principio e il meccanismo sono identici a quello che vuoi fare. Vogliono che il browser WWW recuperi un determinato URL normalmente, ma il contenuto effettivo che riceve è quello di un altro URL (locale o di altro tipo). L'unica cosa che il browser WWW deve sapere è che comunica con Internet tramite un server proxy.

Per un esempio, vedi l' annuncio Zapper su SourceForge . Questo è uno script Perl che funziona insieme al server HTTP proxy Squid per riscrivere gli URL al volo nel server proxy. Come puoi vedere dal suo database di configurazione, le persone hanno utilizzato il suo meccanismo per una vasta gamma di scopi, dall'assicurare che si vedano sempre le forme "stampabili" di articoli sui servizi di notizie a sbarazzarsi dei reindirizzamenti pubblicitari randomizzati sui siti di pornografia su Internet.

Nota che questo è molto meglio di quello che stai facendo con il hostsfile, che è un meccanismo inadatto per manipolare il servizio WWW. hostssi occupa solo di nome → ricerche di indirizzi, elabora tutto il resto (tranne il browser WWW) che deve fare il nome → ricerche di indirizzi e (come probabilmente già sapete) richiede che ogni nome host riscritto sia ulteriormente impostato come host virtuale su il server HTTP del contenuto di destinazione. Un server HTTP proxy di riscrittura di questo tipo, al contrario, gestisce gli URL e interessa solo i browser HTTP e WWW configurati per usarlo in primo luogo. Quindi può fare cose come solo riscrivere gli URL JavaScript e lasciare tutto il resto dallo stesso sito WWW da solo; riscrivere un intero carico di nomi host in uno solo; e fare (ancora ulteriore) corrispondenza dei modelli. (Ci sono esempi di questa cosa nel database di configurazione di Ad Zapper, avviso.) E si possono fare cose come avere un browser WWW che visualizza il mondo attraverso il proxy di riscrittura e un altro che lo visualizza direttamente, su una singola macchina contemporaneamente.


Un ulteriore vantaggio rispetto a un'estensione di Chrome: funziona su più browser! In questo momento sto ancora usando il file hosts, ma prenderò in considerazione il passaggio a un proxy in caso di necessità.
ripper234

4

Ho usato (e continuo a usare) HostAdmin religiosamente, ma dover svuotare la cache o aprire una nuova finestra di navigazione in incognito ogni volta è sempre stato un lavoro ingrato, quindi ho finito per sviluppare un'estensione di Chrome per me l'anno scorso per aiutare in una situazione simile, e Di recente ne ho pubblicato una versione molto approssimativa nel Chrome Web Store, si chiama LiveHosts .

L'essenza è che mentre @JdeBP ha ragione e la configurazione di un proxy sarebbe la soluzione corretta, spesso non è un'opzione. Un'estensione di Chrome non è in grado di replicare esattamente ciò che accade quando si modifica il file host, quindi LiveHosts al momento è:

  • consente di impostare più voci hostname / IP;
  • rilevare le richieste a uno dei nomi host definiti;
  • reindirizzare la richiesta all'IP desiderato con l'intestazione host HTTP appropriata;
  • aggiungi un riferimento visivo (e brutto, lo ammetto) nell'URL della barra degli indirizzi, che avrà un aspetto simile http://127.0.0.1/www.example.com/whateverelse;
  • consentire diversi accoppiamenti host / IP in schede diverse contemporaneamente.

Non è carino, ma è abbastanza buono per lo sviluppatore web standard che sta cercando di passare rapidamente da un ambiente all'altro. Ci sono ovviamente alcuni avvertimenti:

  • a seconda del server, parti di una pagina Web che fanno riferimento all'URL del sito (come gli attributi href e src) potrebbero essere diverse dall'originale;
  • window.location ha un valore diverso che può potenzialmente eliminare gli snippet JavaScript;
  • la maggior parte delle richieste Cross-Origin non funzionerà.

0

Il plug-in Virtual Hosts è l'unico che ha funzionato per me come mi aspettavo.

Accedi agli host virtuali di un server senza la necessità di reindirizzamento host o DNS.


2
Per me, questa estensione sembra eseguire un reindirizzamento sul lato client all'indirizzo IP, che non è affatto lo stesso di una modifica del file host.
Jeff Ward,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.