Skip to content
VDS · Mạng, địa chỉ IP và tên miền

Cổng: nên mở cổng nào và cách kiểm tra

Các dịch vụ thông thường cần những cổng nào, cách xem máy đang lắng nghe trên cổng nào, cách kiểm tra khả năng truy cập từ bên ngoài, và phải làm gì nếu một cổng bị đóng.

Cập nhật 23 tháng 8, 2026

Cổng là một con số cho hệ thống biết dịch vụ nào sẽ nhận kết nối đến. Nguyên tắc rất đơn giản: chỉ mở những gì bạn thực sự dùng. Mỗi cổng mở thêm là một cánh cửa nữa để ai đó thử tìm điểm yếu.

Các số cổng phổ biến

CổngDịch vụMở ra bên ngoài
22SSHCó, tốt nhất là giới hạn theo địa chỉ
80HTTPCó, nếu bạn có website
443HTTPSCó, nếu bạn có website
25, 465, 587MailChiều vào — chỉ khi bạn tự chạy máy chủ mail. Chiều ra bị đóng ở phía chúng tôi và mở theo yêu cầu
3306MySQLKhông, chỉ cục bộ
5432PostgreSQLKhông, chỉ cục bộ
6379RedisKhông, chỉ cục bộ
27017MongoDBKhông, chỉ cục bộ
25565MinecraftCó, nếu đó là máy chủ game

Lưu ý về mail: kết nối chiều vào không bị giới hạn, còn kết nối chiều ra trên cổng 25, 465 và 587 bị đóng ở cấp node cho đến khi bạn yêu cầu chúng tôi mở. Các quy tắc bên trong máy không thay đổi điều này — xem Máy chủ mail: vì sao khó và cần lưu ý gì để biết chi tiết.

Cơ sở dữ liệu hầu như không bao giờ được mở ra bên ngoài. Nếu bạn cần truy cập từ máy tính làm việc, cách đúng là dùng SSH tunnel, chứ không phải mở cổng:

ssh -L 5432:127.0.0.1:5432 artem@<address>

Máy đang lắng nghe trên cổng nào

ss -tulpn
ss -tlpn | grep 443
lsof -i -P -n | grep LISTEN

Hãy nhìn địa chỉ trước số cổng. 127.0.0.1:5432 nghĩa là dịch vụ chỉ khả dụng từ bên trong — không thể truy cập từ ngoài, dù bạn thêm bao nhiêu quy tắc. 0.0.0.0:5432 nghĩa là dịch vụ mở trên mọi giao diện mạng và phải được bảo vệ bằng tường lửa.

Kiểm tra từ bên ngoài

Từ máy tính của bạn:

nc -vz <address> 443
curl -I http://<address>

Kiểm tra bằng ping là vô nghĩa: ICMP và TCP là hai thứ khác nhau; một cổng có thể hoạt động trong khi ping bị chặn, và ngược lại.

Cổng bị đóng: khắc phục từng bước

  1. Dịch vụ có đang chạy không? systemctl status <service>
  2. Nó có lắng nghe trên đúng địa chỉ không? ss -tulpn — không phải 127.0.0.1
  3. Tường lửa có cho phép không? ufw status verbose hoặc nft list ruleset
  4. Docker có gây cản trở không? Các cổng container được publish sẽ bỏ qua ufw
  5. Kiểm tra log của dịch vụ: journalctl -u <service> -n 50

Thứ tự rất quan trọng: thường thì vấn đề nằm ở bước hai, chứ không phải ở tường lửa.

Đổi cổng của một dịch vụ

Ví dụ, đổi cổng SSH:

sed -i "s/^#\?Port 22/Port 2222/" /etc/ssh/sshd_config
ufw allow 2222/tcp
sshd -t
systemctl restart ssh

Hãy kiểm tra rằng bạn có thể đăng nhập trên cổng mới trong một cửa sổ riêng, rồi sau đó mới xóa quy tắc cho cổng 22. Để biết chi tiết, xem Tăng cường bảo mật SSH.

Những lỗi thường gặp

Triệu chứngNguyên nhânCách khắc phục
Connection refusedDịch vụ không chạysystemctl status, kiểm tra log
Connection timed outGói tin bị tường lửa loại bỏKiểm tra các quy tắc
Chạy được cục bộ, không chạy từ ngoàiBị gắn vào 127.0.0.1Đổi địa chỉ trong config
Address already in useCổng bị dịch vụ khác chiếmss -tulpn và dừng dịch vụ thừa

Chỉ mở cổng sau khi đã kiểm tra xem thứ gì đang trả lời trên đó. Một cổng bị bỏ quên từ thí nghiệm cũ là điểm xâm nhập điển hình cho một vụ hack; xem dấu hiệu bị xâm nhập.