Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Khi đang khắc phục sự cố mạng hoặc tìm cách cải thiện bảo mật cho máy tính Linux, bạn cần biết cổng nào đang mở. Bài viết này sẽ chỉ cho bạn một số cách để kiểm tra cổng mở trong Linux.
Một cổng là một số 16-bit (0-65.535) để giúp xác định một ứng dụng nhất định hoặc tiến trình trên hệ điều hành Linux (Unix). Mỗi một ứng dụng có cổng khác nhau trên hệ thống Linux.
Dưới đây là các loại cổng khác nhau :
Sử dụng lệnh sau để hiển thị danh sách các ứng dụng và cổng trên Terminal:
cat /etc/services

TCP: TCP là viết tắt của Transmission Control Protocol. Đây là giao thức được sử dụng phổ biến nhất trên Internet. TCP không chỉ giao tiếp một chiều, thay vào đó nó sẽ gửi các gói trở lại để xác nhận rằng nó nhận được các gói tin của bạn.
UDP: viết tắt của User Datagram Protocol. Nó là một giao thức giao tiếp thay thế cho TCP. Giao thức UDP hoạt động tương tự như TCP. Tuy nhiên, nó bỏ qua tất cả các công cụ kiểm tra lỗi. UDP cần thiết khi muốn tăng tốc mà không quan tâm đến sửa lỗi.
SOCKET: Socket cho phép giao tiếp từ hai tiến trình khác nhau trên cùng một máy hoặc trên các máy khác nhau.
Hãy xem xét các cách khác nhau để liệt kê một cổng mở trong Linux.
Trong phương thức này, chúng ta sẽ sử dụng lệnh netstat -atu để kiểm tra các cổng mở trong Linux.

Ở đây chúng ta sử dụng cờ -a, -t và -u cho netstat.
Bạn cũng có thể thêm cờ -p để hiển thị PID của tên chương trình hoặc tiến trình liên quan.

Để chỉ hiển thị các cổng UDP, bạn có thể sử dụng lệnh sau:
netstat -vaun

Ngoài ra, bạn có thể sử dụng lệnh sau để tìm kiếm các cổng TCP:
netstat -vatn

Thay vì sử dụng netstat, chúng ta có thể sử dụng lệnh lsof để hiển thị các cổng mở trong Linux:
lsof -i

Lệnh sau cũng có thể hiển thị các socket mở:
lsof -n -P | grep LISTEN

Ngoài ra, bạn có thể sử dụng lệnh dưới đây để liệt kê tất cả các kết nối TCP:
lsof -i tcp

Bạn có thể sử dụng lệnh sau đây cho các kết nối UDP:
lsof -i udp
Trong phương pháp này, chúng ta sẽ sử dụng nmap để phát hiện cổng mở trên hệ thống Linux. Sử dụng lệnh sau để hiển thị các kết nối cổng TCP:
nmap -sT -O localhost

Cuối cùng, để hiển thị các kết nối cổng UDP, chúng ta có thể sử dụng lệnh sau:
nmap -sU localhost

Netcat (hay nc) là một công cụ dòng lệnh có thể đọc và ghi dữ liệu qua các kết nối mạng, sử dụng giao thức TCP hoặc UDP.
Với netcat, bạn có thể quét một cổng hoặc một dải cổng.

