Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Hướng dẫn sử dụng lệnh ss Linux chi tiết để giám sát kết nối mạng

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:17/05/2025
Lượt xem

Đánh giá

5/5 - (2 bình chọn)

Trong Linux, ss là lệnh dùng để kiểm tra các kết nối mạng và socket đang hoạt động trên hệ thống. Đây là công cụ thay thế hiện đại cho netstat, giúp quản trị viên theo dõi lưu lượng, kiểm tra dịch vụ, phát hiện bất thường nhanh chóng và chính xác. Bài viết sẽ giới thiệu chi tiết về cú pháp và các tùy chọn thường dùng của ss, kèm theo những ví dụ thực tế như: kiểm tra SSH, lọc IP lạ, thống kê kết nối web, và phát hiện trạng thái CLOSE-WAIT. Ngoài ra, bạn cũng sẽ tìm thấy phần so sánh với netstat và giải pháp lưu trữ tối ưu từ Vietnix cho website của bạn.

Điểm chính cần nắm

  • Lệnh ss Linux là gì?: Giới thiệu khái quát về lệnh ss, công dụng và lợi ích khi sử dụng trong quản trị mạng.
  • 8 ví dụ thực tế cho lệnh ss trong Linux: Cung cấp các tình huống thực tế để ứng dụng lệnh ss vào việc giám sát và kiểm tra kết nối mạng.
  • So sánh lệnh ss và lệnh netstat: Đưa ra sự khác biệt giữa ssnetstat, giúp người dùng lựa chọn công cụ phù hợp.
  • Vietnix – Giải pháp lưu trữ tối ưu cho website của bạn: Giới thiệu dịch vụ hosting tốc độ cao và hỗ trợ kỹ thuật 24/7 từ Vietnix.
  • FAQ: Tổng hợp các câu hỏi thường gặp liên quan đến cách sử dụng lệnh ss trong Linux.

Lệnh ss Linux là gì?

Lệnh ss (socket statistics) là một công cụ dòng lệnh dùng để hiển thị thông tin chi tiết về các kết nối socket trên hệ thống Linux. ss thường được sử dụng để thay thế cho lệnh netstat, nhờ khả năng hiển thị nhanh hơn và đầy đủ hơn các thông tin liên quan đến kết nối mạng, bao gồm TCP, UDP, UNIX socket… Công cụ này thuộc gói iproute2 – mặc định có trên hầu hết các bản phân phối Linux hiện nay.

Lệnh ss (socket statistics) dùng để hiển thị thông tin chi tiết về các kết nối socket trên hệ thống Linux
Lệnh ss (socket statistics) dùng để hiển thị thông tin chi tiết về các kết nối socket trên hệ thống Linux

Cú pháp lệnh ss cơ bản

ss [tùy chọn]

Nếu chạy không có tùy chọn nào:

ss
Cú pháp lệnh ss cơ bản
Cú pháp lệnh ss cơ bản

Lệnh trên sẽ hiển thị tất cả các socket đang hoạt động, bất kể trạng thái. Kết quả đầu ra bao gồm nhiều cột thông tin như:

  • Netid: Giao thức của socket (tcp, udp, unix…)
  • State: Trạng thái kết nối (ESTAB, LISTEN, TIME-WAIT…)
  • Recv-Q / Send-Q: Dữ liệu đang chờ nhận hoặc gửi
  • Local Address:Port: Địa chỉ và cổng cục bộ
  • Peer Address:Port: Địa chỉ và cổng đối tác

Tùy chọn thông dụng của lệnh ss

Dưới đây là các tùy chọn thường dùng với ss để lọc và hiển thị thông tin theo nhu cầu:

Tùy chọnMô tả
-aHiển thị tất cả socket (bao gồm đang nghe và không nghe)
-lChỉ hiển thị socket ở trạng thái lắng nghe (LISTEN)
-tHiển thị các kết nối TCP
-uHiển thị các kết nối UDP
-xHiển thị UNIX socket
-pHiển thị PID và tên tiến trình sử dụng socket
-sHiển thị thống kê tóm tắt kết nối
state <trạng_thái>Lọc kết nối theo trạng thái (ví dụ: established, time-wait)
sport / dportLọc theo cổng nguồn hoặc đích
dst / srcLọc theo địa chỉ IP đích hoặc nguồn
Tùy chọn thông dụng của lệnh ss trong Linux

