Câu hỏi Chuyển tiếp cổng là gì và nó được sử dụng để làm gì?


Có rất nhiều câu hỏi về 'cổng chuyển tiếp' nhưng dường như không có một tuyên bố rõ ràng nó là gì và nó được sử dụng cho cái gì. Vì thế:

  1. Chuyển tiếp cổng là gì?

  2. Nó được sử dụng cho cái gì, và tại sao tôi lại cần nó?


191


gốc


Tôi nghĩ rằng điều này là đủ tốt: portforward.com/help/portforwarding.htm - Koray Tugay


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


Những thứ cơ bản

Để thực sự giải thích về chuyển tiếp cổng, trước tiên bạn cần phải hiểu thêm một chút về những gì bộ định tuyến làm. Nhà cung cấp dịch vụ internet của bạn chỉ định một Địa chỉ IP cho kết nối internet của bạn. Tất cả các máy tính trên internet cần một địa chỉ IP duy nhất, nhưng bạn có nhiều máy tính trong nhà của bạn và chỉ có một địa chỉ. Vậy nó hoạt động như thế nào?

Nếu bạn biết nó là gì và chỉ muốn biết làm thế nào để làm điều đó: http://portforward.com/ có cách thực hiện với ảnh chụp màn hình cho hàng trăm bộ định tuyến khác nhau. Tài liệu được ẩn đằng sau một trang quảng cáo cho công cụ portconfig tự động của họ. (Chỉ cần nhấp vào một chút, bạn sẽ tìm thấy nó.)

NAT - Gì vậy? tại sao chúng ta sử dụng nó?

Bộ định tuyến của bạn có một chức năng gọi là Dịch địa chỉ mạng, hoặc NAT, được tích hợp bên trong mạng của bạn, các máy tính có địa chỉ như 192.168.1.100. Tất cả các địa chỉ trong phạm vi 192.168. * (Hoặc trong phạm vi 10. *) là "riêng tư" hoặc là "kín đáo" địa chỉ. Các địa chỉ này được IANA gán chính thức để sử dụng bên trong các mạng riêng. Bộ định tuyến của bạn sẽ tự động gán một địa chỉ như vậy cho mỗi máy tính được kết nối qua DHCP. Các địa chỉ này là cách các máy tính trong mạng của bạn giao tiếp với bộ định tuyến và với nhau.

Bộ định tuyến của bạn có giao diện mạng riêng biệt kết nối với internet. Giao diện này có địa chỉ rất khác được chỉ định bởi ISP của bạn. Đây là một trong những địa chỉ mà tôi đã đề cập trước đó, và router của bạn sử dụng nó để giao tiếp với các máy tính khác trên internet. Máy tính bên trong mạng của bạn có không thể định tuyến địa chỉ IP riêng, có nghĩa là nếu họ gửi các gói trực tiếp lên internet thì các gói sẽ tự động bị loại bỏ (các gói có địa chỉ riêng không được phép đi qua internet vì lý do ổn định). Nhưng bộ định tuyến của bạn có có thể định tuyến địa chỉ nhà. Bản dịch địa chỉ mạng, như tên gọi của nó, dịch giữa hai loại địa chỉ này, cho phép nhiều máy tính bên trong mạng của bạn xuất hiện trên internet dưới dạng một máy tính có một địa chỉ.

Các chi tiết

Mặc dù điều này nghe có vẻ phức tạp, nhưng nó thực sự khá đơn giản như thế nào router của bạn làm điều đó. Mỗi khi một máy tính bên trong mạng của bạn muốn kết nối với một máy tính trên internet, nó sẽ gửi yêu cầu kết nối đến router (nó biết gửi nó đến router vì nó Gateway mặc định tham số được đặt thành địa chỉ của bộ định tuyến). Router sau đó nhận yêu cầu kết nối đó (một "yêu cầu SYN" trong TCP / IP) và thay đổi địa chỉ nguồn (địa chỉ trả lời "hoặc trả lại") và thay đổi nó từ IP riêng của máy tính thành IP công cộng của bộ định tuyến, để phản hồi sẽ được gửi tới bộ định tuyến. Sau đó nó lưu ý trong một cơ sở dữ liệu (được gọi là Bảng NAT) rằng kết nối đã được bắt đầu, để nó ghi nhớ nó sau này.

