Có rất nhiều câu hỏi về 'chuyển tiếp cổng' , nhưng dường như không có câu hỏi nào nêu rõ nó là gì và nó được sử dụng để làm gì. Vì thế:
Chuyển tiếp cổng là gì?
Nó được dùng để làm gì và tại sao tôi lại cần nó?
Có rất nhiều câu hỏi về 'chuyển tiếp cổng' , nhưng dường như không có câu hỏi nào nêu rõ nó là gì và nó được sử dụng để làm gì. Vì thế:
Chuyển tiếp cổng là gì?
Nó được dùng để làm gì và tại sao tôi lại cần nó?
Câu trả lời:
Để thực sự giải thích chuyển tiếp cổng, trước tiên bạn cần hiểu thêm một chút về những gì bộ định tuyến của bạ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à và chỉ có một địa chỉ. Vậy làm thế nào để làm việc này?
Nếu bạn biết nó là gì và chỉ muốn biết cách thực hiện : 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 này đượ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 xung quanh một chút là bạn sẽ tìm thấy nó.)
Bộ định tuyến gia đình 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à địa chỉ " riêng tư " hoặc " dành riêng " . Các địa chỉ này được IANA gán chính thức sẽ đượ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 nó với internet. Giao diện này có một địa chỉ rất khác được chỉ định bởi ISP của bạn. Đây là một địa chỉ mà tôi đã đề cập trước đây và bộ định tuyến của bạn sử dụng nó để liên lạc với các máy tính khác trên internet. Các máy tính bên trong mạng của bạn có địa chỉ IP riêng không thể định tuyến , nghĩa là nếu chúng gửi các gói trực tiếp tới internet, các gói sẽ tự động bị hủy (các gói có địa chỉ riêng không được phép truy cập internet vì lý do ổn định). Nhưng bộ định tuyến của bạn có một địa chỉ có thể định tuyế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 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ỉ.
Mặc dù điều này nghe có vẻ phức tạp nhưng thực sự khá đơn giản cách bộ định tuyến của bạn thực hiện. Mỗi khi máy tính trong mạng của bạn muốn kết nối với máy tính trên internet, nó sẽ gửi yêu cầu kết nối đến bộ định tuyến (nó biết gửi nó tới bộ định tuyến vì tham số Cổng mặc định của nó được đặt thành địa chỉ của bộ định tuyến). Sau đó, bộ định tuyến nhận yêu cầu kết nối đó ("yêu cầu SYN" trong TCP / IP) và thay đổi địa chỉ nguồn ("trả lời" hoặc địa chỉ trả về) 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 đến 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 trở lại từ máy tính từ xa ("SYN-ACK"), bộ định tuyến nhìn vào bảng NAT của nó và thấy rằng một kết nối đến máy chủ đó trên cổng đó trước đây được khởi tạo bởi một máy tính riêng trên mạng của bạn, sẽ 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. Theo cách này, các gói có thể tiếp tục truyền qua lại giữa các mạng, với bộ định tuyến thay đổi địa chỉ một cách trong suốt để nó hoạt động. Khi kết nối bị ngắt, bộ định tuyến sẽ xóa nó khỏi bảng NAT.
Điều này có thể dễ hình dung hơn một chút với phép ẩn dụ - giả sử bạn là người giao nhận hàng hóa ở Mỹ làm việc với khách hàng Trung Quốc. Họ cần gửi các gói đến nhiều khách hàng ở Mỹ, nhưng vì lý do hải quan / giấy tờ dễ dàng hơn khi chỉ gửi các gói đến một nơi. 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 đó ở Mỹ (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ả lại thành địa chỉ công cộng của riêng bạn (vì nó không thể được trả thẳng về Trung Quốc mà không gây phiền hà cho khách hàng) và chuyển 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 nó đến từ công ty nào ở Trung Quốc,
Điều này hoạt động rất tốt, nhưng có một chút vấn đề. Điều gì sẽ xảy ra nếu khách hàng cần gửi một cái gì đó cho công ty, giả sử một lệnh chuyển tiền để thanh toán một cái gì đó? Hoặc giả sử rằng một 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), nói với máy chủ web có trong mạng. Thư / gói chỉ có địa chỉ công khai của bộ định tuyến trên đó, vì vậy bộ định tuyến thực sự không biết gửi nó ở đâu! nó có thể được dành cho bất kỳ máy tính nào trên mạng riêng hoặc cho bất kỳ máy tính nào trong số chúng. Bạn có thể đã gặp phải vấn đề này khi bạn gọi điện thoại về nhà của ai đó - khi họ gọi cho bạn thì không 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 đó có thể trả lời sai.
Mặc dù con người đủ dễ dàng để sắp xếp việc này, nhưng nó rất phức tạp đối với máy tính, bởi vì không phải mọi máy tính trên mạng của bạn đều biết tất cả các máy tính khác.
Chuyển tiếp cổng là cách chúng tôi khắc phục sự cố này: đó là cách để cho bộ định tuyến của bạn biết máy tính nào trong mạng kết nối đến sẽ được hướng đến. Chúng tôi có ba cách khác nhau để làm điều này:
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ụ như Counter Strike) cho phép bạn chạy một máy chủ trò chơi trên máy tính mà 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 tới 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 bộ định tuyến, nó sẽ nhận được 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 là nó sẽ gửi trở lại một gói chỉ ra rằng nó không thể kết nối). May mắn thay, bạn biết số cổng sẽ có trong yêu cầu kết nối cho máy chủ trò chơi. Vì vậy, trên bộ định tuyến, bạn đặt 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).
Bộ định tuyến sẽ biết để chuyển tiếp các yêu cầu kết nối đến 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 là một mạng cục bộ có hai máy, trong đó máy thứ hai có IP 192.168.1.10 lưu trữ một trang web sử dụng Apache. Do đó, bộ định tuyến nên chuyển tiếp cổng 80 yêu cầu đến máy này. Sử dụng chuyển tiếp cổng, cả hai máy có thể chạy trong cùng một mạng cùng một lúc.
Trò chơi video có lẽ là nơi phổ biến nhất mà người dùng hàng ngày sẽ gặp phải 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 thực hiện 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 với một cái gì đó trong mạng của bạn (chứ không phải thông qua một số trung gian trên internet). Điều này có thể bao gồm chạy máy chủ web của riêng bạn hoặc kết nối qua Remote Desktop Protocol với một trong các máy tính của bạn.
Một trong những điều tốt đẹp về NAT là nó cung cấp một số bảo mật tích hợp miễn phí. Rất nhiều người lang thang trên mạng để tìm kiếm các máy dễ bị tổn thương ... và họ làm điều này bằng cách cố gắng mở các kết nối với các cổng khác nhau. Đây là các kết nối đến, vì vậy, như đã thảo luận ở trên, bộ định tuyến sẽ loại bỏ chúng. Điều này có nghĩa là trong cấu hình NAT, chỉ có bộ định tuyến 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 hệ điều hành đầy đủ với rất nhiều phần mềm. Sau đó, bạn nên nhớ rằng bằng cách DMZing một máy tính trong mạng của bạn (đặt nó làm đích DMZ), bạn sẽ mất lớp bảo mật đó cho máy tính đó: giờ đây nó hoàn toàn mở cho các kết nối đến từ internet, Vì vậy, bạn cần phải bảo mật nó như thể nó được kết nối trực tiếp. Tất nhiên, bất cứ khi 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 đảm bảo bạn chạy phần mềm cập nhật được cấu hình tốt.