1. Giới thiệu
Đối với nhiều người dùng Ubuntu, quản lý cổng là một yếu tố cực kỳ quan trọng để duy trì bảo mật và hiệu suất mạng. Đặc biệt, trong việc vận hành dịch vụ và giao tiếp qua mạng, kiểm tra các cổng đang mở là điều cần thiết để ngăn chặn các cuộc tấn công. Ngoài ra, việc kiểm tra cổng cũng giúp ích trong việc khắc phục sự cố và tối ưu hóa cấu hình mạng.
Bài viết này sẽ hướng dẫn chi tiết cách kiểm tra cổng trên Ubuntu, giới thiệu các lệnh cụ thể và cung cấp các bước thực tế hữu ích cho cả người mới bắt đầu và người dùng trung cấp.
2. Cổng là gì?
Số cổng đóng vai trò như một “cửa ngõ” để máy tính gửi dữ liệu đến các dịch vụ hoặc tiến trình cụ thể khi giao tiếp mạng. Giao tiếp mạng chủ yếu sử dụng hai giao thức là TCP và UDP. TCP đảm bảo độ tin cậy của dữ liệu bằng cách thiết lập kết nối trước khi truyền tải, đây là một giao thức “có kết nối”. Ngược lại, UDP không thiết lập kết nối trước, giúp truyền tải dữ liệu nhanh chóng, đây là một giao thức “không kết nối”.
Sự khác biệt giữa TCP và UDP
- TCP (Transmission Control Protocol): Giao thức đảm bảo truyền tải dữ liệu đáng tin cậy, giúp đảm bảo dữ liệu được gửi đến đúng đích một cách chính xác. Thường được sử dụng cho các máy chủ web (HTTP/HTTPS) và kết nối SSH.
- UDP (User Datagram Protocol): Không đáng tin cậy như TCP nhưng có độ trễ thấp hơn, giúp truyền dữ liệu nhanh chóng. Thường được sử dụng trong truyền phát trực tuyến (streaming) và VoIP, nơi cần giao tiếp theo thời gian thực.
Do đó, hiểu rõ về số cổng đóng vai trò quan trọng trong việc quản lý bảo mật và hiệu suất mạng.

3. Danh sách các lệnh kiểm tra cổng trên Ubuntu
Để kiểm tra các cổng đang mở trên Ubuntu, có thể sử dụng nhiều lệnh khác nhau. Dưới đây là một số lệnh phổ biến.
1. Lệnh netstat
netstat
là một lệnh mạnh mẽ dùng để hiển thị thông tin về kết nối mạng, bảng định tuyến, thống kê giao diện, v.v. Bạn có thể sử dụng lệnh sau để kiểm tra các cổng đang lắng nghe:
sudo netstat -lntu
-l
: Chỉ hiển thị các cổng đang lắng nghe-n
: Hiển thị địa chỉ IP và số cổng dưới dạng số-t
: Hiển thị cổng TCP-u
: Hiển thị cổng UDP
2. Lệnh ss
ss
là một lệnh thay thế cho netstat
và được sử dụng rộng rãi hơn do hiệu suất tốt hơn. Để hiển thị các cổng đang lắng nghe, bạn có thể sử dụng lệnh sau:
ss -lntu
ss
được cho là nhanh hơn netstat
trong việc lấy thông tin chi tiết về socket mạng.
3. Lệnh lsof
lsof
là một lệnh dùng để hiển thị danh sách các tiến trình đang mở tệp, bao gồm cả các cổng mạng đang được sử dụng. Bạn có thể sử dụng lệnh sau để kiểm tra các cổng đang mở:
sudo lsof -i
4. Lệnh nmap
nmap
là một công cụ quét bảo mật mạng nổi tiếng, giúp kiểm tra các cổng đang mở và dịch vụ đang chạy. Để quét tất cả các cổng trên máy chủ cục bộ, bạn có thể sử dụng lệnh sau:
sudo nmap -n -PN -sT -sU -p- localhost
4. Mở và đóng cổng
Việc mở hoặc đóng cổng có thể giúp tăng cường bảo mật hệ thống Ubuntu. Ubuntu cung cấp một công cụ tường lửa đơn giản có tên là ufw
(Uncomplicated Firewall), giúp quản lý cổng một cách dễ dàng.
Mở cổng bằng ufw
Ví dụ, để mở cổng 80 cho HTTP, bạn có thể sử dụng lệnh sau:
sudo ufw allow 80
Tương tự, để mở cổng 22 cho SSH:
sudo ufw allow 22
Đóng cổng bằng ufw
Để đóng một cổng đã mở, bạn có thể sử dụng lệnh sau:
sudo ufw delete allow 80
Lệnh này sẽ hủy bỏ việc mở cổng 80.
5. Ví dụ thực tế: Kiểm tra một cổng cụ thể
Dưới đây là cách kiểm tra một cổng cụ thể trên Ubuntu. Ví dụ, để kiểm tra xem dịch vụ SSH có đang lắng nghe trên cổng 22 không, bạn có thể sử dụng lệnh netstat
hoặc ss
như sau:
ss -lnt | grep :22
Bạn cũng có thể sử dụng lệnh lsof
để kiểm tra:
sudo lsof -i :22
Nếu SSH đang chạy trên cổng 22, bạn sẽ thấy kết quả hiển thị tiến trình liên quan.

6. Các vấn đề phổ biến và cách khắc phục
Trong quá trình kiểm tra và quản lý cổng, một số vấn đề thường gặp có thể xảy ra. Dưới đây là một số lỗi phổ biến và cách khắc phục.
Cổng không mở
Nếu một cổng không mở như mong đợi, trước tiên hãy kiểm tra xem tường lửa có đang chặn cổng đó không bằng cách sử dụng lệnh sau:
sudo ufw status
Nếu tường lửa không chặn cổng, hãy kiểm tra xem dịch vụ liên quan có đang chạy hay không. Ví dụ, để kiểm tra dịch vụ SSH:
sudo systemctl status ssh
7. Tổng kết
Bài viết này đã hướng dẫn cách kiểm tra cổng trên Ubuntu bằng các lệnh cơ bản và cách sử dụng chúng. Kiểm tra cổng là một bước quan trọng trong việc bảo mật mạng và đảm bảo sự ổn định của hệ thống. Đặc biệt, quản lý các cổng đang lắng nghe từ bên ngoài là điều cần thiết để giảm thiểu rủi ro bảo mật. Hãy áp dụng các bước được hướng dẫn trong bài viết để quản lý cổng trên hệ thống của bạn một cách hiệu quả.