Bỏ qua đến nội dung
Được tài trợ AccsZone — ready-made accounts, instant delivery

Kiểm tra cổng

Kiểm tra một cổng TCP trên host có truy cập được từ Internet công cộng không. Một lần thử kết nối trực tiếp từ máy chủ của chúng tôi cho biết cổng mở, đóng hay bị tường lửa hoặc router chặn.

Công cụ này hoạt động thế nào

Nhập hostname hoặc địa chỉ IP và số cổng từ 1 đến 65535, và máy chủ web của chúng tôi thử mở kết nối TCP tới đó. Công cụ miễn phí, không cần đăng ký và bị giới hạn tần suất theo khách để không thể dùng quét host.

Kết nối TCP bắt đầu bằng bắt tay ba bước. Máy chủ gửi gói SYN tới cổng. Chương trình lắng nghe ở đó trả lời SYN-ACK và kết nối được thiết lập, công cụ báo là mở. Nếu không chương trình nào lắng nghe, hệ điều hành của host trả lời bằng reset và công cụ báo đóng. Nếu không gì quay về trước thời hạn, công cụ báo cổng bị lọc: tường lửa, router không có quy tắc chuyển tiếp, hoặc mạng bỏ gói tin đang chắn đường. Ngay khi biết kết quả, kết nối được đóng lại; công cụ không bao giờ gửi dữ liệu ứng dụng tới dịch vụ.

Hostname được phân giải trên máy chủ trước khi kết nối. Nếu tên có nhiều địa chỉ, địa chỉ đầu được dùng. Địa chỉ riêng và dành riêng như 192.168.1.1 không kiểm tra được vì không tới được từ Internet.

Mỗi lần kiểm tra là một lần thử kết nối từ một vị trí. Để xem nhanh nhiều cổng phổ biến cùng lúc, dùng công cụ quét cổng, chạy từ máy thăm dò riêng.

Cách đọc kết quả

Mở. Bắt tay hoàn tất. Một chương trình trên đích chấp nhận kết nối, và cổng tới được từ Internet công cộng. Với dịch vụ bạn cố ý lưu trữ, đây là mục tiêu. Với cổng bạn không mong đợi, hãy tìm xem cái gì đang lắng nghe.

Đóng. Host tới được và trả lời, nhưng không gì lắng nghe trên cổng đó. Đường qua nhà mạng và router hoạt động; vấn đề, nếu có, nằm ở chính máy: dịch vụ không chạy, gắn cổng khác, hoặc chỉ lắng nghe trên localhost.

Bị lọc hoặc hết thời gian chờ. Hoàn toàn không có trả lời. Đây là kết quả phổ biến nhất với kết nối gia đình và thường nghĩa là router không có quy tắc chuyển tiếp cho cổng đó, tường lửa bỏ lưu lượng không mời, hoặc nhà mạng chặn cổng. Cũng có thể host ngoại tuyến hoặc địa chỉ sai; kiểm tra bằng công cụ ping xem host có trả lời không.

Kết quả áp dụng cho thời điểm kiểm tra và đường đi từ máy chủ của chúng tôi. Cổng có thể mở từ một mạng và bị lọc từ mạng khác khi tường lửa chỉ cho phép nguồn cụ thể.

Cách sửa cổng lẽ ra phải mở

Làm từ ngoài vào trong. Mỗi bước tương ứng một thứ có thể bỏ kết nối.

Bước 1: xác nhận địa chỉ

  1. Tra địa chỉ công khai hiện tại ở trang tra cứu IP. Kết nối gia đình đổi địa chỉ; địa chỉ bạn chuyển tiếp tháng trước có thể không phải địa chỉ hôm nay.
  2. Nếu địa chỉ hiển thị nằm trong dải 100.64.0.0 đến 100.127.255.255, hoặc địa chỉ WAN của router khác địa chỉ công khai, nhà mạng dùng NAT cấp nhà mạng. Kết nối đến không thể tới bạn cho tới khi nhà mạng cấp địa chỉ công khai. Không thiết lập router nào sửa được.

