Câu hỏi Làm thế nào tôi có thể làm cho localhost giải quyết thành 127.0.0.1 thay vì :: 1?


Khi tôi ping localhost, địa chỉ sẽ chuyển thành ipv6 loopback của :: 1

Cài đặt MySQL và Apache của tôi hy vọng địa chỉ ipv4 của 127.0.0.1

Làm thế nào tôi có thể cấu hình WindowsXP của mình để phân giải localhost thành 127.0.0.1?

Tệp C: \ WINDOWS \ system32 \ drivers \ etc \ hosts của tôi:

127.0.0.1 localhost
127.0.0.1 trunk
127.0.0.1 focus
127.0.0.1 demo

Tôi cũng có các thiết lập sau trong Windows registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
"DisabledComponents"=dword:00000255

Bất cứ điều gì khác tôi có thể thử?


2
2018-01-12 12:17


gốc


ping -4 localhost
Ai sẽ upvote bình luận vô nghĩa như vậy. Khi bạn ping localhost và không chỉ định một giao thức, nó xuất hiện để được mặc định để ipv6. Khi apache và mysql tra cứu localhost, họ sẽ chỉ định giao thức và vì vậy sẽ nhận được một địa chỉ ipv4 nếu đó là những gì được yêu cầu. Có thể cho chúng tôi biết thêm một chút về vấn đề bạn đang thấy, vì một cách tiếp cận khác có thể là cần thiết. - Paul
Điều này tương tự như lỗi trong máy chủ web Cassini tích hợp của Visual Studio: nó từ chối lắng nghe ::1. Kết quả là: theo mặc định, không sử dụng được. Hy vọng rằng MySql có khả năng liên kết với IPv6. - Ian Boyd


Các câu trả lời:


Nó phụ thuộc vào ứng dụng mà bạn đang sử dụng, tức là ứng dụng của bạn đang yêu cầu địa chỉ ipv6.

ví dụ. telnet trên linux cố gắng kết nối bằng địa chỉ ipv6 trước khi nó cố gắng, trừ khi tất nhiên bạn chỉ định giao thức một cách rõ ràng

mặc định

x@x:~$ telnet localhost
Trying ::1...
Trying 127.0.0.1...

v4 được chỉ định

x@x:~$ telnet -4  localhost
Trying 127.0.0.1...

Đối với vấn đề của bạn kể từ khi bạn không ràng buộc cho các địa chỉ v6 (cho các dịch vụ apache và mysql). Trong cấu hình mysql và apache bạn có thể chỉ định rõ ràng "127.0.0.1" ở những nơi mà localhost được chỉ định. Điều này sẽ giải quyết vấn đề của bạn.


1
2018-01-12 13:36



Tôi đã thay đổi tên máy chủ chính của mình trong tệp cấu hình apache thành 127.0.0.1 như bạn đã đề xuất và tạo ra một máy chủ ảo với tên máy chủ lưu trữ của localhost và bây giờ tôi nhận được cả hai 127.0.0.1 và localhost làm việc. MySQL vẫn không vui, nhưng nó có thể là một vấn đề không liên quan ... - JannieT
Bạn có vấn đề truy cập mysql trực tiếp hoặc thông qua apache (ví dụ như php hoặc cgi-bin) - daya
Tôi có thể truy cập MySQL thông qua php, nhưng không trực tiếp, xem câu hỏi mới của tôi:superuser.com/questions/377699/… - JannieT


Nếu bạn không muốn sử dụng IPv6, hãy tắt nó trên kết nối của bạn và đảm bảo bạn đã bật IPv4.

Giả sử bạn có một liên kết có dây tiêu chuẩn, bạn tìm thấy điều này trong cửa sổ thuộc tính của "kết nối khu vực địa phương". Bạn có nhiều mục ở đó. Bạn sẽ thấy "Giao thức Internet phiên bản 6 (TCP / IPv6)" và "Giao thức Internet phiên bản 4 (TCP / IPv4)". Bỏ chọn v6 và kiểm tra v4.

Mặc dù tôi không hiểu chính xác vấn đề của bạn.


0
2018-01-12 13:41



Bạn nên gỡ cài đặt IPv6 hoàn toàn. - kinokijuf
Không, gỡ cài đặt IPv6 không chính xác. Giải pháp tốt hơn là thay đổi cấu hình apache và mysql để nghe trên địa chỉ IPv6 - daya
@daya Chính xác. Đó là lý do tại sao tôi đã viết câu cuối cùng - Tom


Cho dù địa chỉ IPv6 hoặc IPv4 được cung cấp sẽ phụ thuộc vào truy vấn nào thì phần mềm sẽ cố gắng trước tiên. Nếu phần mềm thử truy vấn AAAA trước, thì IPv6 sẽ được cung cấp.

Nhưng một cách để giải quyết vấn đề này có thể là điều chỉnh định nghĩa "localhost", có thể được định nghĩa bởi tệp "hosts" hoặc "hosts.txt" của hệ thống. Xem Vị trí tệp của Máy chủ lưu trữ trên Wikipedia.

Chỉ cần xóa tham chiếu IPv6. Điều này có thể sẽ khiến truy vấn IPv6 không cung cấp kết quả, vì vậy truy vấn IPv4 sẽ được thử.

Tuy nhiên, đây không phải là thực tế được khuyến nghị; hiểu rằng có thể có các phản ứng phụ (từ các chương trình khác có thể dựa vào IPv6 và tên "localhost" chuẩn). Bạn nên sao lưu tệp này (để bạn có thể dễ dàng khôi phục tệp) trước khi mucking với các thay đổi. (Một bản sao đơn giản sẽ có khả năng làm thủ thuật.) Và kiểm tra bất kỳ chương trình nào có thể sử dụng tên "localhost" trước khi tuyên bố nỗ lực của bạn để thành công.


0
2018-03-05 07:04