نصب TFTP در اوبونتو و دبیان برای کاربردهایی مانند بوت شبکه یا تحویل فایل به تجهیزات قدیمی مفید است. TFTP احراز هویت و رمزنگاری داخلی ندارد؛ برای انتقال عمومی یا فایل محرمانه، انتخاب مناسبی نیست. این آموزش ابتدا یک سرویس محلیِ خواندنی ایجاد میکند تا پیش از دسترسی شبکهای، عملکرد آن بررسی شود.
بستههای لازم برای نصب TFTP در اوبونتو
سرور و کلاینت دو بستهٔ متفاوتاند. tftpd-hpa سرویسدهنده و tftp-hpa ابزار آزمون است:
sudo apt update
sudo apt install tftpd-hpa tftp-hpa
sudo systemctl status tftpd-hpa --no-pager
نام unit و فایل تنظیم را در بستهٔ نصبشده بررسی کنید. در بستههای متداول دبیان و اوبونتو، تنظیم راهاندازی در /etc/default/tftpd-hpa قرار دارد؛ راهنمای TFTP دبیان نیز همین ساختار را توضیح میدهد.
تنظیم مسیر و اتصال محلی
برای نمونهٔ تازه و آزمایشی، فایل تنظیم را با مقادیر زیر هماهنگ کنید. روی سرویس موجود، مسیر فایلها و نیاز دستگاهها را پیش از تغییر بررسی کنید:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="127.0.0.1:69"
TFTP_OPTIONS="--secure --verbose"
گزینهٔ --secure ریشهٔ دسترسی فرایند را محدود میکند؛ به معنی افزودن رمزنگاری یا ورود با رمز نیست. شرح گزینهها در مستند tftpd-hpa آمده است. در این مثال –create فعال نشده تا ساخت فایل تازه از سمت کلاینت مجاز نباشد.
ساخت فایل آزمایشی با مجوز خواندن
به جای chmod 777، مسیر را تحت مالکیت مدیر و با مجوز خواندن مناسب بسازید. نام فایل نمونه باید تازه باشد؛ دستور tee فایل همنام موجود را بازنویسی میکند.
sudo install -d -o root -g root -m 0755 /srv/tftp
printf 'hostnegar-tftp-check
' | sudo tee /srv/tftp/hn-check.txt > /dev/null
sudo chown root:root /srv/tftp/hn-check.txt
sudo chmod 0644 /srv/tftp/hn-check.txt
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager
sudo ss -lunp 'sport = :69'
خروجی باید شنوندهٔ محلی UDP را نشان دهد. نبودن –create بهتنهایی همهٔ نوشتنها را منع نمیکند؛ مجوز فایلهای موجود نیز مهم است. این نمونه با مالکیت root و مجوز 0644، برای کاربر سرویس امکان بازنویسی فایل فراهم نمیکند.
آزمون دانلود واقعی
در یک پوشهٔ آزمایشیِ قابل نوشتن و بدون فایل همنام اجرا کنید:
tftp 127.0.0.1
سپس در محیط کلاینت:
binary
get hn-check.txt hn-check.download.txt
quit
بعد از خروج، محتوای دریافتشده را ببینید و هش دو فایل را مقایسه کنید:
cat hn-check.download.txt
sha256sum /srv/tftp/hn-check.txt hn-check.download.txt
هشها باید یکسان باشند. طبق راهنمای کلاینت، دیدن اعلان tftp یا اجرای connect بهتنهایی اتصال موفق به سرور را ثابت نمیکند؛ انتقال واقعی معیار آزمون است.
دسترسی دستگاههای شبکه و عیبیابی
پس از آزمون محلی، برای شبکهٔ مدیریت میتوانید نشانی اتصال را به IP خصوصی همان رابط تغییر دهید. دسترسی را به دستگاههای لازم محدود کنید و سرویس را روی اینترنت منتشر نکنید. طبق RFC 1350، درخواست اولیه روی UDP 69 است اما ادامهٔ انتقال از شناسههای درگاه انتخابشده استفاده میکند؛ بنابراین اجازهٔ 69 بهتنهایی در همهٔ فایروالها کافی نیست.
قواعد شبکه یا محدودهٔ درگاه سرور را متناسب با تجهیزات تنظیم کنید. در خطای timeout، نشانی شنونده و مسیر شبکه؛ در access violation، مالکیت و مجوز فایل؛ و در file not found، نام فایل نسبت به ریشهٔ TFTP را بررسی کنید.
برای دیدن خطای سرویس از sudo journalctl -u tftpd-hpa -n 50 --no-pager استفاده کنید. فعال کردن آپلود نیازمند طراحی جداگانهٔ مجوزها و محدودیت شبکه است و نباید با عمومی کردن نوشتن در کل پوشه انجام شود.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.