Linux

TFTP 配置問題

  • July 22, 2018

我無法讓 TFTP 在我的系統上正常工作。我已經設置/etc/default/tftpd-hpa了我已經設置為所有內容的/srv/tftp/權限(也是)但是,每當我這樣做時,我都會超時,(並且我在我的本地主機上連接到 127.0.0.1)。我認為 TFTP 不會在某處記錄日誌,是嗎?任何有關如何調試的幫助將不勝感激!777``/srv/``get test

編輯#1

這是在 (K)Ubuntu 系統上/srv,其內容歸 擁有root:root,我現在將其更改為,nobody:nogroup但我仍然得到相同的超時:

$ ls -la
total 12
drwxrwxrwx 3 nobody nogroup 4096 Nov  5 08:47 .
drwxrwxrwx 3 nobody nogroup 4096 Nov  5  2013 ..
drwxrwxrwx 2 nobody nogroup 4096 Nov  5  2013 artifacts
-rwxrwxrwx 1 nobody nogroup    0 Nov  5 08:48 test
-rw-r--r-- 1 reg    reg        0 Nov  5 08:47 vx.bin
reg@ubuntu:/srv/tftp$tftp 127.0.0.1
tftp> get test
Transfer timed out.

編輯#2

在意識到似乎沒有tftp執行實例之後,我嘗試啟動它,#tftp然後 Ubuntu 告訴我,我應該apt-get install cobbler安裝 cobbler,這就是我所做的,然後我再次嘗試並得到以下結果:

# tftpd
Traceback (most recent call last):
 File "/usr/sbin/tftpd", line 51, in <module>
   import tornado.ioloop as ioloop
ImportError: No module named tornado.ioloop
root@ubuntu:/srv# 

這是什麼意思,我想知道,任何線索?

我最終遵循了本指南,該指南解釋了也openbsd-inetd應該安裝,我還必須RUN_DAEMON="yes"在我的 tftp 配置文件中設置/etc/default/tftpd-hpa.

更新#1

上面的連結不再有效,所以我在這裡找到了一個替代方案,標題為: Running TFTP Server on Ubuntu 12.04 LTS (Precise) UPDATE

我最近不得不自己處理幾次,這些是我問自己解決問題的問題:

  • tftpd 是從 xinetd 執行還是作為獨立的守護程序執行?
  • 您是否需要更改 /etc/hosts.allow 或 hosts.deny
  • 是否啟用了 SELinux(使用“getenforce”命令檢查)?
  • 是否有主機防火牆在執行?(服務 iptables 狀態)
  • 您確定 tftpd 使用的目錄是數據目錄嗎?
  • 您嘗試“獲取”的文件是否真的存在?

我的賭注是上述的組合。像防火牆和 SELinux 以及數據目錄位置。

您不希望 /srv 以 0777 模式打開。您也不需要對 tftp 數據目錄執行此操作。您只需要世界可讀的文件。除非您將文件放到伺服器上。在這種情況下,您必須提前創建文件,並在您編寫它們時使它們在世界範圍內可寫。

祝你好運!

引用自:https://unix.stackexchange.com/questions/99000