Ví dụ, để quét các cổng TCP đang mở trên một máy từ xa có địa chỉ IP 10.10.8.8 trong phạm vi 20 - 80, bạn sẽ sử dụng lệnh sau:
nc -z -v 10.10.8.8 20-80
Tùy chọn -z yêu cầu nc chỉ quét các cổng đang mở mà không gửi bất kỳ dữ liệu nào và -v là để biết thêm thông tin chi tiết.
Đầu ra sẽ giống như sau:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
...
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Nếu bạn chỉ muốn xuất các dòng có cổng mở trên màn hình, hãy lọc kết quả bằng lệnh grep.
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Để quét các cổng UDP, hãy đưa tùy chọn -u vào lệnh nc:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Một cách khác để kiểm tra xem một cổng nhất định đang mở hay đã đóng là sử dụng Bash shell pseudo-device /dev/tcp/.. hoặc /dev/udp/...
Khi thực thi lệnh trên pseudo-device /dev/$PROTOCOL/$HOST/$IP, Bash sẽ mở kết nối TCP hoặc UDP đến host trên cổng được chỉ định.
Câu lệnh if..else sau đây sẽ kiểm tra xem cổng 443 trên kernel.org có đang mở hay không:
if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'
then
echo "Port is open"
else
echo "Port is closed"
fi
Đầu ra:
Port is open
Đoạn code trên hoạt động như thế nào?
Khi kết nối với một cổng bằng pseudo-device (pseudo-device thường nằm trong /dev, giống như file thiết bị, nhưng thay vì đóng vai trò là cầu nối giữa hệ điều hành và phần cứng, chúng là driver thiết bị (mà không có thiết bị thực tế), thường phục vụ một mục đích thực tế, chẳng hạn như tạo ra dữ liệu ngẫu nhiên hoặc hoạt động như một lỗ hổng ảo cho dữ liệu không mong muốn), thời gian chờ mặc định là rất lớn, vì vậy ví dụ đang sử dụng lệnh timeout để hủy lệnh test sau 5 giây. Nếu kết nối được thiết lập đến cổng 443 kernel.org, lệnh test sẽ trả về true.
Để kiểm tra một dải cổng, hãy sử dụng vòng lặp for:
for PORT in {20..80}; do
timeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "port $PORT is open"
done
Đầu ra sẽ giống như sau:
port 22 is open
port 80 is open
Khi nói đến bảo mật của máy tính Linux, điều đầu tiên cần làm là đóng tất cả các cổng không cần thiết để ngăn chặn truy cập bên ngoài. Với các phương thức được liệt kê ở trên, bạn sẽ có thể dễ dàng kiểm tra các cổng mở trên hệ thống Linux và xác định cổng nào sẽ đóng hoặc mở.
Chúc các bạn thực hiện thành công!
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
TOP công cụ AI tạo bài hát tốt nhất để sáng tác những bản nhạc ấn tượng
Chuyển đổi danh sách sản phẩm thành dashboard hàng tồn kho trực tuyến bằng Google Sheets Canvas
Tinh chỉnh bằng các prompt bổ sung trong Google Sheets Canvas
Cách xuất phản hồi AI Mode sang Docs trên Google Search
So sánh các gói Higgsfield - Nên lựa chọn gói nào để tạo video AI
Chia sẻ an toàn: Quyền hạn, quyền riêng tư và những gì được giữ riêng tư trong Google Sheets Canvas
Gemini vs Claude: Đâu là trợ lý AI tốt hơn?
ChatGPT Work là gì? Sử dụng ChatGPT Work như thế nào?
Lựa chọn ứng dụng doanh nghiệp đầu tiên để thực hiện bằng Google Sheets Canvas
Cách chuyển phản hồi Google AI Mode thành email
Claude vs Perplexity: Đâu là công cụ AI tốt hơn?
4 phần mềm mã Morse miễn phí để gửi tin nhắn được mã hóa
Tự xây dựng ứng dụng doanh nghiệp của riêng bạn bằng Google Sheets Canvas
Cách đổi kích thước ảnh trên ChatGPT không cần prompt
Cách sử dụng Claude Projects: Hướng dẫn thực tế
Cách đánh dấu vùng cần sửa ảnh trên ChatGPT
Sự khác biệt giữa Hub và Switch
Top 6 nền tảng AI hội thoại đáng dùng năm 2026
Những lời chúc đầu tuần hay cho cả 7 ngày may mắn
Cách dùng Claude tự động quản lý Gmail: lên lịch, soạn nháp và gửi thư có kiểm soát
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
8 ứng dụng Microsoft Store miễn phí giúp Windows tốt hơ
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Đừng chia sẻ ảnh cho đến khi bạn chạy kiểm tra siêu dữ liệu này!
6 cách mở Computer/System Properties trong Windows 10
Cách sửa lỗi There Are Currently No Power Options Available Windows