Lệnh tftp trong linux với các ví dụ dễ hiểu

Lệnh tftp trong linux là một công cụ đơn giản để truyền file qua mạng, thường dùng để boot hệ thống hoặc cập nhật firmware. Nó hoạt động nhanh chóng nhưng không có tính năng bảo mật, nên chỉ nên sử dụng trong mạng nội bộ an toàn. Để sử dụng, bạn cần cài đặt và cấu hình máy chủ TFTP, sau đó dùng lệnh tftp để tải hoặc gửi file.

Lệnh tftp trong linux là gì?

Lệnh tftp in linux là một công cụ dòng lệnh đơn giản, cho phép bạn truyền tải tập tin đến và đi từ một máy chủ TFTP (Trivial File Transfer Protocol). Nó thường được sử dụng để cập nhật firmware cho các thiết bị mạng hoặc để khởi động hệ thống từ xa. Command tftp in linux rất hữu ích trong môi trường mạng nhỏ, nơi mà tính bảo mật không phải là ưu tiên hàng đầu. Tuy nhiên, bạn cần cẩn thận khi sử dụng nó vì TFTP không hỗ trợ mã hóa hoặc xác thực người dùng. Hãy nhớ rằng, việc cấu hình máy chủ TFTP đúng cách là rất quan trọng để đảm bảo an toàn cho hệ thống của bạn.

Tìm hiểu về giao thức TFTP

Giao thức TFTP (Trivial File Transfer Protocol) là giao thức đơn giản để truyền file nhẹ nhàng.

Khác với giao thức FTP phức tạp hơn, TFTP không có tính năng xác thực hoặc liệt kê thư mục.

TFTP hoạt động trên UDP port 69, giúp nó nhanh hơn nhưng kém tin cậy hơn TCP.

Hãy bắt đầu bằng cách kiểm tra xem TFTP client đã được cài đặt đúng cách trên hệ thống chưa:

which tftp

Bạn sẽ thấy kết quả tương tự như sau:

/usr/bin/tftp

Tiếp theo, hãy kiểm tra phiên bản của TFTP client:

tftp --version

Kết quả hiển thị sẽ như sau:

tftp-hpa version 5.2

TFTP client hoạt động ở chế độ tương tác. Để vào chế độ này, chỉ cần gõ:

tftp

Bạn sẽ thấy dấu nhắc tftp>, nơi bạn có thể nhập các lệnh khác nhau.

Để xem các lệnh có sẵn, hãy nhập:

help

Bạn sẽ thấy danh sách các lệnh như sau:

Commands may be abbreviated.  Commands are:

connect         connect to remote tftp
mode            set file transfer mode
put             send file
get             receive file
quit            exit tftp
verbose         toggle verbose mode
trace           toggle packet tracing
status          show current status
binary          set mode to octet
ascii           set mode to netascii
rexmt           set per-packet retransmission timeout
timeout         set total retransmission timeout
?               print help information

Hãy xem xét một số lệnh TFTP quan trọng nhất:

  1. connect - Thiết lập kết nối đến một TFTP server từ xa.
  2. get - Tải file từ server về máy cục bộ của bạn.
  3. put - Tải file từ máy cục bộ lên server.
  4. quit - Thoát khỏi TFTP client.
  5. binary - Đặt chế độ truyền thành binary (khuyến nghị cho hầu hết các file).
  6. ascii - Đặt chế độ truyền thành ASCII (cho các file văn bản).

Bạn có thể thoát khỏi TFTP client bằng cách gõ:

quit

Trong bước tiếp theo, chúng ta sẽ học cách chạy TFTP server và cấu hình nó đúng cách.

Cấu hình và Quản lý TFTP Server

Trong bước này, chúng ta sẽ tìm hiểu cách TFTP server được cấu hình và chạy trên hệ thống.

Script cài đặt đã cài đặt và cấu hình TFTP server cho chúng ta, nhưng hiểu rõ cách nó hoạt động rất quan trọng.

Đầu tiên, hãy kiểm tra xem TFTP server có đang chạy hay không bằng lệnh sau:

sudo service tftpd-hpa status

Bạn sẽ thấy thông tin cho biết service đang active và running.

Cấu hình của TFTP server được lưu trữ trong file /etc/default/tftpd-hpa. Hãy xem nội dung của file này:

cat /etc/default/tftpd-hpa

Bạn sẽ thấy nội dung tương tự như sau:

TFTP_USERNAME="labex"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Dưới đây là ý nghĩa của từng thiết lập:

  • TFTP_USERNAME: Tài khoản người dùng mà TFTP server chạy dưới quyền.
  • TFTP_DIRECTORY: Thư mục gốc nơi TFTP server phục vụ và lưu trữ file.
  • TFTP_ADDRESS: Địa chỉ IP và port mà server lắng nghe (0.0.0.0 nghĩa là tất cả các interface).
  • TFTP_OPTIONS: Các tùy chọn bổ sung cho server ("--secure" giới hạn các hoạt động trong thư mục TFTP).

Bây giờ, hãy khám phá thư mục TFTP:

ls -la /tftpboot

Ban đầu, thư mục này có thể trống hoặc chỉ chứa các file hệ thống. Hãy tạo một file thử nghiệm trong thư mục này:

echo "This is a file in the TFTP server directory." > /tmp/server-file.txt
sudo cp /tmp/server-file.txt /tftpboot/

Hãy kiểm tra xem file đã được tạo thành công hay chưa:

ls -la /tftpboot

Bạn sẽ thấy server-file.txt trong thư mục.

Để đảm bảo TFTP server có thể đọc và ghi file trong thư mục này, ta cần kiểm tra quyền:

ls -ld /tftpboot

Quyền nên được đặt để cho phép tất cả người dùng đọc và ghi (777), như chúng ta đã cấu hình trong script cài đặt.

Nếu bạn cần restart TFTP server, bạn có thể sử dụng lệnh sau:

sudo service tftpd-hpa restart

Bây giờ chúng ta đã có một TFTP server đang chạy với một file thử nghiệm sẵn sàng để tải xuống. Bước tiếp theo, chúng ta sẽ sử dụng TFTP client để truyền file đến và đi từ server.

Chuyển tập tin bằng TFTP Client

Chúng ta đã có TFTP server đang chạy với tập tin thử nghiệm, hãy học cách chuyển tập tin bằng TFTP client.

Chúng ta sẽ thực hành tải tập tin từ server và tải tập tin lên server một cách chi tiết.

Lưu ý quan trọng: Khi dùng TFTP để tải lên, client tìm tập tin trong thư mục làm việc hiện tại.

Hãy chắc chắn bạn đang ở đúng thư mục (~/project) trước khi thử tải tập tin lên server.

Tải tập tin từ TFTP Server

Đầu tiên, hãy thử tải tập tin server-file.txt mà chúng ta đã tạo ở bước trước đó về máy.

Chúng ta sẽ sử dụng TFTP client ở chế độ tương tác để thực hiện việc này một cách dễ dàng:

cd ~/project
tftp localhost

Bạn sẽ thấy dấu nhắc tftp> quen thuộc, cho biết TFTP client đã sẵn sàng hoạt động.

Hãy đặt chế độ truyền thành binary, phù hợp với mọi loại tập tin mà bạn muốn truyền tải:

binary

Bây giờ, hãy tải tập tin từ server về máy của bạn một cách nhanh chóng:

get server-file.txt downloaded-file.txt

Lệnh này tải server-file.txt từ server và lưu thành downloaded-file.txt trong thư mục hiện tại.

Sau khi quá trình truyền tập tin hoàn tất, hãy thoát khỏi TFTP client để tiếp tục:

quit

Hãy kiểm tra xem tập tin đã được tải xuống chính xác hay chưa bằng lệnh sau:

cat downloaded-file.txt

Bạn sẽ thấy nội dung sau:

This is a file in the TFTP server directory.

Tải tập tin lên TFTP Server

Tiếp theo, chúng ta sẽ thử tải một tập tin lên TFTP server để kiểm tra chức năng này.

Chúng ta đã có tập tin sample.txt trong thư mục project, được tạo bởi script thiết lập.

Đầu tiên, hãy chắc chắn rằng chúng ta đang ở đúng thư mục và kiểm tra nội dung của tập tin này:

cd ~/project
ls -la sample.txt
cat sample.txt

Bạn sẽ thấy nội dung sau:

This is a sample file for TFTP transfer testing.

Bây giờ, hãy tải tập tin này lên TFTP server một cách dễ dàng:

tftp localhost

Tại dấu nhắc tftp>, đặt chế độ truyền thành binary và tải tập tin lên server:

binary
put sample.txt uploaded-sample.txt

Nếu bạn gặp lỗi "File not found", hãy thoát TFTP và kiểm tra xem tập tin có tồn tại không:

quit
ls -la ~/project/sample.txt
cd ~/project
tftp localhost
binary
put sample.txt uploaded-sample.txt

Lệnh này tải tập tin sample.txt từ máy của bạn lên server và lưu thành uploaded-sample.txt.

Sau khi quá trình truyền tập tin hoàn tất, hãy thoát khỏi TFTP client để tiếp tục:

quit

Bây giờ, hãy kiểm tra xem tập tin đã được tải lên server thành công hay chưa:

cat /tftpboot/uploaded-sample.txt

Bạn sẽ thấy nội dung sau:

This is a sample file for TFTP transfer testing.

Sử dụng TFTP với một dòng lệnh duy nhất

Bạn cũng có thể sử dụng TFTP mà không cần vào chế độ tương tác bằng cách cung cấp thông tin cần thiết trong một dòng lệnh.

Ví dụ, bạn có thể thực hiện việc này một cách nhanh chóng như sau:

cd ~/project
echo "One-line TFTP test" > oneline-test.txt
tftp -c put oneline-test.txt localhost

Hãy kiểm tra xem tập tin đã được tải lên server hay chưa bằng lệnh sau:

cat /tftpboot/oneline-test.txt

Bạn sẽ thấy nội dung sau:

One-line TFTP test

Điều này cho thấy bạn có thể sử dụng TFTP tương tác hoặc với dòng lệnh đơn, tùy theo nhu cầu.

Trong bước tiếp theo, chúng ta sẽ khám phá các tùy chọn TFTP nâng cao và kỹ thuật khắc phục sự cố.

Kết luận cho linux tftp command

Vậy là chúng ta đã cùng nhau khám phá lệnh TFTP trong Linux rồi! Hy vọng qua bài viết này, bạn đã nắm vững cách sử dụng lệnh TFTP để truyền tải file một cách nhanh chóng và đơn giản. Đừng ngần ngại thử nghiệm các tùy chọn khác nhau để hiểu rõ hơn về cách thức hoạt động của nó. Linux tftp command thực sự là một công cụ hữu ích cho việc quản lý và chia sẻ file trong mạng nội bộ. Hãy nhớ rằng, việc thực hành thường xuyên sẽ giúp bạn thành thạo hơn. Chúc bạn thành công trên con đường khám phá Linux và các công cụ mạnh mẽ của nó! Nếu có bất kỳ câu hỏi nào, đừng ngại tìm kiếm thêm thông tin hoặc tham khảo các tài liệu hướng dẫn khác nhé. Chúc bạn có những trải nghiệm tuyệt vời với Linux!

Last Updated : 15/10/2025