Saya tidak percaya ada cara untuk mencegah hal itu terjadi, selain dari penetapan server DNS secara statis pada koneksi VPN.
Untuk mengubah urutan server DNS ditanyai, seseorang seharusnya dapat mengubah urutan pengikatan antarmuka sesuai /superuser//a/314379/120267 , tetapi itu tampaknya tidak mempengaruhi koneksi VPN di pengujian pribadi saya pada Windows 7; Saya telah mengkonfirmasi bahwa koneksi VPN saya secara konsisten ditambahkan ke bagian atas HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bind
daftar, terlepas dari pengaturan urutan pengikatan antarmuka.
Namun, Anda dapat mengatur ulang perubahan DNS setelah koneksi VPN dibuat.
Mengumpulkan informasi
Buka prompt perintah ( Start
-> Run...
-> cmd
) lalu jalankan netsh interface ipv4 show dnsservers
. Anda akan melihat output yang mirip dengan yang berikut:
Configuration for interface "My VPN"
Statically Configured DNS Servers: 11.22.33.44
55.66.77.88
...
Configuration for interface "Local Network Connection"
DNS servers configured through DHCP: 192.168.0.1
192.168.0.2
...
Anda memerlukan nama antarmuka untuk VPN, dan secara opsional server DNS pertama yang bukan koneksi VPN Anda . Dalam contoh ini , masing-masing adalah My VPN dan 192.168.0.1 .
Mengatur Semuanya
Opsi 1: Nonaktifkan DNS VPN
Dengan asumsi Anda tidak memerlukan server DNS VPN sama sekali, Anda dapat menjalankan yang berikut ini di command prompt:
netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no
Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no
Jika Anda menjalankan netsh interface ipv4 show dnsservers
lagi, Anda akan melihat bahwa server DNS yang terkait dengan VPN telah dihapus; server DNS koneksi non-VPN Anda akan digunakan untuk menyelesaikan nama host.
Opsi 2: Tambahan DNS VPN
Jika Anda memerlukan server DNS VPN Anda untuk menyelesaikan nama host intranet, Anda dapat menjalankan yang berikut ini di command prompt:
netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no
Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no
Dalam hal ini, netsh interface ipv4 show dnsservers
akan menunjukkan bahwa server DNS pertama non-koneksi VPN Anda telah ditambahkan ke bagian atas daftar server DNS VPN Anda. Ini akan digunakan untuk menyelesaikan nama host terlebih dahulu, dan jika tidak berhasil, kembali menggunakan server DNS reguler VPN Anda.
Saya memiliki masalah yang sama; menyambung ke server VPN akan menimpa DNS (klien VPN jarak jauh) workstation saya sehingga DNS LAN lokal akan dikaburkan. Saya menjelaskan masalah ini lebih detail pada sisi Stackoverflow sebelum saya menunjukkan bahwa saya seharusnya mempostingnya di sini.
Setelah membaca utas ini, jelas bahwa override tidak dapat dicegah menggunakan konfigurasi klien OpenVPN. Solusi saya adalah menambahkan file batch di direktori konfigurasi OpenVPN yang dieksekusi ketika koneksi OpenVPN terbentuk. Jika file OVPN disebut company.ovpn, file yang dijalankan saat terhubung harus dinamai company_up.bat.
Saya telah menambahkan beberapa file sejak versi yang saya posting ke pertanyaan saya di StackOverflow tadi malam. Sekarang terlihat seperti ini:
1: Retasan untuk menunggu beberapa detik sebelum melanjutkan. Versi terbaru (2.3) dari klien OpenVPN akan mengabaikan DNS dan perubahan rute jika dijalankan tanpa penundaan.
2: Atur DNS koneksi VPN untuk menunjuk ke localhost. Saya memiliki resolver (saya menggunakan SimpleDNS Plus ) yang berjalan di localhost yang meneruskan permintaan ke domain perusahaan ke server DNS perusahaan melalui VPN, dan segala sesuatu yang lain ke server DNS LAN lokal. Perhatikan bahwa saya tidak bisa menggunakan resolver LAN lokal untuk meneruskan kueri untuk domain perusahaan ke DNS perusahaan melalui VPN karena titik akhir VPN ada di localhost. Nama koneksi ("Local Area Connection 4") ditentukan pada prompt perintah melalui "ipconfig / all".
3: Server VPN perusahaan dikonfigurasikan untuk merutekan semua lalu lintas keluar melalui VPN sementara pada saat yang sama membatasi koneksi SSH keluar (ke Internet). Ini bertentangan dengan alur kerja saya, dan saya pertama kali menghapus rute "0.0.0.0 netmask 0.0.0.0" ...
4: .. dan kemudian saya menambahkan kembali rute 0.0.0.0/0 untuk menunjuk ke gateway LAN lokal, dan mengatur metrik (berat) ke 1000 sebagai catch-all untuk semua lalu lintas yang tidak dialihkan sebaliknya.
5: Tanpa "keluar 0" OpenVPN mengeluarkan peringatan kesalahan skrip gagal (dengan status keluar 1).
Semoga ini bermanfaat bagi seseorang .. ini berfungsi cukup baik bagi saya (tidak perlu melakukan penyesuaian rute atau DNS secara manual setiap kali saya membuka koneksi).
sumber
Setidaknya tidak ada cara mudah untuk melakukan itu.
Anda dapat menambahkan entri ke file host (
C:\Windows\System32\drivers\etc\hosts
). File ini berisi pemetaan dari nama host ke alamat IP dan lebih disukai daripada permintaan DNS.sumber
Bisakah Anda memeriksa status kotak centang 'Gunakan gateway default di jaringan jarak jauh'. Ini ditemukan dengan membuka properti koneksi VPN Anda dan pergi ke tab Networking dan pilih TCP / IP v4 atau TCP / IP V6 dan kemudian pilih properti dan kemudian lanjutkan. Ini dapat diaktifkan yang bisa berarti bahwa semua lalu lintas internet dialihkan melalui koneksi VPN. Tidak selalu mungkin untuk menonaktifkan ini dan masih melakukan apa yang Anda inginkan dengan VPN, tetapi itu dapat dinonaktifkan, mungkin mempercepat akses internet.
Jika itu tidak membantu, ada tab DNS di sana dan Anda dapat mencoba menambahkan server DNS Anda di sana. Saya sudah mencoba ini, tetapi saya berharap pengaturan ini untuk mengesampingkan pengaturan otomatis.
sumber
Sayangnya netsh tidak dapat menghapus server dns yang ditugaskan oleh dhcp. Tapi ini bisa dilakukan dengan menghapus parameter DhcpNameServer di
kunci registri.
sumber
Pada 2017 ini sekarang mungkin jika didasarkan pada OpenVPN
Tambahkan baris ke file konfigurasi klien Anda dari
dan itu akan mengabaikan semua baris konfigurasi yang dimulai dengan teks yang dikutip.
Tiga kata kunci tindakan adalah
accept
ignore
reject
. Saya belum menemukan kasus penggunaan untuk tolak.sumber
Saya cukup menghapus opsi ini dari konfigurasi VPN klien
setenv opt block-outside-dns
Itu menyelesaikan masalah
sumber