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

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Cách hoạt động của lệnh nc trong Linux

Hưng Nguyễn

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

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

Đánh giá

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

Lệnh nc (Netcat) là một công cụ dòng lệnh mạnh mẽ giúp kết nối, kiểm tra và truyền dữ liệu qua giao thức TCP/UDP trong môi trường Linux. Với tính linh hoạt cao, lệnh nc thường được dùng để tạo máy chủ tạm thời, quét cổng, kiểm tra kết nối, thậm chí gửi nhận file giữa các hệ thống. Bài viết sẽ giới thiệu khái niệm, cú pháp cơ bản, cách cài đặt Netcat và nhiều ví dụ thực tiễn để bạn dễ hình dung cách ứng dụng nc trong công việc hàng ngày. Cuối cùng, bạn cũng sẽ nắm được những lưu ý quan trọng khi sử dụng để đảm bảo an toàn hệ thống.

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

  • Lệnh nc trong Linux là gì?: Giới thiệu tổng quan về Netcat và vai trò của lệnh nc trong hệ thống Linux.
  • Cú pháp của lệnh nc: Trình bày cấu trúc cú pháp cơ bản và cách sử dụng các tham số phổ biến.
  • Cài đặt Netcat (lệnh nc) trong Linux: Hướng dẫn cách cài đặt Netcat trên các bản phân phối Linux khác nhau.
  • 5 ví dụ thực tế, ứng dụng lệnh nc trong Linux: Cung cấp các ví dụ minh họa giúp hiểu rõ cách áp dụng nc vào thực tiễn.
  • Một số lưu ý khi sử dụng lệnh nc trong Linux: Nêu các lưu ý quan trọng về bảo mật và quyền truy cập khi sử dụng lệnh nc.
  • Vietnix – Giải pháp lưu trữ hiệu suất cao cho website của bạn: Giới thiệu dịch vụ lưu trữ web tốc độ cao và hỗ trợ chuyên nghiệp của Vietnix.
  • FAQ: Giải đáp các câu hỏi thường gặp liên quan đến lệnh nc trong Linux.

Lệnh nc trong Linux là gì?

Lệnh nc (Netcat) trong Linux là một công cụ dòng lệnh cho phép gửi và nhận dữ liệu qua kết nối mạng sử dụng giao thức TCP hoặc UDP. Đây là công cụ được sử dụng phổ biến bởi các quản trị viên hệ thống và mạng nhờ khả năng mô phỏng kết nối, kiểm tra dịch vụ, truyền dữ liệu và khắc phục sự cố.

Lệnh nc (Netcat) trong Linux là một công cụ dòng lệnh cho phép gửi và nhận dữ liệu qua kết nối mạng sử dụng giao thức TCP hoặc UDP
Lệnh nc (Netcat) trong Linux cho phép gửi và nhận dữ liệu qua kết nối mạng sử dụng giao thức TCP hoặc UDP

Một số chức năng phổ biến của lệnh nc

  • Gửi và nhận dữ liệu qua TCP/UDP
  • Tạo máy chủ hoặc máy khách TCP/UDP đơn giản
  • Chuyển tập tin giữa hai hệ thống
  • Kiểm tra cổng và dịch vụ đang mở
  • Thử nghiệm lập trình socket
  • Thiết lập kết nối shell từ xa (khi kết hợp với bash)

Biến thể của nc và tính linh hoạt

Tùy vào hệ điều hành, nc có thể là netcat, ncat (từ bộ công cụ Nmap), hoặc openbsd-netcat với cú pháp và tính năng hơi khác nhau. Tuy nhiên, chúng đều hỗ trợ các thao tác mạng cơ bản và có thể mở rộng để phục vụ nhiều mục đích như:

  • Proxy TCP đơn giản
  • Máy chủ HTTP viết bằng shell-script
  • Kiểm tra trình nền mạng
  • Làm trung gian SOCKS hoặc HTTP cho SSH

iconLưu ý

Trong Linux, tùy chọn -l cho phép nc hoạt động như một máy chủ đang lắng nghe kết nối đến tại cổng được chỉ định (TCP hoặc UDP). Khi dùng -l, bạn không thể kết hợp với một số tùy chọn khác như -p, -s hoặc -z, và mọi thiết lập thời gian chờ (-w) cũng sẽ bị bỏ qua.

Cú pháp của lệnh nc

Cú pháp cơ bản

nc [tùy chọn] [địa chỉ IP hoặc hostname] [cổng]

