Kiểm tra Port đang sử dụng – Khi xử lý sự cố kết nối mạng hoặc các sự cố cụ thể của ứng dụng, một trong những điều đầu tiên cần kiểm tra là xem những port nào đang được sử dụng trên hệ thống của bạn và ứng dụng nào đang listen trên một port cụ thể.
Trong bài viết này HOSTVN sẽ hướng dẫn các bạn cách kiểm tra dịch vụ nào đang lắng nghe trên các Port nào với các lệnh netstat, ss và lsof.
Mục lục bài viết
Kiểm tra Port đang sử dụng trong Linux
1. Listening Port là gì
Listen port là cổng mạng mà ứng dụng hoặc quá trình lắng nghe, đóng vai trò là điểm cuối giao tiếp.
Mỗi port hoàn toàn có thể được mở hoặc đóng ( được lọc ) bằng tường lửa. Nói chung, một port được mở là một port mạng gật đầu những gói tin đến bên ngoài .
Ví dụ : Nếu bạn đang chạy Apache listen trên những port 80 và 443 và bạn cố gắng nỗ lực thiết lập Nginx thì bạn sẽ không hề khởi động được Nginx vì những cổng HTTP và HTTPS đã được sử dụng bởi Apache .
2. Kiểm tra listen port với netstat
netstat là một công cụ dòng lệnh có thể cung cấp thông tin về các kết nối mạng. Để liệt kê tất cả các port TCP hoặc UDP đang được lắng nghe, bao gồm các dịch vụ sử dụng các port và trạng thái socket, hãy sử dụng lệnh sau:
sudo netstat -tunlp
Các tùy chọn được sử dụng trong lệnh này có ý nghĩa như sau :
- -t – Hiển thị cổng TCP.
- -u – Hiển thị cổng UDP.
- -n – Hiển thị địa chỉ số.
- -l – Chỉ hiển thị các cổng nghe.
- -p – Hiển thị PID và tên của quá trình lắng nghe. Thông tin này chỉ được hiển thị nếu bạn chạy lệnh dưới dạng root hoặc sudo user.
Các cột quan trọng :
- Proto – Giao thức được sử dụng bởi các socket.
- Local Address – Địa chỉ IP và port mà quá trình nghe.
- PID/Program name – PID và tên của chương trình.
Nếu bạn muốn lọc tác dụng, hãy sử dụng lệnh grep. Ví dụ : để tìm quy trình lắng nghe trên cổng TCP 80, bạn sẽ nhập :
sudo netstat -tnlp | grep :80
Bạn cũng có thể lọc danh sách dựa trên các tiêu chí, ví dụ: PID, giao thức, trạng thái, v.v.
netstat đã lỗi thời và được thay thế bằng ss và ip, nhưng nó vẫn là một trong những lệnh được sử dụng nhiều nhất để kiểm tra các kết nối mạng.
3. Kiểm tra cổng nghe với ss
ss là netstat mới. Nó thiếu một số tính năng netstat nhưng hiểm thị nhiều trạng thái TCP hơn và nó nhanh hơn một chút. Các tùy chọn lệnh hầu hết đều giống netstat nên việc chuyển đổi từ netstat sang ss không khó khăn.
Để có danh sách tất cả các cổng với ss, bạn dùng lệnh sau:
sudo ss -tunlp
4. Kiểm tra cổng nghe với lsof
lsof là một tiện ích dòng lệnh mạnh mẽ cung cấp thông tin về các tệp được mở bởi các quy trình. Để có danh sách tất cả các cổng TCP đang listen dùng lệnh sau:
sudo lsof -nP -iTCP -sTCP:LISTEN
Các tùy chọn được sử dụng như sau :
- -n – Không chuyển đổi số cổng thành tên cổng.
- -p – Hiển thị địa chỉ số.
- -iTCP -sTCP: LISTEN – Chỉ hiển thị các tệp mạng với trạng thái TCP LISTEN.
Các cột quan trọng :
- COMMAND, PID, USER – Tên, pid và người dùng đang chạy chương trình được liên kết với cổng.
- NAME – Số cổng.
Để tìm quá trình đang nghe trên một cổng cụ thể, ví dụ: cổng 80 bạn sẽ sử dụng:
sudo lsof -nP -iTCP:80 -sTCP:LISTEN
Để biết thêm thông tin, hãy truy vấn trang lsof man và đọc về tổng thể những tùy chọn can đảm và mạnh mẽ khác của công cụ này .
5. Kết luận
Trong bài viết này HOSTVN sẽ hướng dẫn các bạn cách kiểm tra dịch vụ nào đang lắng nghe trên các Port nào với các lệnh netstat, ss và lsof. Nếu có bất kỳ ý kiến đóng góp nào các bạn có thể để lại bình luận ở bên dưới. Ngoài ra các bạn có thể xem thêm các bài viết khác về Linux tại đây.
Source: https://bem2.vn
Category: Ứng dụng hay