Trong hệ thống Linux, sự cố mạng có thể xuất hiện ở mọi tầng, từ dây cáp vật lý, card mạng, cấu hình IP đến DNS và định tuyến, khiến dịch vụ và trải nghiệm người dùng bị gián đoạn. Trong bài viết này, mình sẽ giới thiệu 11 lệnh khắc phục sự cố mạng trong Linux thiết yếu, giúp bạn nhanh chóng xác định điểm nghẽn và đưa hệ thống trở lại trạng thái ổn định.
Những điểm chính
- Các trường hợp cần sử dụng lệnh: Biết được các tình huống thực tế cần dùng đến các lệnh khắc phục sự cố mạng, từ việc mất kết nối, mạng chậm đến lỗi phân giải tên miền.
- Cách sử dụng các lệnh khắc phục sự cố: Nắm vững công dụng và cách thực thi của 11 lệnh thiết yếu, từ các lệnh cơ bản (
ping,nslookup,traceroute) đến các công cụ chuyên sâu (netstat,ethtool,dig). - Khắc phục sự cố: Biết cách kiểm tra mạng theo trình tự khoa học từ giao diện vật lý, bảng định tuyến đến tường lửa giúp khoanh vùng và sửa lỗi chính xác nhất.
- Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề nâng cao như cách kết hợp các lệnh để phân biệt nguyên nhân gây nghẽn, cách giám sát theo thời gian và tích hợp vào các hệ thống cảnh báo tự động.
Khi nào cần sử dụng các lệnh khắc phục sự cố mạng?
Người dùng nên sử dụng các lệnh khắc phục sự cố mạng trên Linux khi gặp phải các tình trạng sau:
- Mất kết nối hoàn toàn: Khi máy tính của bạn không thể truy cập Internet hoặc không kết nối được với máy chủ từ xa.
- Mạng chậm: Khi bạn nhận thấy kết nối vẫn còn nhưng tốc độ tải rất chậm, độ trễ cao hoặc tín hiệu không ổn định.
- Lỗi phân giải tên miền: Khi bạn có thể truy cập website/server bằng địa chỉ IP nhưng lại thất bại khi nhập tên miền.
- Dịch vụ không phản hồi: Khi máy chủ của bạn vẫn hoạt động nhưng người dùng không thể truy cập vào các ứng dụng cụ thể như Website, Email hay SSH.
- Xung đột mạng nội bộ: Khi có thông báo trùng lặp địa chỉ IP hoặc kết nối trong mạng LAN bị gián đoạn bất thường.
- Nghi ngờ lỗi vật lý: Khi bạn cần xác định xem dây cáp mạng có bị đứt, lỏng hoặc Card mạng (NIC) có đang bị lỗi phần cứng hay không.
- Sai lệch định tuyến: Khi gói tin đi sai đường hoặc không thể tìm thấy đường đi đến đích.

