Vô hiệu hóa IPv6 trên địa chỉ Loopback (Localhost, Tên máy tính, Hoài)


15

Chúng tôi đã thử cài đặt sản phẩm phần mềm của bên thứ 3 trên máy Windows Server 2008 R2 mới và thấy rằng mọi thứ đều hoạt động ngoại trừ việc truy cập các dịch vụ cục bộ thông qua các địa chỉ loopback như localhosthoặc tên máy tính (ví dụ: VPS-Webgiải quyết localhost). Chúng tôi không sử dụng IPv6 và muốn vô hiệu hóa nó cho đến khi phần mềm tương thích.

Tôi đã thử sử dụng các hướng dẫn này để tắt IPv6 trên Windows 2008 R2 nhưng nó không vô hiệu hóa giao thức localhost. Ping localhosthoặc VPS-Webvẫn sẽ trở lại ::1:thay vì 127.0.0.1. Tôi có thể sử dụng ping localhost -4để lấy địa chỉ chính xác, nhưng IPv6 được ưu tiên hơn IPv4 nên phần mềm bên thứ 3 chỉ nhận được địa chỉ IPv6.


Bạn đã thử liên hệ với nhà cung cấp để xem họ có cách giải quyết không? Ping yêu cầu địa chỉ IPv6, do đó, nó sẽ nhận được :: 1, các ứng dụng không hỗ trợ IPv6 sẽ không nhận được các địa chỉ đó.
Chris S

Phần mềm này là một sự ghê tởm của các thành phần khác nhau (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI) bất kỳ một trong số đó có thể là vấn đề. Tôi không sử dụng IPv6, vì vậy tôi muốn tắt nó. Ngoài ra, tôi cũng lo ngại rằng dường như không có tùy chọn nào để thực hiện việc này cho bộ điều hợp loopback.
Greg Bray

Câu trả lời:


12

Ban đầu tôi đã kiểm tra tệp máy chủ như SilverbackNet đã đề xuất, nhưng trên máy chủ Windows 2008 R2 thì đây là tệp mặc định:

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

#cho biết một nhận xét trong tệp máy chủ, vì vậy tất cả các mục được nhận xét và dòng đầu tiên hơi khó hiểu. Sau đó tôi nhận thấy rằng có hai mục nhập cho localhost đã được nhận xét, vì vậy tôi đã cố gắng bỏ ghi chú IPv4 và nó đã hoạt động! Tôi nên đã thử nó đầu tiên nhưng tôi đã bị bỏ qua theo dõi bởi dòng đầu tiên. Sử dụng tệp máy chủ bên dưới ping tên máy tính hoặc localhost sẽ luôn trả về địa chỉ IPv4, giúp khắc phục sự cố với phần mềm của bên thứ 3!

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

Điều này có loại bỏ ipv6 ([::]) nghe trong netstat không?
Jared Burrows

Nó không. [::] là IPv6 tương đương với 0,0.0.0, đại diện cho tất cả các địa chỉ IP có sẵn trên hệ thống. Các sửa chữa ở trên là đặc biệt cho địa chỉ loopback localhost. Tôi có cả các cài đặt ở trên cũng như khóa đăng ký DisconnectComponents = 0xffffffff và tôi vẫn thấy các ứng dụng đang nghe trên [::]. Tôi không biết có cách nào để vô hiệu hóa hoàn toàn IPv6 không.
Greg Bray

Cảm ơn đã xác nhận vấn đề của tôi! Tôi chỉ chắc chắn thôi :)
Jared Burrows

Điều này đã không làm việc cho tôi. Tôi đã xóa bộ nhớ cache dns và khởi động lại, nhưng nó vẫn trả về địa chỉ IPv6 ...
jj_

5

Đặt "DisconnectComponents" = 0x20 trong

HKEY_LOCAL_MACHINE \ HỆ THỐNG \ CurrentControlset \ Services \ Tcpip6 \ Paramameter \

sẽ đặt máy đó sử dụng IPv4 thay vì IPv6 trong các chính sách tiền tố.

Tạo khoá đăng ký nếu nó không tồn tại.


2

Chủ đề ServerFault ban đầu về việc sử dụng DisabledComponentsgiá trị đăng ký thực sự là cách tốt nhất để làm điều này. Máy chủ lưu trữ tinh chỉnh không bao giờ cần thiết trong một mạng hoạt động tốt. Tinh chỉnh sổ đăng ký cũng dễ dàng hơn nhiều để triển khai và hoàn nguyên thông qua chính sách nhóm nếu bạn có Active Directory.