Khi phản hồi quay trở lại từ máy tính từ xa ("SYN-ACK"), bộ định tuyến sẽ nhìn vào bảng NAT của nó và thấy rằng kết nối với máy chủ đó trên cổng đó trước đó được khởi tạo bởi máy tính riêng trên mạng của bạn, thay đổi đích địa chỉ đến địa chỉ riêng của máy tính và chuyển tiếp nó vào trong mạng của bạn. Bằng cách này, các gói có thể tiếp tục chuyển tiếp qua lại giữa các mạng, với bộ định tuyến thay đổi rõ ràng các địa chỉ sao cho nó hoạt động. Khi kết nối bị ngắt kết nối, router sẽ loại bỏ nó khỏi bảng NAT.

Hoặc nghĩ về nó theo cách này

Điều này có thể dễ dàng hơn một chút để hình dung với một phép ẩn dụ - giả sử bạn là người giao nhận hàng hóa ở Hoa Kỳ làm việc với các khách hàng Trung Quốc. Họ cần gửi gói cho nhiều khách hàng ở Hoa Kỳ, nhưng sẽ dễ dàng hơn cho các lý do hải quan / thủ tục giấy tờ để chỉ gửi các gói đến một địa điểm. Vì vậy, một gói đến với bạn từ một trong những khách hàng của bạn ở Trung Quốc (mạng riêng, trong ví dụ này) với một điểm đến thực tế ở đâu đó ở Hoa Kỳ (internet). Bạn thay đổi nhãn địa chỉ trên hộp thành địa chỉ Hoa Kỳ (công khai) và bạn thay đổi địa chỉ trả về thành địa chỉ công cộng của riêng bạn (vì không thể trả lại trực tiếp cho Trung Quốc mà không làm phiền khách hàng) và giao cho dịch vụ bưu chính . Nếu khách hàng trả lại sản phẩm, nó sẽ đến với bạn. Bạn tra cứu nó trong hồ sơ của bạn và xem công ty ở Trung Quốc đến từ đâu, và thay đổi địa chỉ đến công ty đó (địa chỉ riêng của họ) và địa chỉ trả về địa chỉ riêng của bạn để họ có thể gửi lại thay thế thông qua bạn.

Điều này làm việc tuyệt vời, nhưng có một chút của một vấn đề. Điều gì sẽ xảy ra nếu một khách hàng cần gửi một thứ gì đó cho công ty, chúng ta hãy nói một lệnh chuyển tiền để thanh toán thứ gì đó? Hoặc, giả sử rằng máy tính trên internet khởi tạo kết nối với bộ định tuyến (yêu cầu SYN), hãy nói với máy chủ web nằm trong mạng. Thư / gói chỉ có địa chỉ công cộng của bộ định tuyến trên đó, vì vậy router thực sự không biết phải gửi nó ở đâu! nó có thể được dùng cho bất kỳ máy tính nào trong mạng riêng, hoặc cho bất kỳ máy tính nào trong số đó. Bạn có thể đã gặp phải vấn đề này khi bạn gọi điện thoại của ai đó - khi họ gọi cho bạn, không có vấn đề gì, nhưng khi bạn gọi cho họ thì không có cách nào để họ biết ai là người gọi, vì vậy người sai có thể trả lời.

Trong khi nó đủ dễ dàng để con người có thể sắp xếp điều này, thì nó lại phức tạp hơn nhiều đối với máy tính, bởi vì không phải mọi máy tính trong mạng đều biết tất cả các máy tính khác.

Và cuối cùng chúng tôi đến Port Forwarding