Cách sử dụng lệnh khắc phục sự cố mạng trong Linux
1. Lệnh ping
ping là công cụ chẩn đoán cơ bản hoạt động dựa trên giao thức ICMP, gửi các gói tin “Echo Request” đến máy đích và đo thời gian chờ gói tin “Echo Reply” trả về.
Công dụng chính:
- Xác định tính khả dụng: Kiểm tra xem máy chủ đích có đang hoạt động và phản hồi hay không.
- Đo lường chất lượng mạng: Thông số
time= (latency)cho biết độ trễ mạng. Nếu chỉ số này cao hoặc dao động mạnh có nghĩa là mạng đang bị nghẽn. - Phát hiện mất gói tin: Tỷ lệ packet loss cho biết độ ổn định của đường truyền và nguyên nhân gây mất gói tin thường do nhiễu tín hiệu hoặc thiết bị mạng quá tải.
Lệnh thực hiện:
ping google.com
ping 8.8.8.8
2. Lệnh nslookup
Khi bạn truy cập được server bằng IP nhưng thất bại khi dùng tên miền, vấn đề có thể nằm ở DNS. nslookup sẽ giúp bạn kiểm tra quá trình này.
Vai trò chính:
- Kiểm tra DNS Server: Xác định xem DNS Server mặc định của máy bạn có đang hoạt động hay không.
- Phân giải xuôi (Forward Lookup): Tìm địa chỉ IP tương ứng với một tên miền.
- Phân giải Ngược (Reverse Lookup): Tìm tên miền gắn liền với một địa chỉ IP cụ thể.
Lệnh thực hiện:
nslookup facebook.com
3. Lệnh traceroute
Lệnh traceroute cho biết gói tin bị chặn ở đâu bằng cách liệt kê từng trạm dừng (hop) mà gói tin đi qua để đến đích.
Công dụng chính:
- Khoanh vùng sự cố: Giúp xác định lỗi nằm trong mạng nội bộ (LAN), nhà cung cấp dịch vụ (ISP) hay tại máy chủ đích.
- Phát hiện điểm nghẽn: Nhìn vào thời gian phản hồi tại từng hop, bạn có thể biết router nào đang xử lý chậm.
- Kiểm tra định tuyến: Xác nhận xem gói tin có đi đúng lộ trình mong muốn hay không.
Cài đặt:
- Đối với Ubuntu/Debian:
sudo apt-get install traceroute- Đối với CentOS/RHEL:
yum install tracerouteLệnh thực hiện:
traceroute www.google.com
4. Lệnh host
host là một tiện ích nhỏ gọn, cung cấp thông tin DNS súc tích hơn nslookup hay dig và thường được dùng trong các script tự động hóa hoặc khi cần kiểm tra nhanh.
Công dụng chính:
- Tra cứu nhanh: Trả về địa chỉ IPv4 (bản ghi A) và IPv6 (bản ghi AAAA) của tên miền.
- Kiểm tra bản ghi ngược: Xác minh tính hợp lệ của IP máy chủ mail hoặc web server.
Lệnh thực hiện:
host google.com
host 31.13.78.35
5. Lệnh netstat
netstat cho phép bạn nhìn thấy mọi kết nối ra/vào và các cổng đang mở.
Công dụng chính:
- Giám sát kết nối: Xem danh sách các kết nối TCP/UDP đang được thiết lập (ESTABLISHED), đang chờ (TIME_WAIT),…
- Kiểm tra cổng dịch vụ: Xác định xem Web server (port 80), SSH (port 22) hay Database có đang lắng nghe (LISTENING) hay không.
- Bảng định tuyến: Xem cách kernel định tuyến các gói tin.
Lệnh thực hiện:
netstat
netstat -rBạn có thể sử dụng netstat -tuln để liệt kê nhanh toàn bộ các cổng TCP/UDP đang mở dưới dạng số.

