Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sử dụng lệnh netcat (nc) trong Linux

    Nguyễn Hưng

    Ngày đăng:

    02/04/2026

    Cập nhật lần cuối:

    02/04/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    02/04/2026

    Cập nhật lần cuối:

    02/04/2026

    Mục lục

    netcat là một tiện ích dòng lệnh được sử dụng để đọc và ghi dữ liệu qua kết nối mạng bằng giao thức TCP hoặc UDP, hoạt động được như cả client lẫn server. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu chi tiết các tính năng, cú pháp lệnh và cách sử dụng lệnh netcat chi tiết qua các ví dụ cụ thể.

    Những điểm chính

    • Khái niệm: Hiểu rõ bản chất netcat là công cụ đọc và ghi dữ liệu qua TCP/UDP, đóng vai trò quan trọng trong việc truyền tải dữ liệu thô giữa các máy chủ.
    • Cú pháp và tùy chọn: Nắm vững cấu trúc lệnh ở cả chế độ Client và Server cùng các tham số như -l, -z, -v để tùy biến các tác vụ mạng linh hoạt.
    • Trường hợp sử dụng: Nhận diện các tình huống thực tế cần dùng netcat để phân lập lỗi kết nối, kiểm tra giao thức và xử lý sự cố trên các môi trường tối giản.
    • Kiểm tra kết nối nhanh: Làm chủ kỹ thuật quét cổng tức thì giúp bạn xác định trạng thái mở, đóng hoặc hết thời gian chờ của một dịch vụ mạng chỉ với một dòng lệnh.
    • Ví dụ thực tế: Thành thạo các kỹ năng kiểm tra SSH, dịch vụ Web, quét dải cổng và thử nghiệm tường lửa thông qua các bước chỉ dẫn chi tiết.
    • So sánh công cụ: Phân biệt rõ sự khác biệt giữa netcat với Telnet, Nmap và cURL để lựa chọn giải pháp tối ưu nhất cho từng nhiệm vụ quản trị.
    • Lưu ý khi vận hành: Biết cách sử dụng netcat thay thế cho Telnet và nắm vững các quy tắc an toàn để tránh rủi ro bảo mật cho hệ thống.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lệnh netcat.

    netcat là gì?

    Netcat (nc) là công cụ dòng lệnh đa năng trong Linux, cho phép đọc/ghi dữ liệu qua TCP/UDP và được ví như “dao đa năng” trong quản trị mạng. Công cụ này hỗ trợ kiểm tra kết nối, truyền dữ liệu và phục vụ hiệu quả cho việc debug hệ thống, kiểm thử bảo mật.

    Các tính năng và công dụng chính của Netcat:

    • Kết nối TCP/UDP: Thiết lập kết nối đến bất kỳ port nào để kiểm tra trạng thái dịch vụ.
    • Quét cổng (Port Scanning): Phát hiện các port đang mở trên máy mục tiêu.
    • Truyền file (File Transfer): Gửi/nhận dữ liệu nhanh giữa hai máy qua mạng.
    • Remote shell (Backdoor/Reverse Shell): Tạo kết nối điều khiển từ xa, thường dùng trong pentest.
    • Proxy TCP / Port Forwarding: Chuyển tiếp dữ liệu hoặc làm proxy trung gian.
    netcat là lệnh được thiết kế để đọc và ghi dữ liệu trên các kết nối mạng thông qua bộ giao thức TCP và UDP
    netcat là lệnh được thiết kế để đọc và ghi dữ liệu trên các kết nối mạng thông qua bộ giao thức TCP và UDP

    Cú pháp và các tùy chọn quan trọng của netcat

    netcat vận hành dựa trên hai chế độ hoạt động chính tương ứng với vai trò Client hoặc Server:

    • Chế độ kết nối (Client Mode): Bạn chạy lệnh sau nếu muốn sử dụng netcat để kiểm tra hoặc gửi dữ liệu tới một host đích:
    nc [options] host port
    • Chế độ lắng nghe (Listen/Server Mode): Bạn thực hiện lệnh sau nếu muốn sử dụng netcat để chuyển hệ thống hiện tại thành một trạm tiếp nhận dữ liệu:
    nc [options] -l port

    Dưới đây là bảng tổng hợp các tùy chọn mà người dùng thường xuyên sử dụng trong quá trình làm việc với netcat:

    Tùy chọnÝ nghĩa kỹ thuậtVí dụ minh họa
    -lListen: Chế độ lắng nghe để mở một cổng trên máy hiện hành.nc -l 9999
    -zZero-I/O: Chế độ quét cổng nhanh mà không gửi bất kỳ dữ liệu nào.nc -zv host 80
    -vVerbose: Yêu cầu hiển thị chi tiết các thông báo về trạng thái kết nối.nc -v host 22
    -uUDP: Chuyển sang sử dụng giao thức UDP thay vì TCP mặc định.nc -u host 53
    -nNo DNS: Bỏ qua quá trình phân giải tên miền để tăng tốc độ.nc -nv host 80
    -wTimeout: Thiết lập giới hạn thời gian chờ đợi cho một kết nối.nc -w 3 host 80

    Những trường hợp cần sử dụng netcat 

    Trong quản trị hệ thống và xử lý sự cố mạng, netcat thường được sử dụng khả năng giải quyết các vấn đề kỹ thuật sau:

    • Xác định và phân lập lỗi kết nối: netcat giúp xác định chính xác nguyên nhân dịch vụ không phản hồi là do cấu hình ứng dụng sai lệch hay do các quy tắc tường lửa đang ngăn chặn.
    • Kiểm tra trạng thái cổng: Bạn dùng lệnh netcat để thực hiện quét và xác nhận trạng thái đóng/mở của các cổng TCP/UDP trên máy chủ mục tiêu một cách nhanh chóng mà không cần cài đặt các công cụ đồ họa phức tạp.
    • Kiểm thử giao thức truyền tải: Bạn có thể sử dụng netcat để thực thi các bài kiểm tra gửi/nhận dữ liệu thô qua giao thức TCP hoặc UDP để đánh giá tính toàn vẹn của đường truyền mạng mà không làm thay đổi cấu hình hệ thống.
    • Xử lý sự cố trên môi trường tối giản: netcat giúp gỡ lỗi mạng hiệu quả trên các server rút gọn hoặc hệ thống nhúng vốn không được trang bị các bộ công cụ phân tích lớn hay giao diện người dùng.
    • Truyền tải dữ liệu và tạo kênh giao tiếp nhanh: netcat hỗ trợ chuyển file hoặc thiết lập các kết nối client-server tạm thời để kiểm tra khả năng tương tác giữa các nút mạng trong quy trình triển khai dịch vụ.
    Những trường hợp cần sử dụng netcat 
    Những trường hợp cần sử dụng netcat 

    Cách kiểm tra nhanh kết nối 

    Để kiểm tra trạng thái của một cổng dịch vụ trên máy chủ từ xa một cách tức thì, bạn hãy sử dụng câu lệnh sau:

    nc -zv 14.225.206.31 80

    Trong đó:

    • -z: Kích hoạt chế độ quét cổng, hệ thống sẽ không gửi dữ liệu mà chỉ kiểm tra kết nối.
    • -v: Chế độ hiển thị chi tiết giúp bạn theo dõi thông tin phản hồi từ máy chủ.
    Kiểm tra port có mở không
    Kiểm tra port có mở không

    Kết quả trả về sẽ giúp bạn xác định ngay lập tức trạng thái của cổng là: open (mở), refused (bị từ chối kết nối) hoặc timeout (hết thời gian chờ).

    1. Kiểm tra trạng thái hoạt động của SSH Server

    Khi bạn không thể SSH vào server và nghi ngờ tường lửa đang chặn cổng 22, hãy thực hiện lệnh sau để xác minh:

    nc -zv 14.225.206.31 22
    Kiểm tra SSH server
    Kiểm tra SSH server

    2. Kiểm tra Web server

    Để kiểm tra nhanh Web Server có đang phản hồi trên các cổng HTTP (80) và HTTPS (443) hay không, bạn lần lượt dùng các lệnh dưới đây:

    nc -zv domain.com 80
    nc -zv domain.com 443
    Kiểm tra nhanh các cổng dịch vụ Web
    Kiểm tra nhanh các cổng dịch vụ Web

    3. Mở cổng lắng nghe để thử nghiệm tường lửa

    Để kiểm tra xem một cổng cụ thể có cho phép dữ liệu đi qua hay không, bạn hãy thực hiện mở cổng lắng nghe trên server bằng lệnh như sau:

    nc -l 8080

    Sau đó, từ một máy tính khác, bạn thực hiện kết nối tới địa chỉ IP của server đó trên cổng tương ứng bằng lệnh dưới đây:

    nc 14.225.206.31 8080

    Sau khi kết nối thành công, bạn có thể gõ văn bản ở cả hai đầu để thực hiện việc truyền tin trực tiếp.

    Mở cổng lắng nghe để thử nghiệm tường lửa
    Mở cổng lắng nghe để thử nghiệm tường lửa

    4. Kiểm tra khả năng gửi dữ liệu thô

    Để kiểm tra cách ứng dụng xử lý dữ liệu đầu vào hoặc thực hiện các bài test đơn giản cho app custom, bạn hãy sử dụng lệnh:

    echo "HELLO" | nc 14.225.206.31 9000

    Lệnh trên sẽ gửi chuỗi văn bản HELLO từ máy bạn tới dịch vụ đang lắng nghe trên cổng 9000 của máy chủ 14.225.206.31 thông qua netcat. 

    Kiểm tra khả năng gửi dữ liệu thô
    Kiểm tra khả năng gửi dữ liệu thô

    5. Kiểm tra các dịch vụ chạy giao thức UDP

    Đối với các dịch vụ như DNS thường hoạt động trên UDP, bạn hãy thêm tùy chọn -u vào câu lệnh kiểm tra:

    nc -u -zv 8.8.8.8 53
    Kiểm tra các dịch vụ chạy giao thức UDP
    Kiểm tra các dịch vụ chạy giao thức UDP

    Khi đó, lệnh trên sẽ kiểm tra nhanh cổng DNS trên máy chủ DNS công cộng của Google có đang mở hay không.

    6. Quét nhanh một dải cổng

    Trong trường hợp bạn cần kiểm tra đồng thời nhiều cổng liên tiếp trên máy chủ, hãy sử dụng cú pháp sau:

    nc -zv 14.225.206.31 20-100
    Quét nhanh một dải cổng
    Quét nhanh một dải cổng

    Lệnh này sẽ quét nhanh các cổng từ 20 đến 100 trên host 14.225.206.31 để xem cổng nào đang mở hoặc bị chặn.

    So sánh netcat với các công cụ mạng khác

    Để hiểu rõ hơn về vai trò của netcat, bạn có thể tham khảo bảng so sánh dưới đây:

    Công cụMục đích chínhĐặc điểm nổi bật
    Netcat (nc)Kiểm tra kết nối và truyền tải dữ liệu thô.Linh hoạt, đa năng, hoạt động ở cả chế độ Client và Server.
    TelnetKết nối điều khiển từ xa.Thiếu tính năng hiện đại, không mã hóa và dần bị thay thế bởi nc hoặc SSH.
    NmapQuét mạng và kiểm tra bảo mật.Chuyên sâu cho việc dò tìm thiết bị và phân tích lỗ hổng trên diện rộng.
    cURLTương tác với các giao thức Web như HTTP/HTTPS.Chuyên biệt cho việc kiểm tra API và các phản hồi từ Web Server.

    Theo quan điểm của mình, Netcat là công cụ cực kỳ linh hoạt trong các tình huống cần kiểm tra nhanh kết nối hoặc debug mạng ở mức thấp. Tuy không chuyên sâu như Nmap hay tiện lợi như cURL với HTTP, nhưng nc lại rất “đa dụng”, đặc biệt hữu ích khi làm việc với server hoặc xử lý sự cố thực tế.

    Lưu ý khi sử dụng lệnh netcat

    Để tối ưu hóa quy trình vận hành và xử lý sự cố khi sử dụng lệnh netcat, bạn tham khảo các lưu ý bên dưới đây:

    • Phân lập vai trò giữa netcat và Nmap: Mặc dù cả hai đều có khả năng kiểm tra cổng, nhưng netcat được ưu tiên cho các tác vụ xác định nguyên nhân tức thì, đơn lẻ trên môi trường production nhờ tốc độ phản hồi nhanh và tính gọn nhẹ. Ngược lại, Nmap là giải pháp được sử dụng cho việc quét diện rộng và phân tích dấu vân tay hệ thống phức tạp hơn.
    • netcat là giải pháp thay thế cho Telnet: Trong các hệ thống hiện đại, Telnet thường bị loại bỏ vì lý do bảo mật và thiếu linh hoạt. Bạn có thể sử dụng netcat để kiểm tra các dịch vụ đặc thù như SMTP một cách chuyên nghiệp mà không cần cài đặt thêm gói bổ trợ. Ví dụ, để kiểm tra khả năng kết nối tới Mail Server trên chế độ quét nhanh với tham số -z để không gửi dữ liệu, bạn thực thi lệnh sau:
    nc\ -vz\ 14.225.206.31\ 25

    Trong đó:

    • -v (Verbose): Hiển thị chi tiết trạng thái kết nối.
    • -z (Zero-I/O): Chế độ quét, chỉ kiểm tra xem cổng có đang mở hay không mà không gửi bất kỳ dữ liệu nào.
    netcat là giải pháp thay thế cho Telnet
    netcat là giải pháp thay thế cho Telnet

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

    Tôi có thể sử dụng netcat trên hệ điều hành Windows không?

    Có, netcat hoàn toàn có thể hoạt động trên Windows. Hiện nay có các phiên bản được đóng gói riêng cho Windows như nc64.exe dành cho hệ điều hành 64-bit. Ngoài ra, dự án Nmap cũng cung cấp công cụ Ncat – một phiên bản cải tiến của netcat chạy ổn định trên cả Windows, Linux và macOS.

    Ncat và Nc (netcat) có điểm gì khác biệt?

    Mặc dù cùng mục đích sử dụng, nhưng Ncat là phiên bản hiện đại hơn được phát triển bởi đội ngũ Nmap. Ncat hỗ trợ các tính năng nâng cao mà bản nc gốc không có, chẳng hạn như hỗ trợ giao thức IPv6 và khả năng mã hóa kết nối bằng SSL/TLS để đảm bảo an toàn dữ liệu.

    Sử dụng netcat có tiềm ẩn rủi ro bảo mật nào không?

    Kẻ tấn công có thể lợi dụng netcat để tạo các cổng hậu (backdoor) hoặc thực hiện chuyển tiếp dữ liệu trái phép. Do đó, các quản trị viên hệ thống nên hạn chế quyền thực thi công cụ này và giám sát chặt chẽ các cổng đang lắng nghe trên máy chủ.

    Tại sao tôi gõ lệnh nhưng hệ thống báo lỗi “Connection refused”?

    Thông báo lỗi này xuất hiện khi netcat cố gắng kết nối tới một cổng nhưng cổng đó đang đóng hoặc dịch vụ tại đó không hoạt động. Để kiểm tra lại trạng thái của cổng mà không gây tải cho dịch vụ, bạn hãy thực hiện lệnh quét nhanh sau:
    nc -zv 127.0.0.1 80

    Tóm lại, netcat là một công cụ dòng lệnh gọn nhẹ, mạnh mẽ và có mức độ linh hoạt rất cao, được xem là kỹ năng nền tảng mà các Sysadmin, DevOps và Pentest chuyên nghiệp cần nắm vững. Do đó, việc sử dụng thuần thục lệnh nc sẽ giúp bạn chẩn đoán, xử lý và gỡ lỗi các sự cố mạng nhanh hơn đáng kể so với những phương pháp truyền thống.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh systemctl trong Linux để quản lý dịch vụ hệ thống chuyên nghiệp
    Cách dùng lệnh systemctl trong Linux để quản lý dịch vụ hệ thống chuyên nghiệp

    systemctl là công cụ dòng lệnh dùng để quản lý dịch vụ systemd trên Linux, cho phép start/stop/restart, bật/tắt autostart và kiểm tra trạng thái service. Trong bài viết này, mình sẽ giúp bạn hiểu rõ cơ chế hoạt động của systemd, sử dụng thành thạo lệnh systemctl và áp dụng hiệu quả vào các…

    02/04/2026

    Cách dùng lệnh tshark trên Linux để bắt và phân tích gói tin mạng bằng dòng lệnh
    Cách dùng lệnh tshark trên Linux để bắt và phân tích gói tin mạng bằng dòng lệnh

    Lệnh tshark Linux là phiên bản chạy trên dòng lệnh (CLI) của Wireshark, dùng để bắt và phân tích gói tin mạng trực tiếp trong terminal trên Linux và các hệ điều hành khác. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh tshark trên Linux để bắt và phân tích…

    02/04/2026

    Cách sử dụng lệnh traceroute Linux để theo dõi đường đi của gói tin mạng và xác định sự cố
    Cách sử dụng lệnh traceroute Linux để theo dõi đường đi của gói tin mạng và xác định sự cố

    traceroute là lệnh phân tích mạng quan trọng trên hệ điều hành Linux, được sử dụng để theo dõi lộ trình mà một gói tin IP di chuyển từ máy tính của bạn đến một máy chủ đích trên mạng. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh traceroute để…

    02/04/2026

    Hướng dẫn dùng lệnh host Linux để kiểm tra và truy vấn DNS nhanh chóng
    Hướng dẫn dùng lệnh host Linux để kiểm tra và truy vấn DNS nhanh chóng

    Lệnh host trong Linux là một tiện ích dòng lệnh dùng để truy vấn DNS, giúp bạn kiểm tra việc phân giải tên miền và tra cứu các bản ghi DNS một cách nhanh và đơn giản. Trong bài viết này, mình sẽ hướng dẫn chi tiết cách sử dụng lệnh host để kiểm tra…

    02/04/2026

    linux

    lenh

    text