Chuyển tiếp cổng là cách chúng tôi khắc phục vấn đề này: đó là một cách để nói cho bộ định tuyến của bạn những gì máy tính bên trong các kết nối mạng đến nên được hướng đến. Chúng ta có ba cách khác nhau, chúng ta có thể làm điều này:

  • Faux-DMZ: rất nhiều bộ định tuyến có một tính năng gọi là DMZ. Điều này là viết tắt của Demilitarized Zone, là một loại cấu hình bảo mật mạng. DMZ trên bộ định tuyến gia đình thường được gọi là faux-DMZ vì nó thiếu các tính năng của DMZ thực tế. Những gì nó làm là loại xử lý kết nối đến đơn giản nhất: tất cả các yêu cầu kết nối đến sẽ được gửi tới một yêu cầu được chỉ định bên trong mạng của bạn. Nó đã chết đơn giản - bạn gõ một địa chỉ IP vào cấu hình của router của bạn, và tất cả các kết nối đến đó. Tuy nhiên, điều này không phải lúc nào cũng hoạt động vì bạn có thể có nhiều máy tính cần chấp nhận các kết nối đến. Vì vậy, chúng tôi có ...
  • Chuyển tiếp cổng: Tất cả các yêu cầu kết nối mạng bao gồm một "cổng". Cổng chỉ là một số, và đó là một phần của cách một máy tính biết gói dữ liệu là gì. IANA đã chỉ định rằng Cổng 80 được sử dụng cho HTTP. Điều này có nghĩa là một gói dữ liệu đến nói rằng số cổng 80 phải là một yêu cầu dành cho một máy chủ web. Chuyển tiếp cổng trên bộ định tuyến của bạn cho phép bạn nhập số cổng (hoặc có thể là phạm vi hoặc kết hợp các số, tùy thuộc vào bộ định tuyến) và địa chỉ IP. Tất cả các kết nối đến với một số cổng phù hợp sẽ được chuyển tiếp đến máy tính nội bộ bằng địa chỉ đó.
  • Cổng UPnP chuyển tiếp: UPnP chuyển tiếp hoạt động theo cùng một cách như chuyển tiếp cổng, nhưng thay vì bạn thiết lập nó, phần mềm trên máy tính bên trong mạng sẽ tự động đặt bộ định tuyến để chuyển tiếp lưu lượng trên một cổng đã cho.


Một ví dụ

Hãy xem xét một ví dụ sử dụng. Rất nhiều trò chơi video nhiều người chơi (ví dụ: Counter Strike) cho phép bạn chạy một máy chủ trò chơi trên máy tính của mình mà những người khác có thể kết nối để chơi với bạn. Máy tính của bạn không biết tất cả những người muốn chơi, vì vậy nó không thể kết nối với họ - thay vào đó, họ phải gửi yêu cầu kết nối mới đến máy tính của bạn từ internet.

Nếu bạn không có bất cứ thứ gì được thiết lập trên router, nó sẽ nhận các yêu cầu kết nối này nhưng nó sẽ không biết máy tính nào trong mạng có máy chủ trò chơi, vì vậy nó sẽ bỏ qua chúng (hoặc, cụ thể hơn, nó sẽ gửi trở lại một gói cho biết rằng nó không thể kết nối). May mắn thay, bạn biết số cổng sẽ có trên các yêu cầu kết nối cho máy chủ trò chơi. Vì vậy, trên router, bạn thiết lập một cổng chuyển tiếp với số cổng mà máy chủ trò chơi mong đợi (ví dụ: 27015) và địa chỉ IP của máy tính với máy chủ trò chơi (ví dụ: 192.168.1.105).
Router sẽ biết chuyển tiếp các yêu cầu kết nối đến tới 192.168.1.105 bên trong mạng và các máy tính bên ngoài sẽ có thể kết nối.

Một ví dụ khác sẽ là một mạng cục bộ với hai máy, trong đó máy thứ hai với IP 192.168.1.10 lưu trữ một trang web sử dụng Apache. Do đó router nên chuyển tiếp 80 cổng đến yêu cầu đến máy này. Sử dụng cổng chuyển tiếp, cả hai máy có thể chạy trong cùng một mạng cùng một lúc.

Port Forwarding Example