6. Lệnh arp
Trong mạng nội bộ (LAN), các thiết bị giao tiếp với nhau bằng địa chỉ MAC (Lớp 2), không phải IP (Lớp 3). Khi đó, giao thức ARP sẽ giúp ánh xạ giữa hai loại địa chỉ này.
Công dụng chính:
- Kiểm tra kết nối LAN: Xác nhận xem máy tính có nhìn thấy các thiết bị khác trong mạng nội bộ không.
- Bảo mật mạng: Phát hiện tấn công ARP Spoofing hoặc xung đột IP.
Lệnh thực hiện:
arp
arp -e
7. Lệnh ifconfig
ifconfig là công cụ cấu hình và kiểm tra trạng thái các card mạng (NIC) phổ biến, mạnh mẽ.
Công dụng chính:
- Thông tin cấu hình: Hiển thị IP, Subnet Mask, Broadcast Address và địa chỉ MAC.
- Trạng thái hoạt động: Bật hoặc tắt giao diện mạng để reset kết nối.
- Thống kê lưu lượng: Theo dõi số lượng gói tin đã gửi/nhận và số lượng gói tin bị lỗi để chẩn đoán lỗi phần cứng hoặc driver.
Lệnh thực hiện:
ifconfig
8. Lệnh dig
dig là công cụ yêu thích của các quản trị viên hệ thống vì tính linh hoạt và lượng thông tin chi tiết mà lệnh này cung cấp trực tiếp từ máy chủ DNS.
Công dụng chính:
- Troubleshoot DNS nâng cao: Cho phép truy vấn cụ thể từng loại bản ghi như A, MX, TXT, CNAME.
- Kiểm tra đường đi của truy vấn: Hiển thị thời gian phản hồi của từng DNS server và cấu trúc cây phân giải tên miền.
Lệnh thực hiện:
dig A google.com
9. Lệnh route
Lệnh route quản lý bảng định tuyến IP của Kernel, quyết định gói tin sẽ đi ra cổng nào để đến được đích.
Công dụng chính:
- Kiểm tra Gateway mặc định: Xác định gói tin Internet đi qua router nào.
- Cấu hình định tuyến tĩnh: Thêm các tuyến đường thủ công để kết nối đến các mạng con cụ thể như mạng VPN hoặc mạng nội bộ riêng biệt.
Lệnh thực hiện:
route
sudo ip addr add 10.0.0.2/24 dev eth0 # Thêm tuyến đường mới
sudo route add -net 14.225.254.0/24 gw 10.0.0.1
10. Lệnh ethtool
Khi nghi ngờ lỗi nằm ở lớp vật lý như dây cáp hỏng, cổng switch lỗi,… ethtool là công cụ giúp bạn giao tiếp trực tiếp với driver của card mạng.
Công dụng chính:
- Kiểm tra liên kết vật lý: Mục Link
detected: yescho biết dây cáp đã cắm chặt và có tín hiệu. - Kiểm tra tốc độ: Xác định tốc độ đàm phán (Speed: 1000Mb/s hay 100Mb/s) và chế độ song công (Duplex Full/Half).
- Thống kê lỗi phần cứng: Đọc các chỉ số CRC Error để biết cáp mạng có bị nhiễu hay hỏng không.
Lệnh thực hiện:
ethtool eth0
11. Lệnh hostname
Hostname đóng vai trò quan trọng trong việc định danh thiết bị trên mạng, trong logs hệ thống và cấu hình mail server.
Công dụng chính:
- Xác định danh tính: Hiển thị tên máy hiện tại (FQDN).
- Cấu hình hệ thống: Đổi tên máy để phù hợp với quy hoạch mạng hoặc xử lý lỗi khi hostname không phân giải được về IP 127.0.0.1.
Lệnh thực hiện:
hostname
hostnamectl set-hostname mypc
Các bước kiểm tra và khắc phục sự cố mạng trong Linux nhanh chóng
Để xử lý các vấn đề mất kết nối hoặc mạng không ổn định trên hệ điều hành Linux, người quản trị hệ thống cần thực hiện quy trình kiểm tra từng bước để khoanh vùng lỗi. Dưới đây là các bước chẩn đoán và khắc phục cụ thể:
Kiểm tra trạng thái giao diện mạng
Bước đầu tiên là xác định xem phần cứng hoặc giao diện mạng ảo có đang hoạt động hay không. Bạn hãy sử dụng lệnh ip link show, ip a hoặc ifconfig -a để liệt kê các giao diện.
Trong kết quả lệnh, bạn cần chú ý trạng thái của thiết bị (ví dụ: eth0 hoặc wlan0):
- Nếu trạng thái hiển thị là UP, giao diện đang hoạt động.
- Nếu là DOWN, bạn cần kích hoạt lại bằng lệnh
sudo ifup <tên_giao_diện>hoặc khởi động lại vớiifdown/ifup.
Kiểm tra kết nối địa chỉ IP
Sau khi xác nhận interface đã hoạt động, bạn cần kiểm tra khả năng truyền gói tin. Hệ thống cần phải có một địa chỉ IP hợp lệ để tham gia vào mạng.
- Kiểm tra IP: Bạn hãy chạy lệnh
ip addr showđể xem máy đã nhận được địa chỉ IP (IPv4/IPv6) chưa. - Kiểm tra kết nối LAN: Người dùng có thể thử lệnh
ping [địa_chỉ_gateway]để xác nhận kết nối tới router. - Kiểm tra kết nối Internet: Bạn hãy thử lệnh
ping 8.8.8.8(DNS của Google) để kiểm tra xem máy có thể kết nối ra ngoài Internet hay không.

Kiểm tra tuyến đường và bảng định tuyến
Dữ liệu có thể không biết đi đường nào nếu bảng định tuyến bị cấu hình sai. Bạn chạy lệnh sau để đảm bảo gateway mặc định đã được cấu hình đúng:
ip route Hoặc:
route -nBảng định tuyến phải có dòng default via [địa_chỉ_gateway]. Nếu thiếu dòng này, máy tính sẽ không thể truy cập Internet.
Kiểm tra phân giải tên miền
Nếu bạn có thể ping được IP (ví dụ: 8.8.8.8) nhưng không vào được trang web bằng tên miền (ví dụ: google.com), thì sự cố nằm ở máy chủ DNS.
Bạn hãy thử lệnh nslookup google.com hoặc dig google.com. Sau đó, bạn kiểm tra và cập nhật file cấu hình /etc/resolv.conf để đảm bảo máy chủ DNS (nameserver) được khai báo đúng.