Bước 2: chuyển tiếp cổng trên router

  1. Cấp cho máy đích địa chỉ cục bộ cố định, qua DHCP tĩnh trên router hoặc địa chỉ tĩnh trên máy.
  2. Trong trang quản trị router, tìm mục port forwarding, virtual server, NAT hoặc applications. Tạo quy tắc: cổng ngoài, cổng trong (thường giống nhau), giao thức TCP, và địa chỉ cục bộ của máy.
  3. Lưu, và trên một số router cần khởi động lại. Nếu bạn chạy hai router nối tiếp, ví dụ modem nhà mạng trước router riêng, quy tắc cần trên cả hai, hoặc cái đầu phải đặt chế độ bridge.
  4. Chạy lại kiểm tra. Nếu kết quả đổi từ bị lọc sang đóng, router đã chuyển tiếp và vấn đề còn lại ở máy.

Bước 3: mở tường lửa trên máy

  1. Windows. Mở Windows Defender Firewall with Advanced Security, thêm quy tắc inbound cho cổng (TCP), cho phép kết nối, và áp dụng cho profile mạng bạn dùng.
  2. macOS. Tường lửa tích hợp cho phép theo ứng dụng thay vì theo cổng. Trong System Settings → Network → Firewall, đảm bảo ứng dụng được cho phép, hoặc tắt "Block all incoming connections".
  3. Linux với ufw. Chạy sudo ufw allow 8080/tcp và sudo ufw status để xác nhận. Với firewalld: sudo firewall-cmd --add-port=8080/tcp --permanent rồi sudo firewall-cmd --reload. Trên máy chủ không có cả hai, kiểm tra iptables -L -n hoặc nft list ruleset.
  4. Máy chủ đám mây. Security group hoặc tường lửa mạng của nhà cung cấp nằm trước tường lửa của máy. Thêm quy tắc inbound cho cổng ở đó. Cả hai lớp phải cho phép cổng.

Bước 4: đảm bảo dịch vụ thực sự lắng nghe

  1. Trên máy, liệt kê socket đang lắng nghe: netstat -an | findstr LISTENING trên Windows, sudo ss -ltnp trên Linux, sudo lsof -iTCP -sTCP:LISTEN -n -P trên macOS.
  2. Dòng hiện 127.0.0.1:8080 nghĩa là dịch vụ chỉ nhận kết nối cục bộ. Đổi địa chỉ bind thành 0.0.0.0 (hoặc địa chỉ của máy) trong cấu hình dịch vụ.
  3. Dòng hiện 0.0.0.0:8080 hoặc :::8080 nghĩa là lắng nghe trên mọi giao diện; nếu kiểm tra vẫn nói đóng, tường lửa là nghi phạm còn lại.
  4. Chạy lại kiểm tra. Mở nghĩa là cả chuỗi hoạt động.

Bước 5: cổng nhà mạng chặn

Nhà mạng gia đình thường chặn cổng đến 25 (SMTP) và hay chặn 135 đến 139 và 445 (chia sẻ tệp Windows), đôi khi 80 và 443 trên gói dân cư. Nếu cổng vẫn bị lọc sau mọi bước, chuyển dịch vụ sang cổng khác và chuyển tiếp cổng đó.

Các cổng phổ biến và dịch vụ tương ứng

