我这里是从ubuntu环境下载文件到板子上,首先发现tftp:timeout,于是排查原因。
1、检查网线是否插好
首先,检查板子和ubuntu是否互通,我这里是可以相互ping通的,说明网线连接正常。
2、服务器防火墙是否关闭
如果ubuntu防火墙未关闭,tftp是不能正常使用的,用命令ufw status可以查看防火墙状态。
如果结果显示Status: inactive,说明防火墙关闭;如果结果显示Status: active,说明防火墙是开启的,这种情况下使用命令ufw disable关闭防火墙。
3、tftp服务没起
使用如下命令查看服务有没有
systemctl status tftpd-hpa
我这里提示需要安装服务端tftpd-hpa
也可以使用service tftpd-hpa restart,如果服务程序没有安装,则提示
Failed to restart tftpd-hpa.service:Unit tftpd-hpa.service not 电脑found.
服务端tftpd-hpa
客户端tftp-hpa
安装服务命令:
root@ubuntu#apt install tftpd-hpa
查看服务运行状态:
root@ubuntu#systemctl status tftpd-hpa
看到显示服务running,表示服务正常启动了。
打开配置文件
root@ubuntu# vim /etc/default/tftpd-hpa
内容如下:
TFTP_USERNAME="tftp" //tftpd程序使用的账户
TFTP_DIRECTORY="/srv/tftp" //目录
TFTP_ADDRESS=":69" //端口
TFTP_OPTIONS="--secure"
配置最后一行做如下修改:
TFTP_OPTIONS="--secure --create"
//--secure 解决跨目录问题
//--create给客户端开放写数据的权限
修改/srv/tftp的属性
root@ubuntu#chown tftp:tftp /srv/tftp
重启服务:
root@ubuntu#systemctl restart tftpd-hpa
在 板子上某个目录输入如下命令:
#tftp -g -r test.c 192.168.8.xxx
回车后在当前目录就可以看到从ubuntu下载过来的test.c文件了,前提是两边的tftp均可以正常使用,此外ubuntu的/srv/tftp目录下准备好要下载的文件。
从本地上传文件到ubuntu,在板子上某个目录输入如下命令:
#tftp 电脑 -p -l test.c 192.168.8.xxx
在ubuntu上/srv/tftp目录下可以看到上传的文件了
电脑