Ví dụ:

ss -t state established
# Hiển thị các kết nối TCP đã thiết lập.
ss -at '( dport = :22 or sport = :22 )'# Hiển thị các kết nối TCP đã thiết lập.
# Hiển thị các kết nối TCP đi đến hoặc đi từ cổng SSH (22).

Kiểm tra dịch vụ SSH đang nghe ở cổng nào

Nếu bạn muốn xác định dịch vụ SSH có đang chạy hay không, và đang lắng nghe trên cổng nào, bạn có thể sử dụng lệnh:

ss -ltpn

Trong đó:

  • -l: Chỉ hiển thị các socket ở trạng thái LISTEN
  • -t: Lọc chỉ các kết nối TCP
  • -p: Hiển thị thông tin tiến trình (PID và tên)
  • -n: Hiển thị địa chỉ và cổng ở dạng số (tránh dịch DNS)
Kiểm tra dịch vụ SSH đang nghe ở cổng nào
Kiểm tra dịch vụ SSH đang nghe ở cổng nào

Lệnh trên sẽ trả về thông tin như sau:

LISTEN  0  128  0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=1234,fd=3))

Trong ví dụ này, bạn có thể thấy dịch vụ sshd đang lắng nghe trên cổng TCP 22 – cổng mặc định của SSH. Nếu cổng hiển thị khác, có thể hệ thống đang sử dụng một cổng tùy chỉnh cho SSH.

Kiểm tra có kết nối từ IP lạ không

Để giám sát các kết nối TCP đến hệ thống và kiểm tra xem có địa chỉ IP nào không mong muốn đang kết nối hay không, bạn có thể sử dụng lệnh:

ss -tn state established

Lệnh này hiển thị tất cả các kết nối TCP đang ở trạng thái “đã thiết lập” (established), nghĩa là phiên kết nối đã hoàn tất bắt tay và đang hoạt động.

Kiểm tra có kết nối từ IP lạ không
Kiểm tra có kết nối từ IP lạ không

Ví dụ kết quả:

ESTAB 0 0 192.168.1.100:22 203.0.113.10:55342

Trong dòng này, IP 203.0.113.10 đang kết nối đến cổng SSH trên máy chủ. Nếu bạn thấy nhiều kết nối từ các địa chỉ IP không quen thuộc, bạn có thể cần xem xét kỹ để xác định liệu đó có phải là truy cập hợp lệ hay không.

Bạn cũng có thể dùng grep để lọc nhanh theo một địa chỉ IP cụ thể, ví dụ:
ss -tn | grep 203.0.113.10

Kiểm tra số lượng kết nối đến web server

Khi vận hành web server (Apache, Nginx…), bạn có thể cần theo dõi số lượng kết nối đến cổng HTTP hoặc HTTPS. Để kiểm tra điều này, bạn sử dụng:

ss -tn | grep ':80' | wc -l

Hoặc bạn có thể dùng lệnh sau:

ss -tn | grep ':443' | wc -l
Kiểm tra số lượng kết nối đến web server
Kiểm tra số lượng kết nối đến web server

Trong đó:

  • sport = :80: lọc socket có cổng nguồn là 80 (HTTP)
  • sport = :443: lọc socket có cổng nguồn là 443 (HTTPS)
  • wc -l: đếm số dòng – tức là số lượng kết nối

Lệnh này khá tiện lợi để kiểm tra lưu lượng truy cập, giám sát đột biến kết nối, hoặc chẩn đoán khi máy chủ bị quá tải.

Phát hiện bất thường (quá nhiều CLOSE-WAIT)

Kết nối TCP ở trạng thái CLOSE-WAIT thường xuất hiện khi ứng dụng phía máy chủ không đóng kết nối đúng cách sau khi client đã yêu cầu ngắt. Nếu số lượng kết nối ở trạng thái này quá nhiều, đó có thể là dấu hiệu của rò rỉ tài nguyên hoặc lỗi logic trong ứng dụng.

