Nếu tôi gửi dữ liệu tới máy tính của mình bằng tên máy chủ công cộng, nó có thực sự truy cập internet không?


12

Làm rõ:

Tôi đang sử dụng tên máy chủ công cộng của mình để kết nối với cơ sở dữ liệu MySQL. Tên máy chủ phân giải thành IP bên ngoài của máy chủ của tôi (ví dụ: 1.2.3.4). Dữ liệu tôi đang gửi / nhận qua kết nối MySQL có qua internet không? Nó sẽ nhanh hơn để sử dụng localhost? Nó sẽ chiếm băng thông máy chủ của tôi?

Câu trả lời:


28

Nếu bạn muốn chắc chắn, bạn có thể sử dụng traceroute 1.2.3.4. Điều này sẽ liệt kê tất cả các bộ định tuyến giữa máy chủ đang chạy lệnh và thiết bị có địa chỉ IP 1.2.3.4.


3
+1 để kết hợp từ "devive" vào câu của bạn. Bây giờ tôi biết thêm một từ tiếng Anh.
Gani Simsek

en.wiktionary.org/wiki/devive nói "devive - Để làm cho vô hồn." Tôi bối rối. Có lẽ nó nên là "thiết bị"?
anon

7
Về cơ bản, " đó là lần theo dõi cuối cùng anh ấy sẽ chạy "
Xeoncross

5
@xeoncross - Đó là một địa ngục của một traceroute. Tôi lấy phiên bản có tùy chọn dòng lệnh này ở đâu? Tôi đang dùng Windows XP. Tôi cũng quan tâm đến việc cài đặt ping của cái chết.
anon

6
trong windows bạn sử dụng tracert
Mauro

15

Nếu bạn sử dụng "localhost" làm tên máy chủ để kết nối với máy chủ MySQL của mình, MySQL sẽ không sử dụng TCP, nhưng ổ cắm. Đây phải là cách nhanh nhất để kết nối với máy chủ MySQL đang chạy cục bộ.

Nếu máy chủ của bạn có IP bên ngoài được thiết lập "đúng", nghĩa là nó không nằm sau tường lửa hoặc proxy trong mạng nội bộ, lưu lượng sẽ không rời khỏi máy chủ của bạn vì nó biết rằng địa chỉ IP đích là cùng một hệ thống.


1
Ngoài ra, nếu bạn đang sử dụng Linux, sử dụng "localhost" hoặc "127.0.0.1" sẽ kết nối qua lobộ điều hợp, đây là bộ điều hợp giả chỉ được sử dụng cho các địa chỉ đó. Không chắc chắn về Windows, nhưng tôi nghĩ nó có một cái gì đó tương tự.
Nathan Moos

2
@Nathan Moos Như đã nêu trong hướng dẫn sử dụng MySQL : Để kết nối với localhost, các chương trình MySQL cố gắng kết nối với máy chủ cục bộ bằng cách sử dụng tệp ổ cắm Unix.
Shi

1
Tôi đã mô tả một tình huống chung hơn nơi bạn đang kết nối với localhost, không nhất thiết phải là MySQL. Xin lỗi mà tôi bỏ qua các từ ngữ của câu hỏi và câu trả lời.
Nathan Moos

5

Bạn không đề cập bất cứ điều gì về thiết bị định tuyến hoặc chuyển mạch của mình nhưng bạn có thể tránh đường để đảm bảo dữ liệu của bạn ra ngoài trước khi quay lại nhưng thực tế gần như chắc chắn dữ liệu của bạn sẽ không được sử dụng theo cách này.


Tôi khá chắc chắn có một câu hỏi ngầm: "Tôi cần kiểm tra gì để biết rằng dữ liệu hoàn toàn không đi ra ngoài?"
Lie Ryan

Tôi đồng ý, nhưng anh ta không cung cấp bất kỳ chi tiết nào về định tuyến hoặc chuyển đổi của mình, vì vậy ở giai đoạn này không thể thêm vào mà không đưa ra các giả định hoang dã.
Chopper3

3

Không, nếu tất cả nằm trên một máy thì nó không rời khỏi máy.


Tất cả lưu lượng truy cập từ máy đến máy được chuyển qua giao diện loopback. Nếu bạn ngắt kết nối mạng, nó vẫn hoạt động.
BillThor

@BillThor chắc chắn, nhưng đó không phải là câu hỏi.
mailq

