Công cụ netstat, cài đặt

netstat là tiện ích quản lý, thống kê kết nối mạng, nó có trên Linux và Windows (Một số option của lệnh khác nhau giữa Windows, Linux). Phần này tìm hiểu sử dụng netstat trên Linux (CentOS, Ubuntu ...). Nếu gõ lệnh netstat không có thì cài đặt:

Cài đặt trên CentOS/RHEL

# Tìm gói có lệnh netstat
# yum whatprovides */netstat
net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /bin/netstat

Tìm được gói có tên net-tools, tiến hành cài đặt

# yum install net-tools -y

Cài đặt trên Ubuntu

apt-get install net-tools

Các cờ thiết lập lệnh netstat

Khi chạy lệnh netstat có nhiều thiết lập, đầu tiên gõ lệnh sau để xem thông tin sử dụng lệnh và danh sách các tùy chọn:

netstat -h

Thấy có rất nhiều thiết lập, một số có thể quan tâm là:

  • -l hiện thị các socket đang lắng nghe
  • -t kết nối tcp
  • -u kết nối udp
  • -n xem địa chỉ số (không phân giải)
  • -p Hiện thị chương trình (PID) cho từng socket

Các chỉ thị lệnh trên được kết hợp lại với nhau, ví dụ (-ltu), như các lệnh Linux khác chuỗi kết quả có thể lọc để tìm kiếm bằng cách thêm vào sau | grep -w 'chuỗi'

Sử dụng netstat, kiểm tra, thống kê quản lý kết nối mạng

Kiểm tra các tiến trình, đang lắng nghe trên các cổng

netstat -ltnp

Nếu muốn kiểm tra một cổng cụ thể, ví dụ 22

netstat -ltnp | grep -w ':22'

Kiểm tra tất cả các cổng được mở (kể cả đang không hoạt động - listening)

netstat -tulpn

Hiện thị tất cả các loại kết nối (socket)

netstat -a
// Chỉ các kết nối TCP, UDP
netstat -at

Thông tin thống kế network

netstat -s

Thông tin router

netstat -r

Hiện thị các IP và số kết nối của IP đến cổng nào đó, ví dụ cổng 443

netstat -tn | grep ':443 ' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

Giải thích lệnh:

  • netstat -tn tham số -t lấy kết nối TCP, -n không phân giải dịch vụ
  • grep ':443 ' lọc cổng 443, nếu gộp cả cổng 80 thay bằng grep ':443 \|:80 '
  • awk '{print $5}', in cột số 5 thôi (cột IP:PORT)
  • cut -d: -f1 chia các dòng kết quả thành các cột, điểm phân chia là ký tự : sau đó lấy thông tin cột 1 (các IP không có cổng)
  • sort sắp xếp kết quả
  • uniq -c nhóm các IP giống nhau lại (cột đầu số lượng gộp)
  • sort -nr sắp xếp kết quả theo số, cao xuống thấp (số kết nối)
  • head hiện thị 10 kết quả đầu tiên, bỏ head thì hiện thị hết, head -n thay n bằng số

Hiện thị số kết nối của mỗi IP đến Server

netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Đăng ký theo dõi ủng hộ kênh