我在VirtualBox虚拟机中运行Ubuntu 12.04。 我已经安装了tftpd-hpa软件包。 我使用它来启动一个embedded式Linux系统,我注意到,在我的虚拟机第一次启动时,它不会工作,但重新启动tftpd-hpa服务使它每次都工作,直到下次启动。
今天,我运行了一个德州仪器的shell脚本,它可能会使用我的tftpdconfiguration,现在我根本无法工作。 我能够连接,但传输超时,甚至本地主机(我也试过127.0.0.1):
steve@steve-VirtualBox:~$ tftp tftp> connect localhost tftp> status Connected to localhost. Mode: netascii Verbose: off Tracing: off Rexmt-interval: 5 seconds, Max-timeout: 25 seconds tftp> get zImage Transfer timed out. tftp>
请注意, /var/lib/tftpboot/zImage确实存在,但是对于不存在的文件,我得到完全相同的行为。
这里是/etc/default/tftpd-hpa :
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
这里是/etc/xinetd.d/tftp :
service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /var/lib/tftpboot disable = no }
似乎你正在从xinetd启动tftpd-hpa,并作为一个独立的服务在同一时间。 请select一个,禁用另一个。
例如,在/etc/xinetd.d/tftp设置disable = yes并重新启动xinetd。 然后重新启动独立服务service tftpd-hpa restart并再次尝试连接。
1)卸载/重新安装tftpd-hpa
2)添加到/ etc / default / tftpd-hpa
RUN_DAEMON="yes"
你可能需要在防火墙上打个洞。 从http://www.thelinuxdaily.com/2010/02/guide-on-tftp-server-setup-in-fedora/的第4步:
在/ etc / sysconfig / iptables的“COMMIT”行之前插入以下行,然后使用“service iptables restart”重新启动服务:
-Ainput-m状态 – 状态新-m udp -p udp –dport 69 -j ACCEPT
看到这个答案 。
我不得不编辑/etc/default/tftpd-hpa并在TFTP_ADDRESS=variables中设置IP地址。
这在Debian Jessie上,但在Ubuntu上可能是一样的。
设置TFTP_ADDRESS =“0.0.0.0:69”不适用于我,至less对于这两个接口。 设置TFTP_ADDRESS=":69"完成了这项工作