Simulasikan manipulasi file etc / hosts di Google Chrome

30

Bagaimana saya bisa mengatur Chrome untuk mencari pencarian nama host secara lokal dan bukan dari file standar etc / hosts?

Saat men-debug situs web, kadang-kadang berguna untuk mengatur entri di host C: \ Windows \ system32 \ drivers \ etc \ yang mengganti domain tertentu dengan localhost, sehingga memungkinkan saya untuk menguji versi on-the-fly situs web atau domain yang mungkin konflik dengan situs aktual yang sebenarnya.

Dapatkah saya mengatur Google Chrome dengan cara yang mensimulasikan dan menyederhanakan proses ini?

Saya tidak akan memodifikasi instance browser untuk berperilaku seolah-olah etc / hosts telah dimodifikasi walaupun bahkan itu mungkin terlalu banyak risiko keamanan dalam ekstensi.

ripper234
sumber
Silakan beri
Ali

Jawaban:

13

Saya baru saja menemukan Host Switch Plus Chrome Extension yang melakukan hal itu;)

mettjus
sumber
Host Switch Plus tidak berfungsi untuk saya dan banyak lainnya.
zylstra
1
Host Switch Plus melakukan persis TIDAK itu. Itu mengubah proxy. Tetapi targetnya adalah mengubah IP domain. (Emulasikan DNS-server)
TEXHIK
Tidak berhasil untuk saya, maaf.
Serzhan Akhmetov
7

Salah satu cara untuk mencapai tujuan Anda yang sebenarnya tidak melibatkan ekstensi Chrome, atau bahkan Chrome, sama sekali. Cara itu adalah menyiapkan server HTTP proxy yang cerdas, arahkan Chrome ke situ, dan kemudian tambahkan aturan penulisan ulang ke server proxy yang menulis ulang URL di bawah selimut.

Ada banyak orang yang melakukan ini, dengan berbagai server HTTP proxy yang berbeda - terlalu banyak untuk membahas masing-masing secara rinci dalam jawaban di sini. Mereka melakukannya untuk tujuan kejutan listrik iklan, bug web, dan sejenisnya, tetapi prinsip dan mekanismenya identik dengan apa yang ingin Anda lakukan. Mereka ingin browser WWW mengambil URL tertentu seperti biasa, tetapi konten aktual yang diterima adalah URL lain (lokal atau lainnya). Satu-satunya hal yang perlu diketahui oleh browser WWW adalah ia berbicara ke Internet melalui server proxy.

Untuk satu contoh, lihat Ad Zapper di SourceForge . Itu adalah skrip Perl yang bekerja bersama dengan server HTTP proxy Squid untuk menulis ulang URL saat itu juga di server proxy. Seperti yang dapat Anda lihat dari basis data konfigurasinya, orang-orang telah menggunakan mekanismenya untuk berbagai tujuan, mulai dari memastikan bahwa orang selalu melihat bentuk-bentuk artikel yang "dapat dicetak" pada layanan berita hingga menyingkirkan pengalihan iklan secara acak di situs-situs pornografi Internet.

Perhatikan bahwa ini jauh lebih baik daripada apa yang Anda lakukan dengan hostsfile, yang merupakan mekanisme yang tidak sesuai untuk memanipulasi layanan WWW. hostshanya berurusan dengan nama → pencarian alamat, mucks segalanya (mengalahkan browser WWW) yang perlu dilakukan nama → pencarian alamat, dan (seperti yang mungkin sudah Anda ketahui) mengharuskan setiap nama host yang ditulis ulang juga diatur sebagai virtual host di server HTTP konten target. Sebaliknya, server HTTP proxy penulisan ulang jenis ini berurusan dengan URL dan hanya memengaruhi HTTP dan browser WWW yang dikonfigurasikan untuk menggunakannya di tempat pertama.. Jadi ia dapat melakukan hal-hal seperti hanya menulis ulang URL JavaScript dan meninggalkan yang lainnya dari situs WWW yang sama saja; tulis ulang seluruh nama host menjadi hanya satu; dan melakukan pencocokan pola (lebih jauh). (Ada contoh hal ini dalam database konfigurasi Ad Zapper, perhatikan.) Dan seseorang dapat melakukan hal-hal seperti memiliki satu browser WWW yang melihat dunia melalui proxy penulisan ulang dan yang lain melihatnya secara langsung, pada satu mesin secara bersamaan.

JdeBP
sumber
Satu manfaat tambahan dari ekstensi chrome - ini berfungsi lintas browser! Saat ini saya masih menggunakan file hosts, tetapi saya akan mempertimbangkan untuk beralih ke proxy jika kebutuhan sebenarnya muncul.
ripper234
4

Saya menggunakan (dan masih menggunakan) HostAdmin dengan religius, tetapi harus mengosongkan cache atau membuka jendela penyamaran baru setiap kali selalu menjadi tugas, jadi saya akhirnya mengembangkan ekstensi Chrome untuk saya sendiri tahun lalu untuk membantu dengan situasi yang sama, dan Baru-baru ini saya menerbitkan versi yang sangat kasar di Toko Web Chrome, disebut LiveHosts .

Intinya adalah bahwa sementara @JdeBP benar dan mengatur proxy akan menjadi solusi yang tepat, itu sering bukan pilihan. Ekstensi Chrome tidak dapat persis meniru apa yang terjadi ketika Anda mengubah hostfile, jadi yang LiveHost lakukan saat ini adalah:

  • memungkinkan Anda mengatur beberapa entri nama host / IP;
  • mendeteksi permintaan ke salah satu nama host yang ditentukan;
  • mengalihkan permintaan ke IP yang diinginkan dengan tajuk Host HTTP yang sesuai;
  • tambahkan referensi visual (dan jelek, saya akui) di URL bilah alamat, yang akan terlihat seperti http://127.0.0.1/www.example.com/whateverelse;
  • memungkinkan pasangan host / IP yang berbeda di tab yang berbeda secara bersamaan.

Itu tidak cantik, tetapi cukup baik untuk pengembang web standar yang mencoba untuk beralih antar lingkungan dengan cepat. Tentu saja ada beberapa peringatan:

  • tergantung pada server, bagian dari halaman web yang merujuk ke URL situs (seperti atribut href dan src) dapat berbeda dari aslinya;
  • window.location memiliki nilai berbeda yang berpotensi membuang cuplikan JavaScript;
  • sebagian besar permintaan Cross-Origin tidak akan berfungsi.
Aioros
sumber
0

The Virtual Host Plugin adalah satu-satunya yang memiliki pekerjaan untuk saya seperti yang saya harapkan.

Akses host virtual server tanpa perlu pengalihan host atau DNS.

JDL
sumber
2
Bagi saya, ekstensi ini tampaknya melakukan redirect sisi klien ke alamat IP, yang sama sekali tidak sama dengan modifikasi file host.
Jeff Ward