Cổng Dịch vụ Ghi chú
21 FTP Chỉ kênh điều khiển; truyền dữ liệu dùng cổng khác
22 SSH, SFTP Chỉ nên mở nếu bạn quản trị máy từ xa; dùng xác thực khóa
25 SMTP Thư giữa các máy chủ; bị hầu hết nhà mạng gia đình chặn
53 DNS Chủ yếu UDP; phía TCP dùng cho câu trả lời lớn và chuyển zone
80 HTTP Máy chủ web không mã hóa
443 HTTPS Máy chủ web với TLS
587 SMTP submission Thư từ client tới nhà cung cấp của mình
3306 MySQL, MariaDB Không nên mở ra Internet trừ khi giới hạn tường lửa
3389 Remote Desktop Mục tiêu thường xuyên của tấn công brute-force; đặt sau VPN
5432 PostgreSQL Lời khuyên như MySQL
5900 VNC Thường không mã hóa; tránh phơi ra
8080, 8443 HTTP, HTTPS thay thế Máy chủ phát triển, proxy, bảng quản trị
25565 Máy chủ Minecraft Java Phải chuyển tiếp để bạn bè tham gia qua Internet
27015 Máy chủ game Source engine Lưu lượng game là UDP; chỉ phía TCP kiểm tra được ở đây

Kiểm tra cổng từ máy tính của bạn

Để kiểm tra từ trong mạng thay vì từ Internet, dùng client cục bộ. Test-NetConnection 192.168.1.20 -Port 8080 trong PowerShell báo kết nối TCP có thành công không. Trên macOS và Linux, nc -zv 192.168.1.20 8080 làm tương tự. Nếu cổng mở cục bộ và bị lọc từ đây, vấn đề ở router hoặc nhà mạng; nếu đóng cả cục bộ, vấn đề ở máy.

Chuyển tiếp cổng hoạt động từ ngoài nhưng không từ trong

Một câu đố thường gặp: kiểm tra trên trang này nói cổng mở, bạn bè kết nối được, nhưng bạn không tới được máy chủ của mình qua địa chỉ công khai từ trong mạng. Đây không phải vấn đề chuyển tiếp. Nhiều router gia đình không hỗ trợ NAT loopback, còn gọi là hairpin NAT. Hãy dùng địa chỉ cục bộ của máy chủ từ trong mạng, hoặc thêm mục hosts trên máy tính ánh xạ hostname tới địa chỉ cục bộ.

Máy chủ game, truy cập từ xa và ứng dụng tự lưu trữ

Lưu trữ máy chủ game tại nhà là lý do phổ biến nhất người ta kiểm tra cổng. Mẫu giống nhau với mọi game: máy chủ lắng nghe trên một cổng, router phải chuyển tiếp cổng đó, và bạn bè kết nối tới địa chỉ công khai của bạn. Nhiều game dùng TCP cho kết nối và UDP cho lưu lượng chơi, và chỉ phía TCP xác nhận được ở đây.

Với remote desktop, SSH và ứng dụng tự lưu trữ, kết quả mở chỉ là nửa đầu công việc. Bất cứ gì tới được từ Internet bị trình quét tự động thăm dò liên tục trong vài phút sau khi xuất hiện. Dùng xác thực khóa cho SSH, đừng phơi remote desktop trực tiếp, và đặt bảng quản trị sau VPN hoặc reverse proxy có xác thực.

Kiểm tra VPS hoặc máy chủ đám mây

Trên máy chủ thuê không có router gia đình, nên chuỗi ngắn hơn: tường lửa mạng hoặc security group của nhà cung cấp, rồi tường lửa của máy chủ, rồi dịch vụ. Máy chủ mới thường có security group mặc định chỉ cho phép SSH, đó là lý do máy chủ web mới cài hiện cổng 80 bị lọc cho tới khi thêm quy tắc. Nếu máy chủ có cả IPv4 và IPv6, nhớ kiểm tra này chỉ thử phía IPv4.

Vì sao có cổng mở mà bạn chưa từng cấu hình

Kết quả mở trên cổng bạn không thiết lập thường có giải thích bình thường. Router phơi giao diện quản lý của chính nó, đôi khi ở phía WAN, trên cổng 80, 443 hoặc 8080. UPnP cho ứng dụng và thiết bị trong LAN tự mở cổng, và máy chơi game, máy chủ media, một số camera làm đúng vậy. Image máy chủ có thể đi kèm cơ sở dữ liệu hoặc agent giám sát lắng nghe trên mọi giao diện. Xác định tiến trình bằng các lệnh ở trên, quyết định nó có cần tới được không, rồi gắn vào localhost, chặn trong tường lửa hoặc tắt.

