Sự khác biệt giữa địa chỉ IP của máy và localhost


12

Nghi ngờ đã đưa ra từ một câu hỏi khác của tôi Trường hợp nếu tôi cung cấp localhost cho đường dẫn của tôi, nó hoạt động. Nhưng nó không hoạt động nếu tôi cho ip hệ thống của tôi.

127.0.0.1 được ánh xạ tới localhost trong / etc / hosts của tôi. Tôi có cần ánh xạ ip của tôi đến localhost không? Không thay đổi?

Họ không giống nhau sao?

Câu trả lời:


14

Một số dịch vụ được cấu hình để chỉ nghe trên địa chỉ IP localhost.

Một ví dụ sẽ là cơ sở dữ liệu MySQL - bạn muốn ứng dụng PHP của mình chạy trên cùng một máy chủ để kết nối với nó, nhưng không muốn bất kỳ dịch vụ bên ngoài hoặc thậm chí là tin tặc từ bên ngoài kết nối. Bằng cách định cấu hình MySQL để chỉ chấp nhận địa chỉ localhost ( 127.0.0.1ví dụ) chứ không phải địa chỉ IP thực của máy chủ của bạn ( 10.x.x.xví dụ), bạn sẽ giảm nguy cơ bị xâm phạm.

Vì vậy, để trả lời câu hỏi của bạn - vâng, chúng khác nhau.

localhostđược cung cấp một địa chỉ IP trong 127.0.0.0mạng và được cung cấp cho một thiết bị mạng loopback ảo lo. Thiết bị này có mặt trên tất cả các hệ thống, bất kể chúng có trang bị thiết bị mạng vật lý hay không (ví dụ WiFi hoặc Ethernet). Một hệ thống không được kết nối với bất kỳ mạng nào sẽ có thiết bị loopback này và do đó là một 127.0.0.0địa chỉ. Tên localhostchỉ đơn giản là một tên giải quyết địa chỉ IP này và được cấu hình trong /etc/hosts.

Địa chỉ IP thực của bạn (ví dụ 10.xxx) được phân bổ cho thiết bị mạng. Đây thường là một thiết bị mạng vật lý (WiFi hoặc Ethernet) mặc dù các thiết lập nâng cao sử dụng tunhoặc tapthiết bị cũng có thể sử dụng chúng. Một lần nữa, độ phân giải tên (ví dụ www.example.orgđể 10.0.1.1) có thể được cấu hình trong /etc/hostshoặc có thể được thiết lập để sử dụng DNS.


4

127.0.0.1 localhost , đó là địa chỉ của máy hiện tại, được truy cập thông qua giao diện loopback (không thông qua bộ điều hợp mạng - điều này hoạt động ngay cả khi không có chip mạng trong hệ thống).

IP mà bạn nhận được từ bộ định tuyến là một câu chuyện khác: đó là địa chỉ cho phép các máy tính khác trên mạng tìm thấy bạn. Chà, bạn cũng có thể sử dụng ip đó trên cùng một máy, nhưng nó hoạt động khác như trước: nó đi ra bộ định tuyến và một lần nữa (tôi đơn giản hóa ở đây, nhưng đó là ý tưởng chung).

Và nếu bạn được kết nối với internet, bạn cũng nhận được một ip khác từ ISP của mình - ip mà máy tính khác trên toàn thế giới tìm thấy bạn. Tuy nhiên, hai cái này ít nhất đề cập đến cùng một bộ điều hợp mạng ( eth0hoặc thẻ không dây hoặc bất cứ thứ gì). localhostkhác.

Hệ điều hành, máy chủ, v.v ... có thể hoạt động khác nhau khi được truy cập từ localhost. Bạn thường không có tường lửa cho điều đó và nhiều dịch vụ địa phương có localhostgiao diện chỉ đơn giản là để giao tiếp với một ứng dụng. Nhiều lần, bạn sẽ muốn kiểm tra máy chủ web của mình bằng cách kết nối đầu tiên để chỉ nghe localhost, vì vậy bạn có thể kiểm tra xem nó có hoạt động không, nhưng những người khác thì không thể. Sau đó, bạn có thể cấu hình lại để nghe địa chỉ IP bên ngoài của bạn và bắt đầu phục vụ trang web (và kiểm tra lại nếu mọi thứ vẫn hoạt động).


Cảm ơn đã giải thích dài. Một nghi ngờ khác được nêu ra: Nếu tôi nói dịch vụ của tôi với localhost, nó sẽ không đi đến bộ định tuyến. Nhưng nếu tôi chỉ định ip, nó sẽ được chuyển hướng bởi bộ định tuyến. Vì vậy, tôi phải có kết nối internet trong trường hợp thứ hai của tôi. Không phải với localhost. Xin vui lòng cho tôi biết
Gibbs

Bạn cần một kết nối đến bộ định tuyến, nếu không bạn sẽ nhận được network is unreachablehoặc một cái gì đó tương tự. Thủ thuật là (ít nhất là với dhcp) đó là bộ định tuyến cung cấp cho bạn một mạng LAN ở vị trí đầu tiên. Có thể điều này thay đổi trong một số trường hợp nếu tuyến vẫn tồn tại, nhưng về bản chất, đối với ip LAN, bạn cần LAN và đối với ip bên ngoài, bạn cần kết nối với ISP.
orion

3

Khi bạn truy cập localhost, /etc/hoststệp của bạn sẽ báo cho máy tính của bạn không tìm kiếm thêm nữa và chuyển hướng bạn đến máy tính của riêng bạn. Khi bạn truy cập địa chỉ IP cục bộ, máy tính của bạn sẽ yêu cầu bộ định tuyến tìm nạp dữ liệu và sau đó bộ định tuyến của bạn sẽ quay lại máy tính của bạn.


3
@serenesat - Không. Khi bạn truy cập địa chỉ IP 'thực' của mình, bạn sẽ không đi xa đến bộ định tuyến - thậm chí bạn sẽ không rời khỏi máy đó. Đang thử ping địa chỉ IP địa phương của bạn và xem thời gian khứ hồi ...
garethTheRed

Câu trả lời này là hoàn toàn sai.
Rui F Ribeiro
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.