Bạn có thể liệt kê các kết nối ở trạng thái này bằng lệnh:

ss -tan | grep CLOSE-WAIT
Phát hiện bất thường (quá nhiều CLOSE-WAIT)
Phát hiện bất thường (quá nhiều CLOSE-WAIT)

Và đếm số lượng kết nối bất thường:

ss -tan | grep CLOSE-WAIT | wc -l
Và đếm số lượng kết nối bất thường
Và đếm số lượng kết nối bất thường

Nếu bạn thấy hàng trăm hoặc hàng nghìn kết nối CLOSE-WAIT, bạn nên kiểm tra lại ứng dụng hoặc dịch vụ đang chạy để đảm bảo rằng các socket được đóng đúng cách.

Đây là một trong những kỹ thuật giám sát giúp phát hiện sớm lỗi logic trong lập trình mạng hoặc cấu hình sai của web server, proxy hoặc backend.

Liệt kê tất cả các kết nối (bao gồm đang lắng nghe và không lắng nghe)

Để xem toàn bộ các socket hiện có trên hệ thống, bao gồm cả các kết nối đang hoạt động và các socket đang lắng nghe, dùng lệnh:

ss -a

Hoặc bạn dùng lệnh này:

ss --all

Lệnh này giúp bạn theo dõi toàn bộ trạng thái kết nối mạng, từ TCP, UDP cho đến các socket Unix. Đây là bước đầu quan trọng để tổng quan về trạng thái mạng trên máy.

Liệt kê tất cả các kết nối (bao gồm đang lắng nghe và không lắng nghe)
Liệt kê tất cả các kết nối (bao gồm đang lắng nghe và không lắng nghe)

Liệt kê tất cả các kết nối UDP (đang hoạt động hoặc không)

Để liệt kê tất cả các kết nối UDP, bao gồm cả đang nghe và đang gửi nhận dữ liệu, dùng:

ss -ua

UDP là giao thức không kết nối, nên việc theo dõi các socket UDP giúp phát hiện dịch vụ hoặc ứng dụng đang sử dụng UDP trên máy. Tùy chọn -u để lọc UDP, -a để hiển thị tất cả trạng thái.

Liệt kê tất cả các kết nối UDP (đang hoạt động hoặc không)
Liệt kê tất cả các kết nối UDP (đang hoạt động hoặc không)

Liệt kê các socket UDP đang lắng nghe

Nếu chỉ muốn biết những socket UDP nào đang mở để nhận dữ liệu (đang “listen”), sử dụng:

ss -lu

Lệnh này tập trung vào các dịch vụ UDP đang mở cổng để chờ nhận dữ liệu từ bên ngoài, hữu ích khi bạn muốn kiểm tra dịch vụ UDP nào đang hoạt động trên máy.

Liệt kê các socket UDP đang lắng nghe
Liệt kê các socket UDP đang lắng nghe

Hiển thị thống kê tóm tắt về kết nối mạng

Để xem nhanh số liệu tổng quát về các loại kết nối và trạng thái trên máy, dùng:

ss -s

Lệnh này cung cấp báo cáo ngắn gọn về tổng số kết nối TCP, UDP, số kết nối đã thiết lập, đang nghe, đang đóng, v.v. Rất tiện để đánh giá nhanh hiệu suất và tình trạng mạng.

Hiển thị thống kê tóm tắt về kết nối mạng
Hiển thị thống kê tóm tắt về kết nối mạng

So sánh lệnh ss và lệnh netstat

Cả ssnetstat đều được dùng để kiểm tra kết nối mạng và trạng thái socket trên hệ thống Linux. Tuy nhiên, ss là công cụ hiện đại hơn và thường được khuyên dùng trong các bản phân phối Linux mới. Dưới đây là bảng so sánh chi tiết:

Tiêu chíssnetstat
Tốc độNhanh hơn đáng kểChậm hơn, nhất là với nhiều kết nối mạng
Hiển thị chi tiếtHiển thị thông tin đầy đủ, có thể lọc nâng caoHiển thị thông tin cơ bản
Hỗ trợ IPv6/UnixCó, nhưng không tối ưu bằng ss
Hiển thị PID/tiến trìnhCó (với tùy chọn -p)Có (với tùy chọn -p)
Cập nhậtĐược tích hợp sẵn trong hệ thống mớiThuộc gói net-tools, thường không cài sẵn
Tình trạng hỗ trợĐược hỗ trợ và duy trìĐã lỗi thời, không còn phát triển tích cực
Cú pháp lọc nâng caoCó (lọc theo IP, port, trạng thái TCP, v.v.)Hạn chế

