Linux tftp command

Lệnh Linux tftp: Hướng Dẫn Chi Tiết Cho Người Mới Bắt Đầu

Bạn là một người mới làm quen với Linux và đang tìm hiểu về cách truyền tải file một cách đơn giản và hiệu quả? Lệnh tftp chính là công cụ bạn cần! Trong bài viết này, chúng ta sẽ cùng nhau khám phá lệnh tftp, từ khái niệm cơ bản đến cách sử dụng chi tiết, cũng như những tình huống thực tế mà bạn có thể áp dụng nó. Đừng lo lắng nếu bạn chưa có kinh nghiệm, chúng ta sẽ đi từng bước một cách dễ hiểu nhất.

tftp (Trivial File Transfer Protocol) là một giao thức truyền tải file đơn giản, thường được sử dụng để boot hệ thống từ xa hoặc truyền tải các file cấu hình nhỏ. So với các giao thức phức tạp hơn như FTP, tftp có ưu điểm là nhẹ nhàng, dễ cấu hình và không yêu cầu xác thực người dùng (trong cấu hình mặc định). Tuy nhiên, chính vì sự đơn giản này mà tftp cũng có những hạn chế nhất định về bảo mật.

tftp hoạt động như thế nào?

Để hiểu rõ hơn về tftp, chúng ta cần nắm bắt quy trình hoạt động cơ bản của nó:

  1. Khởi tạo kết nối: Máy khách (client) gửi yêu cầu kết nối đến máy chủ (server) tftp.
  2. Truyền dữ liệu: Máy khách và máy chủ trao đổi dữ liệu theo từng khối nhỏ (thường là 512 byte).
  3. Xác nhận: Mỗi khối dữ liệu được gửi đi sẽ cần một gói tin xác nhận (ACK) từ phía bên kia để đảm bảo dữ liệu được truyền thành công.
  4. Kết thúc: Quá trình truyền tải kết thúc khi máy chủ gửi một khối dữ liệu nhỏ hơn kích thước tối đa (512 byte).

Cài đặt tftp Server và Client

Trước khi bắt đầu sử dụng tftp, bạn cần cài đặt cả server và client trên hệ thống của mình. Dưới đây là hướng dẫn cài đặt trên một số bản phân phối Linux phổ biến:

Trên Ubuntu/Debian

Để cài đặt tftp server và client trên Ubuntu hoặc Debian, bạn có thể sử dụng lệnh sau:

sudo apt update
sudo apt install tftpd-hpa tftp

Sau khi cài đặt, bạn cần cấu hình tftpd-hpa bằng cách chỉnh sửa file /etc/default/tftpd-hpa. Hãy chắc chắn rằng bạn đã chỉ định thư mục mà server sẽ sử dụng để lưu trữ và truy cập file.

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -s"

Sau khi chỉnh sửa, khởi động lại dịch vụ tftpd-hpa:

sudo systemctl restart tftpd-hpa

Trên CentOS/RHEL

Để cài đặt tftp server và client trên CentOS hoặc RHEL, bạn có thể sử dụng lệnh sau:

sudo yum install tftp-server tftp

Tương tự như trên Ubuntu, bạn cần cấu hình tftp-server bằng cách chỉnh sửa file /etc/xinetd.d/tftp. Đảm bảo rằng bạn đã chỉ định thư mục mà server sẽ sử dụng để lưu trữ và truy cập file.

service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s /var/lib/tftpboot
    disable         = no
}

Sau khi chỉnh sửa, khởi động lại dịch vụ xinetd:

sudo systemctl restart xinetd

Sử Dụng Lệnh tftp: Các Thao Tác Cơ Bản

Sau khi đã cài đặt và cấu hình server và client, chúng ta hãy cùng tìm hiểu cách sử dụng lệnh tftp để thực hiện các thao tác cơ bản:

Kết nối đến tftp Server

Để kết nối đến tftp server, sử dụng lệnh sau:

tftp [địa chỉ IP hoặc tên miền của server]

Ví dụ:

tftp 192.168.1.100

Sau khi kết nối thành công, bạn sẽ thấy dấu nhắc lệnh tftp>.

Tải File từ tftp Server (get)

Để tải một file từ tftp server, sử dụng lệnh get:

get [tên file trên server] [tên file lưu trên client]

Ví dụ:

get boot.img boot.img.backup

Lệnh này sẽ tải file boot.img từ server và lưu nó với tên boot.img.backup trên máy client.