Trò chơi điện tử có lẽ là nơi phổ biến nhất mà người dùng hàng ngày sẽ gặp phải khi chuyển tiếp cổng, mặc dù hầu hết các trò chơi hiện đại đều sử dụng UPnP để bạn không phải làm điều này theo cách thủ công (thay vào đó, nó hoàn toàn tự động). Bạn sẽ cần phải làm điều này bất cứ khi nào bạn muốn để có thể kết nối trực tiếp đến một cái gì đó trong mạng của bạn mặc dù (thay vì thông qua một số trung gian trên internet). Điều này có thể bao gồm việc chạy máy chủ web của riêng bạn hoặc kết nối qua Giao thức Máy tính Từ xa với một trong các máy tính của bạn.

Lưu ý về bảo mật

Một trong những điều tốt đẹp về NAT là nó cung cấp một số bảo mật không cần thiết, tích hợp sẵn. Rất nhiều người lang thang internet tìm kiếm những cỗ máy dễ bị tổn thương ... và họ làm điều này bằng cách cố mở các kết nối với các cổng khác nhau. Đây là những kết nối đến, vì vậy, như đã thảo luận ở trên, router sẽ thả chúng. Điều này có nghĩa rằng trong một cấu hình NAT, chỉ có chính router là dễ bị tấn công liên quan đến các kết nối đến. Đây là một điều tốt, bởi vì bộ định tuyến đơn giản hơn nhiều (và do đó ít có khả năng bị tổn thương) hơn so với một máy tính chạy một hệ điều hành đầy đủ với rất nhiều phần mềm. Bạn nên nhớ rằng, bằng cách DMZing một máy tính bên trong mạng của bạn (thiết lập nó như là đích DMZ) bạn mất lớp bảo mật cho máy tính đó: bây giờ nó hoàn toàn mở cho các kết nối đến từ internet, vì vậy bạn cần bảo mật nó như thể nó được kết nối trực tiếp. Tất nhiên, bất cứ lúc nào bạn chuyển tiếp một cổng, máy tính ở đầu nhận sẽ trở nên dễ bị tổn thương trên cổng cụ thể đó. Vì vậy, hãy chắc chắn rằng bạn chạy phần mềm cập nhật được cấu hình tốt.


282



+1. Cảm ơn bạn rất nhiều vì một khóa học ngắn tuyệt vời như vậy. Trân trọng, - Xavierjazz
Bây giờ hãy thêm một số đồ họa! - slhck
Đồ họa đẹp. Làm tốt lắm, slhck. - jcrawfordor
Bạn đã đề cập ngắn gọn về nó, nhưng bạn có thể muốn giải thích về tầm quan trọng của việc sử dụng chuyển tiếp cổng theo DMZ. Tôi không thể nghĩ ra một trường hợp duy nhất mà nó sẽ là một ý tưởng hay, dưới một môi trường sản xuất, để phơi bày một thứ gì đó giống như một máy chủ sql (hoặc bất kỳ thứ gì) với thế giới bên ngoài. Chuyển tiếp cổng có thể làm cho nó có thể nhận được tại các nguồn tài nguyên được bảo vệ mà không ảnh hưởng nghiêm trọng đến an ninh. - Brian Vandenberg
Một chi tiết không được mở rộng trong phần NAT là thực tế là nếu các máy tính trong mạng của bạn sử dụng DHCP để nhận địa chỉ IP riêng không định tuyến nội bộ của chúng, có thể một địa chỉ được gán cho chúng thay đổi và nếu điều đó xảy ra, cổng chuyển tiếp sẽ bị rôi tung. Tốt nhất nên tránh điều đó bằng cách thiết lập địa chỉ mạng của mỗi máy tính theo cách thủ công. portforward.com nhấn mạnh tầm quan trọng của điều này và có hướng dẫn mô tả cách thiết lập địa chỉ IP tĩnh trên một hệ thống, tuy nhiên chúng không đề cập đến việc cần phải cấu hình DHCP của router để tránh những địa chỉ NAT được bảo lưu này. - martineau