Loading Now

Đây là những gì bạn cần biết về Port Forwarding

Chuyển tiếp cổng (port forwarding) là một khái niệm quan trọng thường được sử dụng trong nhiều hoạt động khác nhau. Cho dù bạn đang thiết lập một máy chủ game để tạo ra trải nghiệm chơi game liền mạch, tự host trang web của riêng bạn trực tiếp từ nhà, hay đảm bảo truy cập từ xa vào camera an ninh khi bạn không có mặt, port forwarding đều đóng vai trò quan trọng.

Các ví dụ trên đều liên quan đến việc thiết lập máy chủ để được truy cập từ một nguồn bên ngoài. Chuyển tiếp cổng thiết lập một kết nối giữa địa chỉ IP công cộng của bộ định tuyến và các địa chỉ IP và cổng dịch vụ trên mạng. Nhưng chính xác là bạn đang làm gì khi cấu hình bộ định tuyến? Tại sao port forwarding là cần thiết? Ngoài ra, nó còn được sử dụng cho mục đích gì khác?

Chúng tôi sẽ giải thích tất cả những điều đó dưới đây, nhưng trước hết, hãy tìm hiểu cách một bộ định tuyến hoạt động và các cổng này là gì.

Cách hoạt động của một bộ định tuyến (router)

Một bộ định tuyến kết nối các thiết bị trong mạng bằng cách chuyển tiếp các gói dữ liệu giữa chúng. Điều này cho phép các thiết bị giao tiếp với nhau và với internet. Bộ định tuyến theo dõi tất cả các thiết bị trên mạng bằng cách gán một địa chỉ IP cục bộ cho mỗi thiết bị. Trong những ngày đầu của internet, một modem chỉ đủ để kết nối một thiết bị duy nhất, nhưng với sự phổ biến của nhiều thiết bị kết nối, bộ định tuyến trở thành thiết bị quan trọng.

Khi bạn duyệt internet, bộ định tuyến chuyển tiếp yêu cầu của bạn đến modem. Khi phản hồi trả về, bộ định tuyến chuyển tiếp nó đến thiết bị đúng bằng cách sử dụng địa chỉ IP được gán cho nó. Việc chuyển tiếp này là cần thiết vì chỉ có bộ định tuyến biết các địa chỉ IP cục bộ được gán cho mỗi thiết bị trong mạng. Bất kỳ dữ liệu nào đi đến thiết bị của bạn cũng không được truyền trực tiếp đến đó. Nó phải được chuyển tiếp.

Cổng (Ports) là gì?

Địa chỉ IP cục bộ được gán cho mỗi thiết bị kết nối vào bộ định tuyến. Những địa chỉ IP này chỉ bộ định tuyến biết, khác với địa chỉ IP công cộng được sử dụng bởi các máy chủ DNS để kết nối bạn với máy chủ đúng hoặc máy chủ mà bộ định tuyến của bạn sử dụng để kết nối với internet.

Nhưng còn một số khác có thể sử dụng cùng với địa chỉ IP cho phép bạn kết nối với trang web: số cổng (port number). Khi bạn truy cập vào một trang web không an toàn, bắt đầu bằng http, bạn đang kết nối đến cổng 80 trên máy chủ. Khi bạn truy cập vào một trang web an toàn, bắt đầu bằng https, bạn đang kết nối đến cổng 443.

Tương tự như địa chỉ IP hệ thống tất cả các thiết bị trên một mạng để chúng có thể nhận dữ liệu dành cho chúng, các cổng hệ thống tất cả các dịch vụ và ứng dụng trên một máy tính để dữ liệu đến được dịch vụ cần thiết. Để dữ liệu được truyền qua mạng, cả địa chỉ IP và cổng đều cần thiết.

Dưới đây là các số cổng mặc định của một số ứng dụng phổ biến:

  • 22. dành cho Secure Shell (SSH).
  • 80. dành cho HyperText Transfer Protocol (HTTP).
  • 110. dành cho Post Office Protocol (POP3).
  • 443. dành cho HTTP với Secure Sockets Layer (SSL).
  • 3306. dành cho cơ sở dữ liệu MySQL.
  • 5432. dành cho PostgreSQL.

Khi bạn kết nối với bất kỳ một trong những dịch vụ này, bạn phải biết số cổng. Có thể có hàng chục dịch vụ đang chạy trên cùng một máy hoặc cùng một địa chỉ IP, và nếu thiếu thông tin cổng, bộ định tuyến không thể chuyển tiếp đúng dữ liệu tới dịch vụ mong muốn.

Port forwarding là gì?

Chuyển tiếp cổng (port forwarding) là một bản đồ giữa địa chỉ IP công cộng của bộ định tuyến và các địa chỉ IP và cổng dịch vụ đang chạy trên mạng. Nó cho bộ định tuyến của bạn biết hướng chuyển tiếp dữ liệu mà nó nhận được từ một cổng cụ thể đến một cổng cụ thể khác trên một địa chỉ IP riêng tư cụ thể trên mạng.

Khi bạn thiết lập một máy chủ để host trang web của mình tại nhà, bạn phải thêm các quy tắc chuyển tiếp cổng vào bộ định tuyến của bạn. Bạn làm điều này bằng cách tìm địa chỉ IP của máy tính chạy trang web của bạn và đặt một quy tắc để chuyển tiếp tất cả lưu lượng trên cổng 80 đến địa chỉ IP đó. Bạn cũng có thể chỉ định cổng bạn chuyển tiếp dữ liệu đến. Ví dụ, nếu bạn chạy trang web trên cổng 8080, bạn có thể chuyển tiếp nó đến cổng đó.

