Nonaktifkan IPv6 pada alamat Loopback (Localhost, Nama komputer, ...)

15

Kami mencoba menginstal produk perangkat lunak pihak ke-3 pada mesin Windows Server 2008 R2 baru dan menemukan bahwa semuanya berfungsi kecuali untuk mengakses layanan lokal melalui alamat loopback seperti localhostatau nama komputer (mis: VPS-Webyang memutuskan untuk localhost). Kami tidak menggunakan IPv6 dan ingin menonaktifkannya sampai perangkat lunaknya kompatibel.

Saya mencoba menggunakan petunjuk ini untuk menonaktifkan IPv6 pada Windows 2008 R2 tetapi tidak menonaktifkan protokol untuk localhost. Ping localhostatau VPS-Webmasih akan kembali ::1:bukan 127.0.0.1. Saya dapat menggunakan ping localhost -4untuk mendapatkan alamat yang benar, tetapi IPv6 lebih diutamakan daripada IPv4 sehingga perangkat lunak pihak ke-3 hanya mendapatkan alamat IPv6.

Greg Bray
sumber
Sudahkah Anda mencoba menghubungi vendor untuk mengetahui apakah mereka memiliki solusi? Ping meminta alamat IPv6, maka itu akan mendapatkan :: 1, aplikasi yang tidak mendukung IPv6 tidak akan mendapatkan alamat itu.
Chris S
Perangkat lunak ini merupakan kekejian dari berbagai komponen (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI) yang salah satunya dapat menjadi masalah. Saya tidak menggunakan IPv6, jadi saya ingin menonaktifkannya. Juga menyangkut saya bahwa tampaknya tidak ada pilihan untuk melakukan ini untuk adaptor loopback.
Greg Bray

Jawaban:

12

Saya awalnya memeriksa file host seperti yang disarankan SilverbackNet, tetapi pada server Windows 2008 R2 ini adalah file default:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

#menunjukkan komentar dalam file host, sehingga semua entri dikomentari, dan baris pertama agak membingungkan. Saya kemudian memperhatikan bahwa ada dua entri untuk localhost yang dikomentari, jadi saya mencoba membatalkan komentar satu IPv4 dan berhasil! Seharusnya saya mencobanya dulu tapi saya terlempar keluar jalur oleh baris pertama. Dengan menggunakan file host di bawah ini, ping nama komputer atau localhost akan selalu mengembalikan alamat IPv4, yang memperbaiki masalah dengan perangkat lunak pihak ke-3!

# localhost name resolution is handled within DNS itself.
#   ::1         localhost
127.0.0.1       localhost
127.0.0.1       VPS-Web
Greg Bray
sumber
Apakah ini menghapus ipv6 ([::]) yang mendengarkan di netstat?
Jared Burrows
Itu tidak. [::] adalah IPv6 yang setara dengan 0.0.0.0, yang mewakili semua alamat IP yang tersedia pada sistem. Perbaikan di atas khusus untuk alamat loopback localhost. Saya memiliki kedua pengaturan di atas serta kunci registri DisabledComponents = 0xffffffff dan saya masih melihat aplikasi mendengarkan pada [::]. Saya tidak tahu apakah ada cara untuk menonaktifkan IPv6 sepenuhnya.
Greg Bray
Terima kasih telah mengkonfirmasi masalah saya! Saya hanya memastikan :)
Jared Burrows
Ini tidak berhasil untuk saya. Saya mem-flush cache dns dan reboot, tetapi masih mengembalikan alamat IPv6 ...
jj_
5

Pengaturan "DisabledComponents" = 0x20 di bawah

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameter \

akan mengatur mesin itu untuk menggunakan IPv4, bukan IPv6 dalam kebijakan awalan.

Buat kunci registri jika tidak ada.

Beberapa pria
sumber
2

Utas ServerFault awal tentang menggunakan nilai DisabledComponentsregistri adalah cara terbaik untuk melakukan ini. Tweak file host tidak perlu diperlukan dalam jaringan yang berfungsi dengan baik. Tweak registri juga jauh lebih mudah untuk digunakan dan dikembalikan melalui kebijakan grup jika Anda memiliki Direktori Aktif.