Lý do nó không hoạt động là vì DisabledComponentscài đặt đăng ký được đọc dưới dạng tập hợp các cờ bit và không chỉ đơn giản là bật hoặc tắt. Dưới đây là tài liệu chính thức của Microsoft về chủ đề:
Cách tắt IP phiên bản 6 (IPv6) hoặc các thành phần cụ thể của nó trong Windows 7, trong Windows Vista, trong Windows Server 2008 R2 và trong Windows Server 2008

Phiên bản ngắn là để vô hiệu hóa hoàn toàn IPv6 trên Vista / 2008 và hơn thế nữa, hãy đặt giá trị DisabledComponentsthành 0xff. Tôi làm điều này trên mọi máy tôi quản lý khi chúng tôi không sử dụng IPv6 rõ ràng. Nó có tác dụng phụ tốt đẹp là rút ngắn đáng kể đầu ra của ipconfiglệnh.


2
Theo liên kết của bạn ( support.microsoft.com/kb/929852#letmefixit ) mục đăng ký này cho phép vô hiệu hóa IPv6 ở nhiều nơi EXCEPT loopback ...
Frank Nocke

1
Bạn nói đúng. Tuy nhiên, có các giá trị thay đổi chức năng mạng mặc định để ưu tiên IPv4 hơn IPv6, điều này sẽ giải quyết hiệu quả các sự cố của OP khi kết nối với localhost hoặc tên máy tính NetBIOS.
Ryan Bolger

Không ai trong số này thực sự làm việc cho tôi trong Windows Server 2012R2. Điều này bao gồm thử sửa đổi máy chủ, cài đặt đăng ký DisconnectComponents ngoài nhiều ý tưởng khác mà tôi đã thấy ở nơi khác. Hoạt động trên Windows Server 2008 nhưng tôi không có giải pháp nào cho 2012R2.
Scott White

Bạn cần khởi động lại sau khi sửa đổi giá trị DisconnectComponents. Nếu bạn đã đặt nó thành 0xffffffff, không có cách nào nó không hoạt động ngay cả trên 2012R2. Kết quả của việc chạy một ipconfig sẽ không trả về bất cứ thứ gì liên quan đến IPv6 và do đó, ping localhost sẽ ping địa chỉ v4.
Ryan Bolger

Phát hiện mới cho thấy giá trị chính xác phải là 0xFF thay vì 0xFFFFFFF để tránh độ trễ khởi động 5 giây. Xem Microsoft KB929852 được cập nhật (Mặc dù vậy, điều này vẫn không vô hiệu hóa loopback)
lang thang vào

2

Bạn đã thử xóa mục nhập khỏi tệp máy chủ trong% systemroot% \ system32 \ driver \ etc chưa? Điều đó sẽ làm điều đó, nếu bạn chỉ cần "localhost" để luôn là IPv4. Tuy nhiên, nếu nó dựa trên tên máy chủ, điều này có thể sẽ không hoạt động.


1
Tệp máy chủ trên windows nằm dưới% systemroot% \ system32 \ driver \ etc và ngay cả khi nó không chứa tham chiếu ipv6 cho localhost, ping localhost sẽ nhận được phản hồi :: 1.
Helvick

Bạn sẽ nhận được phản hồi 127.0.0.1, nếu bạn ánh xạ localhost tới đó (và CHỈ theo đó, không phải IPv6)
Frank Nocke

0

Bạn cũng có thể đi vào các thuộc tính của chính NIC và bỏ chọn hộp IPv6, để bật IPv4. Nên làm thủ thuật.


3
Không hoạt động cho địa chỉ loopback ...
Greg Bray

ồ! :( haha ​​!!
JohnThePro

Điều này chỉ vô hiệu hóa giao diện LAN. Đường hầm và loopback vẫn được kết nối tại đây (xác minh qua giao diện Netsh ipv6> giao diện hiển thị)
Chadddada

-3

Hãy thử thêm một dòng vào tệp máy chủ của bạn như:

::1 VPW-Web

Điều này sẽ cho phép trình phân giải lấy VPW-Webtên làm vòng lặp IPv6.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.