我已按照以下链接中的步骤安装了 tftpd-hpa: https://help.ubuntu.com/community/TFTP
我的/etc/default/tftpd-hpa
样子是这样的:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"
该过程已启动并正在运行,但是当我尝试从 tftp 客户端(ICX 设备)上传时,出现以下失败:
copy running-config tftp 111.1.1.10 test
Parameter Validation Successful
............test 0% | | 0 --:--:-- ETA
test 0% | | 0 --:--:-- ETA
test 0% | | 0 --:--:-- ETA
test 0% | | 0 - stalled -
test 0% | | 0 - stalled -
test 0% | | 0 - stalled -
test 0% | | 0 - stalled -
test 0% | | 0 - stalled -
tftp: timeout
File Upload failed
File Upload Failed
答案1
所述问题可能有多种原因。请进行以下几项检查:
错误的 TFTP 数据目录所有者
sudo chmod tftp:tftp /var/lib/tftpboot
用户和组所有者必须是tftp
。
缺少目录写入权限
检查写入权限。
防火墙阻止对服务器的访问
检查 IPtables。
sudo iptables-save
sudo iptables-save | grep "69"
第一个命令显示本地防火墙是否处于活动状态。如果是,则第二个命令应找到开放 UDP 端口 69 的规则。
情况并不完全简单,因为数据传输发生在用于传递命令的 UDP 69 以外的端口上。有时可能需要完全关闭防火墙或为 TFTP 使用特殊的防火墙模块。
网络通讯检查
使用 Wireshark 可以很好地跟踪整个 TFTP 通信的进度。要限制显示数据的选择,请使用显示过滤器“udp”。
TFTP 客户端测试服务器功能
除了 tftpd-hpa 守护进程之外,还可以安装和使用 tftp-hpa 客户端。
在运行 TFTPD 守护程序的同一台服务器上直接在本地启动测试。准备小型本地文本文件:
echo "My text." > x.txt
cat x.txt
尝试上传文件到TFTP服务器:
sudo apt-get install tftp-hfa
用法:
tftp 111.1.1.10
verbose
status
put x.txt
quit
TFTP 目录内容检查:
ls -l /var/lib/tftpboot
如果一切正确,请尝试下载文件(get
而不是put
)。然后在另一台计算机上使用 TFTP 客户端来验证网络上的连接未被防火墙阻止。