Alasan itu tidak berhasil adalah karena DisabledComponentspengaturan registri dibaca sebagai satu set bendera bit dan tidak hanya hidup atau mati. Berikut ini adalah dokumentasi resmi dari Microsoft mengenai hal ini:
Cara menonaktifkan IP versi 6 (IPv6) atau komponen spesifiknya di Windows 7, Windows Vista, Windows Server 2008 R2, dan Windows Server 2008

Versi singkatnya adalah untuk sepenuhnya menonaktifkan IPv6 pada Vista / 2008 dan seterusnya, atur nilainya DisabledComponentsmenjadi 0xff. Saya melakukan ini pada setiap mesin yang saya kelola di mana kita tidak secara eksplisit menggunakan IPv6. Ini memiliki efek samping yang bagus dari memperpendek output ipconfigperintah secara signifikan .

Ryan Bolger
sumber
2
Menurut tautan Anda ( support.microsoft.com/kb/929852#letmefixit ) entri registri ini memungkinkan untuk menonaktifkan IPv6 di banyak tempat KECUALI loopback ...
Frank Nocke
1
Anda benar. Namun, ada nilai-nilai yang mengubah fungsionalitas jaringan default untuk memilih IPv4 daripada IPv6 yang secara efektif akan memecahkan masalah OP dengan menghubungkan ke localhost atau nama komputer NetBIOS.
Ryan Bolger
Tidak ada yang benar-benar bekerja untuk saya di Windows Server 2012R2. Ini termasuk mencoba host modifikasi, pengaturan registri DisabledComponents selain banyak ide lain yang pernah saya lihat di tempat lain. Bekerja pada Windows Server 2008 tetapi saya tidak punya solusi untuk 2012R2.
Scott White
Anda harus memulai ulang setelah memodifikasi nilai DisabledComponents. Jika Anda menetapkannya ke 0xffffffff, tidak mungkin itu tidak berfungsi bahkan pada 2012R2. Hasil menjalankan ipconfig seharusnya tidak mengembalikan apa pun yang terkait dengan IPv6 dan karenanya, melakukan ping localhost harus melakukan ping ke alamat v4.
Ryan Bolger
Temuan baru menunjukkan bahwa nilai yang benar harus 0xFF bukannya 0xFFFFFFF untuk menghindari penundaan booting 5 detik. Lihat Microsoft KB929852 yang diperbarui (Ini masih tidak menonaktifkan loopback sekalipun)
wandersick
2

Sudahkah Anda mencoba menghapus entri dari file hosts di% systemroot% \ system32 \ drivers \ etc? Itu harus melakukannya, jika Anda hanya perlu "localhost" untuk selalu menjadi IPv4. Namun, jika didasarkan pada nama server, ini mungkin tidak akan berhasil.

SilverbackNet
sumber
1
File host di windows berada di bawah% systemroot% \ system32 \ drivers \ etc dan bahkan jika itu tidak mengandung referensi ipv6 untuk ping localhost localhost akan mendapatkan respons :: 1.
Helvick
Anda akan mendapatkan respons 127.0.0.1, jika Anda memetakan localhost untuk itu (dan HANYA untuk itu, bukan ke IPv6)
Frank Nocke
0

Anda juga bisa masuk ke properti NIC itu sendiri, dan hapus centang pada kotak IPv6, membiarkan IPv4 diaktifkan. Sebaiknya lakukan triknya.

JohnThePro
sumber
3
Tidak berfungsi untuk alamat loopback ...
Greg Bray
awww! :( haha ​​!!
JohnThePro
Ini hanya menonaktifkan antarmuka LAN. Terowongan dan loopback masih terhubung di sini (verifikasi melalui antarmuka netsh ipv6> show interface)
Chadddada
-3

Coba tambahkan baris ke file host Anda seperti:

::1 VPW-Web

Ini harus memungkinkan resolver untuk mendapatkan VPW-Websebagai nama untuk IPv6 loopback.

BillThor
sumber