Apakah Chrome menggunakan server DNS yang berbeda dari OS?

11

Saya menjalankan Chrome di Linux. Saya memiliki DNS lokal untuk menyelesaikan * .myname.com ke 127.0.0.2 (saya mengetik "host whatever.myname.com" atau "host myname.com" dan saya melihat alamat yang benar). Namun di Chrome ketika saya mengetik "myname.com" itu dialihkan ke "www.myname.com" dan menyelesaikan situs web "nyata" yang tidak saya inginkan.

Hanya ketika saya mengetik "test.myname.com", bukan "www.myname.com", Chrome dengan benar menyelesaikannya menjadi 127.0.0.2. Saya kira Chrome sedang mencoba melakukan hal yang funky dengan www.anything.com dan anything.com.

Bagaimana memperbaikinya?

PS: DNS lokal yang saya gunakan adalah dnsmasq. Jika saya secara eksplisit memasukkan myname.com ke / etc / hosts Chrome menyelesaikannya dengan benar ke 127.0.0.2, tapi saya tidak bisa menggunakan wildcard di / etc / hosts.

PPS: Saya dapat mengonfirmasi di chrome: // net-internal / # dns bahwa Chrome dengan benar myname.com dan www.myname.com menjadi IP publik nyata.

jcisio
sumber

Jawaban:

6

Bahkan Chrome menggunakannya klien DNS sendiri yang berbicara dengan beberapa server DNS (DNS lokal, DNS router, DNS router di IPv6). Saya pergi ke chrome: // flags dan menonaktifkan "Built-in Asynchronous DNS". Sekarang berhasil.

jcisio
sumber
2
Bendera "Built-in Asynchronous DNS" dihapus dari Google Chrome, sehingga menonaktifkan "perbaikan" untuk ini. chromium.googlesource.com/chromium/src/+/… (dari superuser.com/a/887191/109126 )
jcisio
5
Opsi ini telah dihapus dari Chrome, hapus jawaban untuk mencegah kebingungan, atau downvotes: D
sorin
1
Masih ada beberapa masalah di sini. Saya menggunakan Chrome 56 di Linux Mint, dan perlu beberapa menit untuk menyelesaikan alamat setelah tersambung ke VPN. Firefox segera melakukannya. Sepertinya Chrome perlu beberapa saat untuk melihat perubahan /etc/resolv.conf.
orodbhen
1
Itu masih berlaku di Chrome untuk Android. Opsi ini disebut "Async DNS resolver" (chrome: // flags / # enable-async-dns)
MaxChinni
1
tidak ada opsi seperti itu di 69+ dan menonaktifkan chrome: // flags / # enable-new-preconnect (menyebutkan DNS) tidak membantu
vladkras
1

Anda dapat mengubah pengaturan proxy Anda dan memaksanya untuk menggunakan alamat yang Anda inginkan.

Buka file baru, dengan ekstensi .pac, file-file itu digunakan oleh sistem untuk menentukan proxy, salin ini ke konten file:

function FindProxyForURL(url, host) {
    if (host=='www.myname.com' || host=='myname.com'){
        return 'PROXY 127.0.0.2';
    }
    // All other domains should connect directly without a proxy
    return "DIRECT";
}

buka pengaturan proxy chrome, dan di bawah "url untuk konfigurasi proxy otomatis" masukkan path ke file itu.

tidak perlu memiliki server DNS, Anda dapat mengarahkannya ke berbagai port pada mesin, dan Anda dapat memprogramnya untuk kebutuhan Anda.

Ohad Cohen
sumber
1
Saya menggunakannya ketika saya menggunakan Mac, karena di OS XI dapat menggunakan file .pac untuk seluruh sistem. Tidak di Linux AFAIK (tidak bekerja dengan wget, curl, dll.).
jcisio
linux apa yang kamu punya? (Saya punya kubuntu dan berfungsi)
Ohad Cohen
Archlinux + KDE. Saya hanya tidak percaya pengaturan Chrome dapat mengubah perilaku OS di konsol.
jcisio
pengaturan proxy chrome hanya membuka pengaturan proxy sistem
Ohad Cohen
Terima kasih, saya baru saja menguji dengan xubuntu di netbook saya. Itu tidak bisa membuka pengaturan proxy systme (halaman chrome: // linux-proxy-config / memberi kesalahan). Saya akan coba dengan Archlinux saya nanti.
jcisio