Một số ứng dụng chỉ yêu cầu chuyển tiếp một cổng duy nhất, giống như ví dụ về trang web. Các ứng dụng khác sử dụng một loạt các cổng cho nhiều dịch vụ mà chúng chạy và bạn phải chuyển tiếp loạt này trong bộ định tuyến đến thiết bị.

Nhiều ứng dụng dành cho người dùng cuối có tính năng gọi là UPnP, hoặc Universal Plug and Play, sẽ tự động thiết lập các quy tắc này trong bộ định tuyến của bạn. Đối với các ứng dụng khác, bạn sẽ phải đăng nhập vào màn hình quản trị của bộ định tuyến và nhập các quy tắc chuyển tiếp cổng một cách thủ công.

Tại sao Port forwarding lại quan trọng?

Bộ định tuyến (router) của bạn được thiết kế để cho phép bạn kết nối đến bất kỳ dịch vụ nào trên internet. Nó định tuyến dữ liệu của bạn ra internet với địa chỉ IP và cổng tương ứng, và cho phép bộ định tuyến ở phía đích của kết nối xử lý các chi tiết để kết nối đến đúng máy chủ và dịch vụ. Khi bạn nhận được phản hồi, bộ định tuyến biết rằng bạn đã gửi yêu cầu và định tuyến phản hồi đó trở lại cho bạn.

Tuy nhiên, nếu bạn muốn host một trang web trên máy tính gia đình và cho phép người khác từ bên ngoài mạng kết nối đến trang web đó, họ sẽ phải kết nối đến thiết bị của bạn qua cổng 80 sử dụng địa chỉ IP chỉ được biết đến bởi bộ định tuyến. Bạn có thể thiết lập một máy chủ DNS để trỏ đến địa chỉ IP công cộng của bạn, nhưng điều này chỉ có tác dụng đến bộ định tuyến của bạn. Và bộ định tuyến của bạn không hề biết cái gì đang xảy ra. Trên thực tế, nhiều bộ định tuyến được thiết kế để mặc định chặn kết nối đến một số cổng cụ thể bằng tường lửa để đảm bảo an ninh.

Port forwarding, với TCP và với UDP

Có hai loại cổng mà bạn có thể chuyển tiếp: 

  • Transfer Control Protocol (TCP), hay TCP
  • User Datagram Protocol (UDP), hay UDP

Cả hai giao thức này chạy trên giao thức Internet Protocol (IP). Lựa chọn giữa TCP và UDP để chuyển tiếp cổng phụ thuộc vào yêu cầu cụ thể của dịch vụ hoặc ứng dụng được sử dụng. Khi bạn chuyển tiếp một port number, quan trọng là xác định loại cổng bạn đang chuyển tiếp.

TCP là giao thức phổ biến nhất trên internet. Đây là giao thức chúng ta sử dụng để duyệt các trang web và nó đảm bảo việc giao nhận dữ liệu. Mỗi gói dữ liệu gửi đến người nhận đều được xác nhận bởi người nhận để dữ liệu có thể được tái tạo một cách đáng tin cậy.

UDP không quan tâm đến việc xác nhận. Nó chỉ gửi dữ liệu đi và không quan tâm đến việc mất dữ liệu. Điều này cho phép dữ liệu được truyền đến thiết bị nhanh hơn vì nó không phải trải qua quá trình giao tiếp đi lại như TCP. Và việc truyền dữ liệu liên tục là một trong những điều chính mà UDP được sử dụng, cả trong việc xem video và chơi game trực tuyến.

Port forwarding còn có mục đích gì khác?

Chuyển tiếp cổng là cần thiết mỗi khi một thiết bị bên ngoài mạng phải kết nối đến một dịch vụ hoặc ứng dụng đang chạy trên một thiết bị trong mạng. Ứng dụng của nó mở rộng đến các kịch bản khác nhau, chẳng hạn như tạo điều kiện cho việc truy cập máy tính để bàn từ xa vào máy tính để bàn tại nhà từ một vị trí khác, điều hướng lưu lượng truy cập đến máy chủ trong mạng khi chạy một trang web công khai, và hosting một mạng riêng ảo (VPN) để cho phép duyệt web từ xa bằng địa chỉ IP của mạng nhà của bạn. Trong những trường hợp này, chuyển tiếp cổng là cơ chế đảm bảo giao tiếp liền mạch và an toàn giữa các thiết bị qua các môi trường mạng đa dạng.

Tất cả các dịch vụ bạn kết nối đến trên internet không chỉ có địa chỉ IP mà còn có số cổng. Cả hai đều cần thiết để đảm bảo dữ liệu đến nơi đúng. Chuyển tiếp cổng cho phép giao tiếp đến thiết bị và ứng dụng đúng trên một mạng riêng bằng cách mapping địa chỉ IP công cộng của bộ định tuyến đến các cổng trên các thiết bị chạy trong mạng. Nếu bạn muốn tự host ứng dụng web của riêng bạn tại nhà, bạn sẽ cần biết cách chuyển tiếp cổng.

Post Comment

Contact