Trong đó:

  • nc: là tên lệnh Netcat
  • [tùy chọn]: các tùy chọn như -l (lắng nghe), -u (sử dụng UDP), -v (hiển thị thông tin chi tiết), -z (chỉ quét cổng, không gửi dữ liệu), v.v.
  • [địa chỉ IP hoặc hostname]: địa chỉ IP máy chủ (hoặc giao diện khi lắng nghe)
  • [cổng]: cổng TCP/UDP để kết nối hoặc lắng nghe

Tùy chọn phổ biến của lệnh nc

Tùy chọnMô tả
-lLắng nghe kết nối đến (chế độ server)
-pChỉ định số cổng cụ thể khi lắng nghe hoặc kết nối
-uSử dụng giao thức UDP thay vì TCP
-vHiển thị thông tin chi tiết (verbose mode)
-vvHiển thị thông tin chi tiết hơn nữa
-zChế độ quét cổng, không gửi dữ liệu (zero I/O mode)
-nBỏ qua phân giải DNS, dùng địa chỉ IP thuần túy
-o <file>Ghi log dữ liệu nhận/ghi vào file
-e <cmd>Thực thi lệnh sau khi kết nối (nguy hiểm – mở shell)
-c <cmd>Giống -e, nhưng thường dùng trong shell script
-w <giây>Đặt thời gian chờ (timeout) cho kết nối
-q <giây>Thoát sau <giây> giây sau khi EOF
-kGiữ cổng mở cho nhiều kết nối đến (dùng với -l)
-hHiển thị trợ giúp sử dụng lệnh
Bảng tùy chọn phổ biến của lệnh nc

iconLưu ý

Tránh sử dụng -e-c trên hệ thống thực tế nếu không cần thiết, vì dễ bị lợi dụng để tạo reverse shell hoặc truy cập trái phép.

Cài đặt Netcat (lệnh nc) trong Linux

Trên nhiều bản phân phối Linux, nc thường được cài sẵn. Bạn có thể kiểm tra điều này bằng lệnh which nc. Nếu dòng lệnh trên trả về đường dẫn như /usr/bin/nc, tức là Netcat đã được cài.

Cài đặt Netcat (lệnh nc) trong Linux
Cài đặt Netcat (lệnh nc) trong Linux

Nếu không có kết quả, bạn có thể cài như sau:

sudo apt update
sudo apt install -y netcat
sudo yum update -y
sudo yum install -y nc

iconLưu ý

Trên hệ thống họ Red Hat, nc thường là biến thể nmap-ncat, có cách dùng tương tự Netcat gốc.

Tạo máy chủ TCP đơn giản

Bạn muốn tạo một máy chủ đơn giản để nhận tin nhắn từ client, phục vụ cho kiểm tra kết nối mạng hoặc demo giao tiếp giữa hai thiết bị.

Trên máy chủ:

nc -l -p 1234
  • -l: Chế độ lắng nghe
  • -p 1234: Lắng nghe tại cổng 1234 (bạn có thể đổi cổng khác nếu muốn)

Trên máy khách (máy khác hoặc terminal khác):

nc <IP_máy_chủ> 1234

Sau khi kết nối thành công, bạn có thể nhập văn bản ở một đầu và sẽ thấy xuất hiện tại đầu kia – giống như trò chuyện đơn giản giữa hai thiết bị.

Gửi và nhận file qua TCP

Bạn muốn truyền file từ một máy này sang máy khác thông qua mạng nội bộ hoặc giữa hai phiên SSH.

Trên máy chủ: Mở cổng 1234 và ghi dữ liệu nhận vào file_nhan.txt

nc -l -p 1234 > file_nhan.txt

Trên máy khách : Gửi nội dung của file_gui.txt qua kết nối TCP

nc <IP_máy_nhận> 1234 < file_gui.txt

iconLưu ý

Thực hiện lệnh ở máy nhận trước rồi mới gửi, tránh lỗi Connection refused.

Tạo máy chủ UDP

Kiểm tra truyền tải qua UDP – thường dùng trong các ứng dụng VoIP, video streaming.

Trên máy chủ:

nc -u -l -p 9999

# -u: Sử dụng giao thức UDP

Trên máy khách: Gửi chuỗi “Hello UDP” tới máy chủ qua giao thức UDP

echo "Hello UDP" | nc -u <IP_máy_chủ> 9999

iconLưu ý

UDP không đảm bảo kết nối như TCP, nên bạn sẽ không thấy phản hồi nếu không có chương trình xử lý đầu vào ở phía nhận.

Quét cổng bằng Netcat

Bạn muốn kiểm tra xem máy chủ có đang mở cổng nào không – ví dụ kiểm tra cổng SSH, HTTP hoặc cổng do bạn định cấu hình.

nc -zv <IP_máy_chủ> 20-80
  • -z: Không gửi dữ liệu (chỉ kiểm tra)
  • -v: Hiển thị chi tiết
  • 20-80: Quét dải cổng từ 20 đến 80

Ví dụ:

nc -zv 192.168.1.10 22

Nếu cổng mở, bạn sẽ thấy thông báo “succeeded”. Ngược lại sẽ là “connection refused” hoặc “timed out”.

Hiển thị thông tin chi tiết khi lắng nghe

Bạn muốn theo dõi đầy đủ thông tin kết nối, giúp dễ debug hoặc trình bày rõ ràng hơn.

nc -lvp 1234
  • -v: Hiển thị log chi tiết
  • -p 1234: Lắng nghe tại cổng 1234

Lệnh này giúp bạn thấy khi nào client kết nối vào, từ đâu, và bạn có thể tương tác hai chiều như trong ví dụ đầu tiên.

Một số lưu ý khi sử dụng lệnh nc trong Linux

  • Không sử dụng trên môi trường sản xuất nếu không có bảo mật bổ sung.
  • Cẩn thận khi mở cổng, nên đóng cổng ngay sau khi sử dụng.
  • Tránh truyền dữ liệu quan trọng qua nc vì không có mã hóa.
  • Một số thao tác cần quyền root, nhất là khi dùng cổng <1024.
  • Kiểm soát việc sử dụng nội bộ, tránh bị lạm dụng tạo shell trái phép.

Vietnix – Giải pháp lưu trữ hiệu suất cao cho website của bạn

Vietnix là đơn vị cung cấp dịch vụ hostingVPS được nhiều người tin dùng nhờ tốc độ truy xuất nhanh, hiệu suất ổn định và tính bảo mật cao. Với hệ thống máy chủ hiện đại đặt tại các datacenter đạt chuẩn Tier III cùng đội ngũ kỹ thuật chuyên môn cao luôn túc trực 24/7, Vietnix đảm bảo website của bạn luôn hoạt động mượt mà, an toàn và sẵn sàng phục vụ người dùng bất cứ lúc nào.

Dù bạn đang vận hành website doanh nghiệp, blog cá nhân hay hệ thống thương mại điện tử, dịch vụ lưu trữ tại Vietnix đều được tối ưu để đáp ứng hiệu quả mọi nhu cầu sử dụng thực tế.

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

Sự khác nhau giữa netcatnc là gì?

nc là tên lệnh; netcat là tên công cụ. Một số bản phân phối dùng ncat (nmap), netcat-openbsd hoặc netcat-traditional.

Có thể dùng nc để kiểm tra dịch vụ HTTP hoặc SSH hoạt động không?

Có. Dùng nc -zv <IP> 80 (HTTP) hoặc nc -zv <IP> 22 (SSH) để xác minh trạng thái.

nc.exe là gì và có dùng được trên Windows không?

nc.exe là bản Netcat cho Windows. Có thể dùng để gửi/nhận dữ liệu hoặc kiểm tra cổng như trên Linux.

nc có sẵn trên Ubuntu không?

Không phải lúc nào cũng cài sẵn. Cài bằng: sudo apt install netcat hoặc netcat-openbsd.

Khi nào nên dùng netcat-openbsd thay vì netcat-traditional trên Ubuntu?

netcat-openbsd hỗ trợ nhiều tính năng hơn như -k (giữ phiên lắng nghe), trong khi netcat-traditional đơn giản và nhẹ hơn.

Netcat có an toàn để sử dụng trong môi trường production không?

Không. nc không mã hóa dữ liệu, dễ bị sniff. Chỉ nên dùng trong môi trường kiểm thử hoặc mạng nội bộ.

Có thể dùng nc để tạo reverse shell không?

Có. Ví dụ trên máy tấn công: nc -l -p 4444, trên máy mục tiêu: nc <IP> 4444 -e /bin/bash. Cần thận trọng với bảo mật.

Làm sao kết nối liên tục nhiều client tới một listener nc?

Dùng -k trong bản netcat-openbsd: nc -lk -p 1234. Mỗi kết nối sẽ được xử lý tuần tự.

Lời kết

Việc nắm vững cách sử dụng lệnh nc trong Linux sẽ giúp bạn chủ động hơn trong việc kiểm tra kết nối, truyền dữ liệu và xử lý sự cố mạng nhanh chóng. Nếu bạn có bất kỳ câu hỏi nào liên quan đến nc hoặc các công cụ mạng khác trong Linux, đừng ngần ngại để lại bình luận. Bạn cũng có thể tham khảo thêm các hướng dẫn chuyên sâu khác trên blog. Và đừng quên theo dõi Vietnix để cập nhật kiến thức mới nhất về quản trị hệ thống và bảo mật mạng.

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 sinh nhật
Nhanh tay, số lượng có hạn!
17/05/2025 - 22/06/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