Giới hạn của công cụ này

  • Kiểm tra chỉ là kết nối TCP. Cổng UDP luôn trông như bị lọc.
  • Kết nối đến từ một nơi, máy chủ web của chúng tôi. Tường lửa chỉ cho phép nguồn nhất định sẽ hiện bị lọc ở đây dù cổng mở với nguồn được phép.
  • Máy chủ kết nối qua IPv4. Host chỉ có IPv6 không kiểm tra được từ trang này.
  • Chỉ một cổng mỗi lần kiểm tra, và bị giới hạn tần suất.
  • Mở nghĩa là có gì đó chấp nhận bắt tay TCP. Nó không xác minh dịch vụ là gì, có hoạt động hay có an toàn không.
  • Hostname nhiều địa chỉ được kiểm tra với địa chỉ đầu tiên resolver trả về.
  • Kết quả là ảnh chụp. Địa chỉ động, thiết bị ngủ và kết nối chập chờn thay đổi câu trả lời theo từng phút.
  • Địa chỉ riêng, loopback và dành riêng bị từ chối.

Câu hỏi thường gặp

Công cụ kiểm tra cổng hoạt động thế nào?

Máy chủ của chúng tôi mở một kết nối TCP tới host và cổng bạn nhập. Nếu bắt tay hoàn tất, cổng mở; nếu host chủ động từ chối, cổng đóng; nếu không gì trả lời trong thời hạn, cổng bị lọc.

Đóng và bị lọc khác nhau thế nào?

Đóng nghĩa là host trả lời và nói không có gì lắng nghe trên cổng đó. Bị lọc nghĩa là hoàn toàn không có phản hồi, gần như luôn nghĩa là tường lửa hoặc router đã bỏ lần thử kết nối trước khi nó tới chương trình.

Vì sao cổng của tôi đóng dù chương trình đang chạy?

Thường vì chương trình chỉ lắng nghe trên địa chỉ cục bộ, router không chuyển tiếp cổng tới đúng máy, hoặc tường lửa trên máy chặn kết nối đến. Hãy làm theo các bước sửa trên trang này theo thứ tự.

Tôi có thể kiểm tra cổng UDP không?

Không. Kiểm tra là kết nối TCP, và UDP không có bắt tay để xác nhận. Các dịch vụ như WireGuard, OpenVPN trên UDP, DNS và hầu hết voice chat game không xác minh được bằng công cụ kiểu này.

Kiểm tra IP của tôi có thử chuyển tiếp cổng trên router không?

Có. Kết nối đến từ Internet công cộng tới địa chỉ công khai của bạn, nên nó đi qua mạng nhà mạng, quy tắc chuyển tiếp của router và tường lửa trên máy đích, theo thứ tự đó.

Kiểm tra cổng ở đây có an toàn không?

Công cụ chỉ thử kết nối rồi đóng ngay; không gửi dữ liệu tới dịch vụ của bạn. Biết cổng nào mở từ bên ngoài chính là điều bạn muốn biết trước khi kẻ tấn công biết.

Những cổng nào nên mở trên mạng gia đình?

Lý tưởng là không cổng nào, trừ khi bạn cố ý lưu trữ dịch vụ. Mỗi cổng mở là một dịch vụ phơi ra toàn bộ Internet và phải được vá đầy đủ, bảo vệ bằng xác thực mạnh.

Vì sao cổng 25 hiện bị lọc trên kết nối của tôi?

Hầu hết nhà mạng gia đình chặn cổng 25 cả hai chiều để ngăn máy nhiễm gửi spam. Bạn không đổi được trên router; hãy dùng cổng submission 587 của nhà cung cấp.