Tại sao cổng chuyển tiếp cần thiết cho máy chủ nhưng không phải cho khách hàng?


2

Bất cứ khi nào tôi lưu trữ một máy chủ, tôi bắt buộc phải chuyển tiếp các cổng nghe của máy chủ trên thiết bị NAT của mình.

Tuy nhiên, nếu tôi kết nối với máy chủ từ xa, tôi sẽ không được yêu cầu chuyển tiếp cổng được sử dụng cho dữ liệu đến từ máy chủ từ xa.

Tại sao lại như vậy?


Không phải là một câu hỏi lập trình.
John Zwinck

Bạn nói đúng, câu hỏi của tôi thuộc về Super User.
asmo

Câu trả lời:


2

Khi bạn thực hiện kết nối ra bên ngoài, địa chỉ đích có thể được nhìn thấy trong gói, địa chỉ nguồn của máy chủ nội bộ của bạn nằm trong gói, do đó, hộp NAT "chỉ" thay thế địa chỉ nguồn bằng chính nó và thiết lập một mục trong một bảng bên trong, để các gói khớp với "đặc điểm của kết nối này", nó biết thay thế địa chỉ đích bằng địa chỉ nguồn ban đầu, vì vậy các gói sẽ trả lại cho bạn.

Đối với một máy chủ, gói tin đi vào NAT từ bên ngoài và không có gì để nói nó là máy chủ nội bộ nào. Không có bảng kết nối hiện tại. Vì vậy, thay vào đó, bạn cần xác định quy tắc "yêu cầu kết nối mới cho cổng 22 sẽ được chuyển đến hộp này ở đây".

Trên hết, phần mềm chạy trên máy tính của bạn có thể chọn nói chuyện với bất kỳ hộp NAT cục bộ nào bằng NAT-PMP (Apple) hoặc UPnP (giao thức của Microsoft) để tự động thiết lập các liên kết này. Nhưng điều đó chỉ thực sự hữu ích khi bạn không quan tâm đến số cổng bên ngoài mà bạn nhận được.


Giải thích của bạn là rõ ràng và đầy đủ như nó có thể được! Cảm ơn nhiều!
asmo

1

Kết nối đi được coi là những gì bạn dự định và muốn, vì vậy nó cho phép kết nối theo mặc định. Điều ngược lại là không đúng sự thật; bạn sẽ không muốn bất kỳ máy khách internet nào kết nối với bất kỳ máy chủ nào trên máy tính của mình, vì vậy bạn phải mở nó một cách rõ ràng. Nếu không, nó sẽ giống như việc đặt máy chủ của bạn ngay trên internet mà không có tường lửa.


Nhưng, ví dụ, bất cứ khi nào tôi chơi trò chơi trực tuyến, trò chơi sẽ nhận được kết nối từ internet, mặc dù không yêu cầu chuyển tiếp cổng cho các kết nối đến này.
asmo

2
Nó không chỉ nhận ngẫu nhiên các kết nối. Bạn bắt đầu liên hệ đầu tiên với các máy chủ đó, vì vậy NAT biết chấp nhận kết nối trả về.

-1 Nhận xét cuối cùng của bạn, bạn đã viết "Nó không chỉ nhận ngẫu nhiên các kết nối. Bạn bắt đầu liên hệ đầu tiên với các máy chủ đó, vì vậy NAT biết chấp nhận kết nối trở lại." <------ Không có thứ gọi là "kết nối trả về". Và bạn đang đề cập đến cùng một kết nối, nhưng bạn nói như một kết nối khác
barlop

@barlop Trước hết, tôi tin rằng bạn nên bỏ phiếu dựa trên câu trả lời, không dựa trên các nhận xét được đính kèm. Thứ hai, những gì xảy ra rất nhiều phụ thuộc vào mã mạng của trò chơi. Các chức năng FTP thông thường theo cách tôi mô tả; máy khách sẽ mở một kết nối lệnh đến máy chủ và máy chủ sẽ thử kết nối dữ liệu trực tiếp trở lại máy khách (kênh thứ hai). Nó không thể tưởng tượng được một trò chơi có thể hoạt động như vậy.
Andy

@Andy tốt, a) Tôi coi nhận xét của bạn về câu trả lời của bạn là một chi tiết của câu trả lời của bạn, để được đọc với nó, và do đó là một phần của nó. Và b) ngay cả khi nó không phải là một phần của nó, hoặc được đọc cùng với nó, thì thực tế là câu trả lời của bạn không được diễn đạt tốt bằng thực tế là bạn thậm chí có thể đưa ra nhận xét sai như vậy mà không mâu thuẫn rõ ràng với câu trả lời của bạn, chứng tỏ rằng câu trả lời của bạn không thể được diễn đạt tốt. Bây giờ đối với nhận xét của bạn..Even trong trường hợp FTP (đây là trường hợp rất cụ thể) và bạn đang mô tả ftp hoạt động (trường hợp được phát triển đầu tiên). (một trường hợp cụ thể của một trường hợp cụ thể) .. (tiếp)
barlop

0

NAT chặn các kết nối đến và cho phép các kết nối đi ra ngoài. Khi kết nối được thực hiện, các gói có thể đi theo một trong hai cách.

Nếu bạn thiết lập một máy chủ, bạn phải đối phó với NAT ở cuối nếu bạn sử dụng NAT. Nếu bạn kết nối với một máy chủ, họ phải đối phó với NAT ở cuối, nếu họ sử dụng NAT.

Nếu NAT chặn các kết nối gửi đi (không, nhưng giả sử là có), thì bạn sẽ không thể truy cập Internet.

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.