Gửi File lên tftp Server (put)

Để gửi một file lên tftp server, sử dụng lệnh put:

put [tên file trên client] [tên file lưu trên server]

Ví dụ:

put config.txt new_config.txt

Lệnh này sẽ gửi file config.txt từ client lên server và lưu nó với tên new_config.txt.

Ngắt Kết Nối (quit)

Để ngắt kết nối với tftp server, sử dụng lệnh quit hoặc exit:

quit

Ví Dụ Thực Tế: Boot Hệ Thống Từ Xa Sử Dụng tftp

Một trong những ứng dụng phổ biến nhất của tftp là boot hệ thống từ xa, đặc biệt là trong môi trường mạng không ổ đĩa (diskless). Quá trình này thường bao gồm các bước sau:

  1. Máy client (máy cần boot) gửi yêu cầu DHCP để lấy địa chỉ IP và thông tin về tftp server.
  2. Máy client tải bootloader (ví dụ: PXELINUX) từ tftp server.
  3. Bootloader được tải sẽ khởi động và hiển thị menu boot cho người dùng lựa chọn.
  4. Dựa trên lựa chọn của người dùng, bootloader có thể tải kernel và initrd từ tftp server hoặc từ một nguồn khác (ví dụ: NFS).
  5. Hệ điều hành được khởi động và chạy trên máy client.

Để cấu hình boot từ xa sử dụng tftp, bạn cần cấu hình DHCP server để cung cấp thông tin chính xác về tftp server và bootloader cho máy client. Bạn cũng cần đảm bảo rằng bootloader, kernel và initrd được đặt đúng vị trí trên tftp server.

So Sánh tftp với FTP và SFTP

Để hiểu rõ hơn về ưu nhược điểm của tftp, chúng ta hãy so sánh nó với hai giao thức truyền tải file phổ biến khác là FTP và SFTP:

Tính Năng tftp FTP SFTP
Bảo mật Không mã hóa, không xác thực (mặc định) Không mã hóa (trừ khi sử dụng FTPS) Mã hóa bằng SSH
Độ phức tạp Đơn giản Trung bình Phức tạp
Hiệu suất Cao (cho các file nhỏ) Trung bình Thấp hơn FTP do mã hóa
Yêu cầu tài nguyên Thấp Trung bình Cao hơn
Xác thực Không yêu cầu (mặc định) Yêu cầu tên người dùng và mật khẩu Yêu cầu tên người dùng và mật khẩu hoặc khóa SSH
Ứng dụng Boot từ xa, cấu hình thiết bị mạng Truyền tải file thông thường Truyền tải file an toàn

Câu Hỏi Thường Gặp (FAQ)

  • tftp có an toàn không? Không, tftp không an toàn trong cấu hình mặc định vì nó không mã hóa dữ liệu và không yêu cầu xác thực. Bạn nên sử dụng tftp chỉ trong môi trường mạng tin cậy hoặc khi bảo mật không phải là ưu tiên hàng đầu.
  • Làm thế nào để tăng tính bảo mật cho tftp? Bạn có thể tăng tính bảo mật cho tftp bằng cách sử dụng các biện pháp như giới hạn truy cập vào thư mục tftp, sử dụng tường lửa để hạn chế kết nối đến tftp server, và sử dụng các giao thức bảo mật hơn như SFTP nếu có thể.
  • Tôi nên sử dụng tftp khi nào? Bạn nên sử dụng tftp khi cần truyền tải các file nhỏ một cách nhanh chóng và đơn giản trong môi trường mạng tin cậy, hoặc khi cần boot hệ thống từ xa.
  • Tôi gặp lỗi "connection refused" khi kết nối đến tftp server, phải làm sao? Lỗi "connection refused" thường xảy ra khi tftp server chưa được khởi động hoặc tường lửa đang chặn kết nối. Hãy kiểm tra xem tftp server đã được khởi động và cấu hình đúng chưa, và kiểm tra lại cấu hình tường lửa.

Kết Luận

Như vậy, chúng ta đã cùng nhau tìm hiểu về lệnh tftp trong Linux, từ khái niệm cơ bản đến cách sử dụng chi tiết và những tình huống thực tế. Mặc dù tftp có những hạn chế về bảo mật, nhưng nó vẫn là một công cụ hữu ích cho việc truyền tải file đơn giản và boot hệ thống từ xa. Hy vọng rằng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu sử dụng tftp một cách hiệu quả. Chúc bạn thành công!

Last Updated : 22/08/2025