Vietnix – Giải pháp lưu trữ tối ưu cho website của bạn

Nếu bạn đang tìm kiếm một dịch vụ VPS chất lượng với tốc độ cao và hiệu suất ổn định, Vietnix là lựa chọn đáng tin cậy. Với hệ thống máy chủ hiện đại và hạ tầng được tối ưu cho tốc độ và bảo mật, Vietnix giúp website của bạn vận hành mượt mà, an toàn và liên tục. Không chỉ cung cấp VPS hiệu suất cao và các gói hosting đa dạng, Vietnix còn nổi bật nhờ đội ngũ kỹ thuật nhiều kinh nghiệm, luôn sẵn sàng hỗ trợ 24/7 để xử lý mọi sự cố nhanh chóng và chuyên nghiệp.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.

Câu hỏi thường gặp

Lệnh ss trong Linux là gì và dùng để làm gì?

ss là viết tắt của “socket statistics”, dùng để hiển thị thông tin các kết nối mạng và socket trên hệ thống Linux. Đây là công cụ thay thế hiện đại hơn netstat.

Làm sao để liệt kê tất cả các kết nối TCP đang hoạt động?

Dùng lệnh ss -t state established để hiển thị tất cả kết nối TCP đã thiết lập (đang hoạt động).

Cách lọc kết nối theo địa chỉ IP hoặc port bằng ss?

Dùng ss dst <IP> hoặc ss src <IP> để lọc theo địa chỉ. Lọc theo port dùng cú pháp ss -t '( sport = :22 )'.

Làm sao để phát hiện tình trạng CLOSE-WAIT bất thường bằng ss?

Dùng ss -t state close-wait để lọc các kết nối TCP đang ở trạng thái CLOSE-WAIT, thường là dấu hiệu ứng dụng chưa đóng kết nối đúng cách.

Làm sao để chỉ xem các socket thuộc giao thức Unix domain?

Dùng ss -x hoặc ss -f unix để hiển thị các Unix socket.

Tại sao lệnh ss thường hiển thị nhiều dòng CLOSE-WAIT và điều đó có ý nghĩa gì?

CLOSE-WAIT là trạng thái TCP cho thấy ứng dụng đã nhận tín hiệu đóng từ client nhưng chưa phản hồi hoặc đóng lại. Nhiều dòng CLOSE-WAIT có thể là dấu hiệu ứng dụng lỗi hoặc không giải phóng tài nguyên socket đúng cách.

Lệnh ss có hỗ trợ hiển thị kết nối IPv6 riêng biệt không?

Có, dùng ss -6 để lọc các kết nối IPv6. Kết hợp với -t, -u nếu cần chỉ định giao thức.

Có thể dùng ss để phát hiện tấn công DDoS không?

Không trực tiếp, nhưng bạn có thể phát hiện bất thường như quá nhiều kết nối từ một IP hoặc số lượng lớn socket ở trạng thái SYN-RECV – dấu hiệu của SYN Flood.

Lời kết

Lệnh ss giúp bạn giám sát và xử lý sự cố mạng nhanh chóng, từ kiểm tra dịch vụ đến phát hiện các kết nối bất thường. Việc thành thạo công cụ này sẽ tăng hiệu quả vận hành và bảo mật cho hệ thống Linux. Nếu bạn có bất kỳ thắc mắc nào về cách dùng ss, đừng ngần ngại để lại bình luận. Bạn cũng có thể chia sẻ bài viết để giúp cộng đồng Linux Việt Nam học hỏi thêm. Và nếu đang tìm một giải pháp hosting mạnh mẽ, đừng bỏ qua phần giới thiệu về dịch vụ tại Vietnix.

Mọi người cũng xem:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi 30 tháng 4
Khi mua Hosting/VPS
16/04/2025 - 16/05/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG