Kieểm tra lưu lượng mangj sử dụng trên server linux

Vấn đề full disk chắc hẳn cũng sẽ gây nên một số rắc rối nhất định phải không các bạn? Đặc biệt là đối với các bạn mới tập làm quen với việc quản trị hệ thống server Linux.

Trong một số trường hợp, bạn cần tìm nhanh xem file hay thư mục nào đang chiếm nhiều dung lượng nhất trên ổ cứng. Và thông thường, chúng ta sẽ cần tìm ở một số thư mục chính có khả năng chiếm nhiều dung lượng như /tmp, /home hay /var.

Trên Linux không có lệnh đơn nào cho phép thống kê các file/thư mục chiếm nhiều dung lượng. Mặc dù vậy, bằng sự kết hợp của nhiều lệnh cơ bản [sử dụng câu lệnh ghép], bạn sẽ dề dàng tìm thấy những file/thư mục đang chiếm nhiều dung lượng nhất.

Cách kiểm tra tốc độ và băng thông mạng trên Linux



1. Giới thiệu về công cụ Iperf và Nload.

Iperf là một công cụ miễn phí, dùng để đo lường lượng dữ liệu mạng [throughput] tối đa mà một server có thể xử lý. Công cụ này rất hữu ích để truy tìm ra các vấn đề đối với hệ thống mạng. Iperf còn có thể kiểm tra băng thông tối đa mà đường truyền mạng có thể đáp ứng.

Nload là một công cụ dòng lệnh để theo dõi lưu lượng mạng và việc sử dụng băng thông theo thời gian thực. Nload giúp giám sát lưu lượng đến [Incoming] và đi [Outgoing] bằng biểu đồ và cung cấp các thông tin như tổng lượng dữ liệu được truyền và mức sử dụng mạng tối thiểu và tối đa.

2. Sử dụng Iperf và Nload để kiểm tra băng thông mạng.

Tại bài này chúng ta sẽ sử dụng công cụ Iperf và Nload để thực hiện kiểm tra băng thông tối đa của mạng. Bài thử nghiệm này thường áp dụng để kiểm tra tốc độ tối đa của đường truyền mạng và card mạng.


3. Cài đặt và cấu hình trên Server.

Địa chỉ IP: 192.168.20.159
Hệ điều hành: Centos 7
Cổng mạng 10GB : p1p2

Cài đặt phần mềm kiểm tra.

Mã nguồn [Chọn] Expand

# yum install epel-release -y
# yum install iperf nload -y

Bật chế độ iperf.

Mã nguồn [Chọn] Expand

# iperf -s
Tắt tường lửa Firewalld trên Server.

Mã nguồn [Chọn] Expand

# systemctl stop firewalld
4. Cài đặt và cấu hình trên Client.

Địa chỉ IP: 192.168.20.158
Hệ điều hành: Centos 7
Cổng mạng 10GB : p1p2

Cài đặt phần mềm kiểm tra.

Mã nguồn [Chọn] Expand

# yum install epel-release -y
# yum install iperf nload -y

Tắt tường lửa Firewalld trên Client.

Mã nguồn [Chọn] Expand

# systemctl stop firewalld
5. Thực hiện thử nghiệm.

5.1. Thao tác trên Client.

Trên Client, chúng ta thực hiện đẩy gói TCP tới Server và kiểm tra network traffic trên card 10G của Client.
Thực hiện đẩy iperf TCP như lệnh dưới đây.

Mã nguồn [Chọn] Expand

iperf -c 192.168.20.159 -i1 -t 100 -m
Giải thích tham số câu lệnh trên.

  • -c: địa chỉ host của iperf server [192.168.20.159]
  • -i: khoảng thời gian giữa 2 lần report kết quả theo giây [1s]
  • -t: thời gian thực hiện đẩy traffic theo giây [100s]
  • -m: in ra MTU header


Như trong hình trên thì băng thông đã được đẩy lên 9,3 Gbits/sec nghĩa là card 10GB đã hoạt động như mong đợi.

5.2. Kiểm tra băng thông hiện tại trên Server và Client.

Để kiểm tra băng thông hiện tại trên cả Server và Client bằng cách sử dụng câu lệnh để nload để xem traffic network trên port p1p2. Để chỉ rõ công mạng p1p2, sử dụng option -d như bên dưới.

Mã nguồn [Chọn] Expand

nload -d p1p2
Trên Client, chúng ta sẽ nhìn vào phần Outgoing Traffic bây giờ đã đạt xấp xỉ 9 Gbits/sec.


Trên Server, chúng ta sẽ nhìn vào phần Incoming Traffic bây giờ đã đạt xấp xỉ 9 Gbits/sec.


Với bài thử nghiệm này thì chúng ta đã có thể hình dung được cách kiểm tra băng thông và tốc độ mạng trên Linux.

Việc kiểm tra lưu lượng trên mạng sẽ giúp chúng ta kiểm soát được dữ liệu và các máy tính. Hiểu cách thực hiện khắc phục sự cố mạng ở mức độ cơ bản giúp chúng ta tiết kiệm cả thời gian lẫn tiền bạc. Mỗi một hệ điều hành Linux đều có một số công cụ dòng lệnh giúp bạn có thể chuẩn đoán vấn đề mạng xảy ra. Thêm vào đó, còn có rất nhiều công cụ mã nguồn mở có thể giúp bạn tìm ra các vấn đề mạng.

Trong bài hướng dẫn này chúng tôi sẽ giới thiệu cho cá bạn một số công cụ kiểm tra mạng, từ những công cụ đơn giản như dòng lệnh đến các ứng dụng có giao điện đồ họa trực quan được cung cấp miễn phí. Biết được một số lệnh đơn giản và khi nào cần sử dụng chúng sẽ giúp bạn bắt đầu công việc chuẩn đoán mạng. Trong bài chúng tôi sử dụng máy tính Ubuntu 10.04 làm nền tảng để test, mặc dù vậy tất cả các công cụ được giới thiệu trong bài đều có thể làm việc trong các distro khác.



Ping

Nếu không thoải mái trong việc sử dụng dòng lệnh Linux từ một terminal, bạn có thể bỏ qua phần này để đến với các mục bên dưới. Mặc dù vậy vẫn có rất nhiều thứ giá trị có thể thực hiện từ dòng lệnh đơn giản này, đặc biệt khi nói đến việc chuẩn đoán vấn đề trong mạng. Hầu hết các lệnh sẽ hiển thị thông tin có thể giúp bạn xác định được điều gì đang xảy ra. Một số yêu cầu cho phép mức root hoặc tối thiểu cũng phải có thể phát lệnh sudo.



ping

Lệnh đầu tiên cần được giới thiệu là lệnh ifconfig. Khi sử dụng lệnh này trong nhắc lệnh, bạn sẽ được cung cấp các thông tin về tất cả thiết bị mạng đã được nhận dạng. Trong ví dụ, bạn có thể thấy eth0, lo và wlan0. Chúng tương ứng với thiết bị Ethernet chạy dây [được gán địa chỉ 192.168.1.2], kết nối lo hoặc loopback, thiết bị Ethernet không dây [địa chỉ 192.168.1.102]. ifconfig cũng hiển thị địa chỉ MAC của thiết bị [HWaddr] và một số thống kê về lưu lượng. Có thể nói đây sẽ là lệnh đầu tiên bạn sử dụng khi gặp vấn đề về mạng để có thể thấy địa chỉ IP có hợp lệ hay không và xem các lỗi cũng như thống kê lưu lượng.

Lệnh ping chính là công cụ thứ hai trong số các công cụ dòng lệnh, lệnh này giúp bạn xác định xem máy tính hiện có đang truyền thông với Internet hay không. Khi ping đến một địa chỉ nào đó [chẳng hạn như 4.2.2.1], bạn sẽ thấy trạng thái của kết nối này. Thêm vào đó, lệnh này còn hiển thị cho bạn thời gian cần thiết để hoàn tất lệnh.

Sau hai lệnh đầu tiên ở trên là lệnh route. Lệnh này sẽ hiển thị cho bạn một danh sách các địa chỉ IP gồm có địa chỉ Destination và Gateway kết nối đến mỗi giao diện, cùng với đó là một số thông tin bổ sung nằm trong cột Flags. Cột này sẽ có ký tự G trên dòng liên quan với gateway mặc định. Bạn có thể sử dụng địa chỉ này trong lệnh ping để xác định xem máy tính của mình có kết nối với gateway hay không.

EtherApe


Etherape

EtherApe là một công cụ có thể download từ Ubuntu Software Center. Nó sử dụng GNOME và libpcap để hiển thị một bản đồ trực quan về lưu lượng mạng. Sau khi cài đặt, bạn có thể sử dụng biểu tượng EtherApe, bên dưới menu Applications / System Tools. Khi chạy theo cách này, chương trình sẽ không thể mở bất kỳ thiết bị mạng nào vì yêu cầu truy cập root. Chúng ta có thể thực hiện bằng cách chạy nó từ dòng lệnh thông qua lệnh sudo như sau:

$ sudo etherape

Khi chương trình được khởi chạy, nó sẽ hiển thị bản đồ trực quan về lưu lượng trên giao diện Ethernet mặc định. Bạn có thể chọn một thiết bị nào đó nếu máy tính có nhiều giao diện Ethernet bằng menu Capture / Interfaces. EtherApe cũng có khả năng xem dữ liệu từ một file pcap đã lưu và hiển thị lưu lượng theo giao thức.

Nmap

Nmap là một công cụ quét bảo mật được sử dụng rộng rãi từ những năm 1997. Nó sử dụng một loạt các gói dữ liệu đặc biệt để thăm dò mạng để từ đó tạo bản đồ các địa chỉ IP, xác định hệ điều hành của địa chỉ IP nào đó, thăm dò một loạt các cổng IP ở một địa chỉ cụ thể. Một trong những vấn đề cơ bản nhất là để thực hiện những gì được gọi là “ping sweep”, có nghĩa một loạt lệnh ping để xác định những địa chỉ nào máy tính được gắn với chúng. Thao tác này có thể được thực hiện qua cú pháp sau: 

$ nmap -sP 192.168.1.1-255

Còn có một số ứng dụng đồ họa khác từ Ubuntu Software Center nhưng sử dụng nmap như một engine và sau đó hiển thị các kết quả theo cách thân thiện nhất. Những công cụ đó gồm có NmapSI4, công cụ sử dụng giao diện Qt4 và Zenmap.

Tcpdump

Capture lưu lượng mạng để thực hiện phân tích kỹ lưỡng hơn là chức năng chính của tcpdump. Thực sự, việc capture dữ liệu được thực hiện bởi libpcap trong khi việc trình diễn và phân tích được thực hiện bởi tcpdump. Dữ liệu Internet sẽ được lưu trong định dạng file pcap để kiểm tra về sau.

Lệnh tcpdump để capture lưu lượng cơ bản như sau:

$ sudo tcpdump nS

Yêu cầu lệnh sudo để tăng quyền truy cập vào thiết bị Ethernet mặc định. Lệnh này sẽ hiển thị các thông tin cơ bản gồm có thời gian, địa chỉ nguồn, địa chỉ đích và kiểu dữ liệu. Nó sẽ tiếp tục hiển thị thông tin trong terminal cho tới khi bạn nhấn control-C. Tcpdump là cách tốt nhất và nhanh nhất để có thể capture lưu lượng mạng vào một file. Lệnh điển hình để thực hiện là:

$ sudo tcpdump s w pktfile.pcap


Wireshark

Wireshark

Wireshark, trước đây được biết đến với cái tên Ethereal, đã trở thành một công cụ quan trọng trong tay các quản trị viên mạng Linux. [Người dùng Ubuntu có thể tìm thấy công cụ này trong Ubuntu Software Center ở tab Internet]. Như một số công cụ khác, chúng ta phải khởi chạy Wireshark từ dòng lệnh bằng cách sử dụng sudo để nó hiển thị các thiết bị Ethernet có sẵn trong mạng. Khi đã khởi chạy, bạn sẽ thấy danh sách các giao diện có sẵn phía bên trái của màn hình chính. Trang hiển thị giao thức sẽ xuất hiện khi chúng ta chọn một trong các giao diện có sẵn hoặc giao diện ảo dùng để lựa chọn các gói dữ liệu từ tất cả các thiết bị Ethernet.


Wireshark

Wireshark cung cấp rất nhiều thông tin có giá trị về lưu lượng đã được capture, cùng với đó là các công cụ lọc và hiển thị dựa trên một số tiêu chuẩn như địa chỉ nguồn, đích, giao thức, hoặc trạng thái lỗi. Trang chủ của Wireshark có liên kết với các hướng dẫn bằng video, các trang tài liệu và dữ liệu mẫu để giúp bạn bắt đầu công việc chuẩn đoán mạng.

Kết luận

Linux có thể nói là một nền tảng tuyệt vời để nghiên cứu các kỹ thuật khắc phục sự cố mạng. Nó cung cấp rất nhiều các công cụ GUI và dòng lệnh giúp người dùng có thể phân tích những vấn đề liên quan đến lưu lượng.

Chủ Đề