Kiểm tra tường lửa
Đôi khi các quy tắc tường lửa có thể đang chặn các cổng hoặc giao thức kết nối quan trọng. Do đó bạn cần kiểm tra trạng thái các quy tắc chặn/cho phép.
- Với iptables: Sử dụng lệnh
sudo iptables -L. - Với ufw (trên Ubuntu/Debian): Sử dụng lệnh
sudo ufw status. - Với firewalld (trên CentOS/RHEL): Sử dụng lệnh
sudo firewall-cmd --list-all.
Kiểm tra trạng thái dịch vụ mạng
Nhiều bản phân phối Linux hiện đại sử dụng NetworkManager để quản lý kết nối. Dịch vụ quản lý mạng cần phải ở trạng thái hoạt động ổn định. Bạn kiểm tra bằng lệnh:
systemctl status NetworkManagerTrạng thái hiển thị phải là active (running). Nếu dịch vụ bị treo, bạn hãy dùng lệnh sudo systemctl restart NetworkManager để khởi động lại.
Kiểm tra chi tiết kết nối
Để xem chi tiết các cổng đang mở hoặc các kết nối ngầm, bạn chạy lệnh dưới đây để liệt kê các cổng đang lắng nghe và tiến trình liên quan:
ss -tulpnHoặc:
netstat -tulpnCác giải pháp xử lý nếu sự cố vẫn tiếp diễn
Nếu các bước kiểm tra trên không giải quyết được vấn đề, bạn cần can thiệp sâu hơn vào các tệp tin cấu hình hệ thống.
- Trên hệ điều hành RHEL/CentOS: Kiểm tra các tệp tin cấu hình card mạng tại thư mục /etc/sysconfig/network-scripts/.
- Trên hệ điều hành Debian/Ubuntu: Kiểm tra cấu hình tại tệp /etc/network/interfaces hoặc các tệp YAML trong thư mục /etc/netplan/.
- Sử dụng công cụ theo dõi thời gian thực: Lệnh
nmcli device monitorgiúp bạn theo dõi các thay đổi của thiết bị mạng ngay khi chúng xảy ra.

Câu hỏi thường gặp
Kết hợp các lệnh ping, traceroute, mtr và netstat như thế nào để phân biệt nghẽn mạng do ISP, do firewall hay do ứng dụng?
Ping/mtr giúp đo độ trễ và mất gói theo từng hop, nếu vấn đề nghẽn xuất hiện từ hop thuộc ISP thì nhiều khả năng vấn đề nằm ngoài hạ tầng của bạn. traceroute hỗ trợ xác định đoạn mạng cụ thể trong khi netstat/ss cho thấy số lượng kết nối và trạng thái socket, từ đó giúp bạn phân biệt được ứng dụng bị quá tải, bị firewall chặn hay thực sự là lỗi đường truyền.
Làm sao giám sát và log lại kết quả các lệnh netstat, route, hostname theo thời gian để phân tích xu hướng sự cố mạng lặp lại?
Bạn có thể chạy các lệnh này định kỳ bằng cron hoặc systemd timer, ghi kết quả vào file log kèm timestamp và xoay vòng log bằng logrotate. Với hệ thống lớn, bạn nên tích hợp vào stack giám sát như Prometheus, ELK hoặc Zabbix để dễ dàng vẽ biểu đồ số kết nối, thay đổi route và thống kê theo thời gian.
Các lệnh trong bài có thể tích hợp vào script hoặc công cụ giám sát tự động như thế nào để cảnh báo sớm sự cố mạng?
Bạn có thể viết shell script chạy ping, dig, traceroute, ethtool, sau đó parse kết quả và trả mã thoát phù hợp để Zabbix/Nagios hiểu đó là trạng thái OK/WARNING/CRITICAL. Với Prometheus, bạn có thể dùng exporter hoặc script xuất số liệu dạng /metrics, ví dụ latency trung bình hay số kết nối ESTABLISHED, để thiết lập rule cảnh báo khi vượt ngưỡng.
Linux cung cấp cho người dùng một hệ thống công cụ toàn diện để kiểm tra và xử lý sự cố mạng một cách hiệu quả. Việc nắm vững các lệnh từ kiểm tra kết nối cơ bản như ping, phân tích đường đi với traceroute cho đến thao tác sâu ở tầng phần cứng với ethtool giúp quá trình tìm kiếm nguyên nhân và khắc phục lỗi diễn ra nhanh chóng, góp phần duy trì tính ổn định cho hệ thống.




