目录
TFTP(Trivial File Transfer Protocol)即简单文件传输协议 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件 传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69
tftp使用客户服务器方式和使用UDP数据报,因此tftp需要有自己的差错改正措施。(如丢包)
tftp支持小文件传输。(FTP)
tftp没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。(必须提前知道目录)
场景需求:频繁修改内容
如需要下载开发板xx.bin文件,电脑上不断调整下载到开发板
测试ubuntu网络情况
ping www.baidu.com
检测软件源更新
sudo apt-get update
安装客户端(tftp)和服务器(tftpd)
sudo apt-get install tftpd-hpa tftp-hpa
编辑配置
sudo vi /etc/default/tftpd-hpa
内容 如下
- # /etc/default/tftpd-hpa
-
- TFTP_USERNAME="tftp"
- TFTP_DIRECTORY="/home/linux/tftpboot" //我们设定的TFTP根目录;mkdir创建
- TFTP_ADDRESS="0.0.0.0:69" //ip和端口号 0.0.0.0代表任意ip都可以
- TFTP_OPTIONS="-c -l -s" //TFTP启动参数
-
- #-l:以standalone/listen模式启动TFTP服务,而不是从xinetd启动。(不需要依赖其他进程)
-
- #-c:可创建新文件。默认情况下,TFTP只允许覆盖原有文件,不能创建新文件。
-
- #-s:改变TFTP启动的根目录。不用手动指定目录,默认使用配置文件中的目录。
给文件目录一个权限
chmod 777 tftpboot
启动服务
sudo service tftpd-hpa restart
连接服务器 localhost代表本地。
get [filename] 获取文件
put [filename] 上传文件
q 退出
- linux@linux:~$ tftp localhost
- tftp> get test
- tftp> q
- linux@linux:~$ cat test
- hello
- linux@linux:~$
错误现象: Transfer timed out
原因:tftpd服务没有启动
解决方法:启动服务 sudo service tftpd-hpa restart
错误现象:Error code 2:Only absolute filenames allowed
原因:在/etc/default/tftp-hpa中配置出错
解决方法:参考手册重新配置
错误现象:Error code 1:File not found
原因:指定的文件不存在; tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下
错误现象: tftp:Permission denied
原因:权限不足
解决方法:检查文件的权限(要考虑是本用户、同组、其他用户)chmod 777