Tất cả phiên bản Windows Server đều hỗ trợ khả năng chạy TFTP server tích hợp. Mặc dù không có role hoặc dịch vụ chuyên biệt của TFTP server (đừng tìm nó trong phần FTP của IIS server), tính năng này, như trong Windows Server 2003, là một phần của Windows Deployment Services (WDS). Dịch vụ TFTP hoạt động bên trong tiến trình svchost.exe của WDS.
TFTP (Trivial File Transfer Protocol) là giao thức truyền file đơn giản cung cấp cách dễ dàng tải lên/tải xuống file. Thông thường, TFTP dùng trong hệ thống PXE boot (network boot, workstation không đĩa, v.v.), import/export cấu hình thiết bị mạng và một số tác vụ cụ thể khác. Giao thức này không có phương tiện bảo mật, xác thực hoặc quản lý. Lợi thế chính là triển khai client-side dễ dàng và hiệu suất cao khi truyền file lớn. Giao thức dùng cổng UDP 69.
Lưu ý. Tính năng TFTP server của Microsoft khá bị khuyết, nhưng đủ để dùng PXE booting. Đặc biệt, client chỉ có thể đọc dữ liệu từ TFTP server như vậy, nhưng ghi không khả dụng.
Để cài đặt dịch vụ TFTP trên Windows Server 2012 R2, khởi động Server Manager và chọn role Windows Deployment Services dùng Add Roles and Features Wizard.
Ở bước tiếp theo, chỉ chọn Transport Server trong các thành phần role WDS và bỏ chọn Deployment Server.
Sau khi cài đặt role xong, tạo thư mục, sẽ là thư mục gốc của TFTP server, ví dụ, C:\tftp.
Sau đó dùng Registry Editor trong HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP tạo tham số string mới tên RootFolder với giá trị chứa đường dẫn đến thư mục gốc tạo trước đó.
Chú ý giá trị tham số ReadFilter. Mặc định, nó chỉ cho phép tải file từ thư mục \boot và \tmp. Nếu bạn cần cơ hội tải file từ thư mục gốc hoặc thư mục khác, thay đổi giá trị ReadFilter thành \*.
Khởi động WDS bằng lệnh sau:
WDSUTIL /Start-TransportServer
Mẹo. Để tự động khởi động dịch vụ, thay đổi loại khởi động của Windows Deployment Services thành Auto dùng services.msc hoặc command prompt:
set-service WDSServer -StartupType Automatic
Trong Windows Firewall, một rule sẽ xuất hiện, cho phép traffic đến UDP Port 69 (dịch vụ phản hồi từ bất kỳ cổng nào cao hơn 1023). Một số antivirus có thể chặn Port 69 (McAffee Enterprise làm vậy).
Vậy bạn đã cấu hình xong TFTP server.
Để test TFTP server, bạn cần TFTP client. Nó có thể cài bằng Server Manager, chọn TFTP Client.
Hãy thử kết nối đến TFTP server triển khai cục bộ và tải file test.zip.
Bạn có thể tải file bằng lệnh:
tftp –i localhost GET tmp\test.zip C:\temp\test.zip
Về lý thuyết nó nên chạy, nhưng thực tế tôi nhận được lỗi sau sau khi chạy lệnh cuối:
Connect request failed
Khi khởi động hoặc restart Windows Deployment Services Server, sự kiện sau từ dịch vụ WDSTFTP và EventID 259 xuất hiện trong Application log:
The root folder for the Windows Deployment TFTP server is not configured. Error Information: 0x2
Để TFTP server hoạt động, tôi phải cài đặt thành phần role WDS -> Deployment Service và xóa nó ngay. Sau khi đã cài, tôi đổi giá trị RootFolder từ C:\RemoteInstall thành c:\tftp. Sau đó tôi thử tải file lại.
PS C:\temp> tftp -i localhost get boot\test.zip
Success!
Chúng ta đã xem cách triển khai TFTP server trong Windows Server 2012 dễ dàng không dùng công cụ thứ ba. Tính năng loại server này sẽ bị khuyết, vì vậy trong cài đặt phức tạp hơn, các triển khai TFTP server thay thế được ưu tiên, ví dụ, tftpd32.