
我在 VirtualBox VM 中运行 Ubuntu 12.04。我已经安装了软件包tftpd-hpa
。我使用它来启动嵌入式 Linux 系统,我注意到在我的 VM 首次启动时它无法工作,但重新启动服务tftpd-hpa
每次都可以让它工作,直到下次启动。
今天,我运行了德州仪器的 shell 脚本,该脚本可能弄乱了我的 tftpd 配置,现在我根本无法让它工作。我可以连接,但传输超时,甚至到本地主机也是如此(我也尝试了 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
}
答案1
似乎您正在从 xinetd 启动 tftpd-hpa,同时将其作为独立服务启动。请选择其中一个并禁用另一个。
例如设置disable = yes
并/etc/xinetd.d/tftp
重新启动 xinetd。然后重新启动独立服务service tftpd-hpa restart
并再次尝试连接。
答案2
对我来说,设置 TFTP_ADDRESS="0.0.0.0:69" 不起作用,至少对两个接口都不起作用。设置TFTP_ADDRESS=":69"
起作用了
答案3
1)卸载/重新安装 tftpd-hpa
2)添加到 /etc/default/tftpd-hpa
RUN_DAEMON="yes"
答案4
看这个答案。
我必须编辑/etc/default/tftpd-hpa
并设置变量中的 IP 地址TFTP_ADDRESS=
。
那是在 Debian Jessie 上,但在 Ubuntu 上可能也是一样的。