TFTP配置问题

TFTP配置问题

我无法让 TFTP 在我的系统上正常工作。我已经设置了/etc/default/tftpd-hpa像所有内容一样的/srv/tftp/权限(也)但是,每当我执行 a 时,我都会超时(并且我在本地主机上连接到 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# 

我想知道这是什么意思,有什么线索吗?

答案1

我最近不得不自己处理这个问题几次,这些是我问自己解决问题的问题:

  • tftpd 是从 xinetd 运行还是作为独立的守护进程运行?
  • 您需要更改/etc/hosts.allow 或hosts.deny
  • SELinux 是否已启用(使用“getenforce”命令检查)?
  • 主机防火墙是否正在运行? (服务 iptables 状态)
  • 您确定 tftpd 正在使用的目录作为数据目录吗?
  • 您尝试“获取”的文件实际上存在吗?

我的赌注是以上几点的结合。例如防火墙和 SELinux 以及数据目录位置。

您不希望 /srv 以模式 0777 打开。并且您也不需要对 tftp 数据目录执行此操作。您只需要世界可读的文件。除非您将文件放到服务器上。在这种情况下,您必须提前创建文件,并在编写文件时使它们全局可写。

祝你好运!

答案2

我最终跟随本指南这说明openbsd-inetd也应该安装它,并且我还必须RUN_DAEMON="yes"在 tftp 配置文件中进行设置/etc/default/tftpd-hpa

更新#1

上面的链接不再有效,所以我在这里找到了一个替代方案,标题为: 在 Ubuntu 12.04 LTS 上运行 TFTP 服务器(精确)更新

答案3

我刚刚在 Debian Jessie 上遇到了这个问题:“传输超时。”。

在 中/etc/default/tftpd-hpa,有一行地址:TFTP_ADDRESS="0.0.0.0:69"

将其替换为完整的服务器地址。例如:

TFTP_ADDRESS="192.168.99.10:69"

并重新启动守护进程。这似乎已经为我解决了。

Debian 中的此变量将--address选项设置为守护进程。您可能需要在不同的发行版上进行不同的设置,但最终您应该在执行以下操作时看到地址ps x

# ps x | grep tftp
3988 ?        Ss     0:00 /usr/sbin/in.tftpd --listen --user tftp --address 192.168.99.10:69 --secure /docs/tftp-pxe

看起来像是服务器或客户端中的错误。

答案4

如果这是 CentOS/Fedora,您可以像这样从 TFTP 启用详细消息传递。在配置文件中/etc/xinetd.d/tftp,将 server_args 变量更改为:

server_args = -v -v -l /var/log/tftpd

请务必重新启动服务器。您可以添加其他-v开关以使其更加详细。

相关内容