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ỉ
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- 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.
- 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".
- Linux với ufw. Chạy
sudo ufw allow 8080/tcpvàsudo ufw statusđể xác nhận. Với firewalld:sudo firewall-cmd --add-port=8080/tcp --permanentrồisudo firewall-cmd --reload. Trên máy chủ không có cả hai, kiểm traiptables -L -nhoặcnft list ruleset. - 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
- Trên máy, liệt kê socket đang lắng nghe:
netstat -an | findstr LISTENINGtrên Windows,sudo ss -ltnptrên Linux,sudo lsof -iTCP -sTCP:LISTEN -n -Ptrên macOS. - 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ụ.
- 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.
- 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.