Không chắc chắn về điều này: nó cho biết tên này phân giải thành địa chỉ IP công cộng (internet) của máy. Nếu máy đứng sau NAT sử dụng portforwarding, nó phải đi ít nhất là tới cổng.
Joel Coel

Các địa chỉ IP @BillThor khác với 127.0.0.1 được mạng gán cho máy (bộ định tuyến / bộ chuyển mạch / ISP) để ngắt kết nối khỏi mạng một cách hiệu quả để hủy các địa chỉ.
Lukman

2
Điều này chỉ đúng nếu máy chủ biết rằng đó là 1.2.3.4, nếu nó chỉ biết rằng nó có ip bên trong (tức là 192.168.xx) thì tối thiểu dữ liệu sẽ được gửi đến bộ định tuyến.
Unkwntech

2

nếu cấu hình ip máy chủ của bạn trên máy của nó sử dụng địa chỉ IP công cộng, thì sẽ không có lưu lượng truy cập nào rời khỏi máy chủ của bạn (nhưng chắc chắn sẽ an toàn hơn và sử dụng localhost vì lợi ích hiệu suất)

nếu IP của bạn được tạo ra và bộ định tuyến của bạn có ip công cộng và máy chủ của bạn có IP bên trong thì ít nhất lưu lượng sẽ rời khỏi máy chủ của bạn và được phản hồi trở lại máy chủ của bạn từ bộ định tuyến giả định rằng bộ định tuyến phản ánh cổng như một phần của chuyển tiếp cổng của nó - vì vậy trong một nghĩa nào đó, không có lưu lượng truy cập sẽ rời khỏi mạng của bạn nhưng một số lưu lượng sẽ rời khỏi máy chủ của bạn

không có bất kỳ thông tin thiết lập mạng nào tôi không thể dứt khoát hơn thế


1

Rút cáp ethernet hoặc ngắt kết nối wifi của bạn và thử kết nối cơ sở dữ liệu của bạn và bạn sẽ có câu trả lời của mình. Không ồn ào, không ầm ĩ!


Thậm chí không gần đúng. Mạng nội bộ?
navaho

@navaho Người đăng ban đầu cho biết "sẽ nhanh hơn khi sử dụng localhost" cho biết cơ sở dữ liệu nằm trên cùng một máy với ứng dụng của anh ta; do đó để sử dụng giải pháp truy cập mạng cục bộ của tôi là không cần thiết.
Steven Striga

Câu hỏi là nếu tôi gửi dữ liệu tới máy tính của mình qua internet, nó có thực sự qua internet không? Mô tả là tôi đang sử dụng> tên máy chủ công cộng <để kết nối với cơ sở dữ liệu MySQL. Tên máy chủ> phân giải thành IP bên ngoài của máy chủ của tôi <(ví dụ: 1.2.3.4). Dữ liệu tôi đang gửi / nhận thông qua kết nối MySQL có qua internet không? Câu trả lời của bạn không trả lời câu hỏi như đặt ra. Yank dây và xem những gì xảy ra, tốt nhất là, sắp tới. Có, bạn đã trả lời câu hỏi phụ, sẽ nhanh hơn khi sử dụng localhost, nhưng đối với câu hỏi ban đầu bạn đã đưa ra ngắn.
navaho

0

Kết quả của bạn có thể khác nhau nhưng tôi có thể truy cập hệ thống của mình thông qua địa chỉ bên ngoài tốt với bộ định tuyến bị ngắt kết nối Internet. Tuy nhiên, để làm điều này tôi phải cấu hình bộ định tuyến với địa chỉ IP cố định thích hợp, vì điều này thường được ISP phát hành thông qua DHCP.

Đối với sự khác biệt về tốc độ, về mặt lý thuyết sử dụng localhost sẽ nhanh hơn vì nó loại bỏ các chi phí khác nhau liên quan đến việc truyền tải qua mạng. Trong điều kiện thực tế mặc dù sự khác biệt nên rất nhỏ đến mức bạn sẽ không bao giờ có thể nhận thấy nó.


0

Ngoài traceroute (đã được đề cập), bạn có thể sử dụng tcpdump hoặc wireshark và xem bất kỳ kết nối mysql nào được chuyển ra khỏi máy chủ của bạn. Localhost phải luôn luôn nhanh hơn.

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.