【嵌入式开发之TFTP服务器】TFTP服务器简介、特点、应用场景及其搭建

TFTP服务器简介

TFTP是TCP/IP协议族中被用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。

TFTP文件传输的特点

  • TFTP使用客户服务器方式和使用UDP数据报,因此TFTP需要有自己的差错改正措施。
  • TFTP支持小文件传输。
  • TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。 

TFTP服务器的适用场景

  • 需要频繁修改内容,比如在开发板上要实现某个共功能,需要从服务器下载文件,但需要对这个功能进行不断调试,需要不断修改服务器中的代码,且开发板需要不断从服务器中下载这些文件,这个时候TFTP文件传输就会比较方便。 

TFTP环境搭建

  • 在线安装TFTP服务器和客户端

ping www.baidu.com  //检测网络是否有问题

sudo apt-get install tftpd-hpa tftp-hpa //安装服务器和客户端
  • 修改配置文件

首先输入命令打开配置文件

sudo vi /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

设定TFTP根目录:利用Ctrl+Alt+T重新打开一个终端,并且cd到一个你想存放服务器文件的文件夹。我这里是在我的共享文件夹share下面新建了一个tftpboot文件夹:

cd /mnt/hgfs/share/study
mkdir tftpboot

修改根目录tftpboot/的权限:

chmod a+w tftpboot

接着回到刚才打开的配置文件,修改TFTP的根目录:

TFTP_DIRECTORY="/mnt/hgfs/share/study/tftpboot" //修改TFTP根目录

修改TFTP网关:0.0.0.0表示任意的IP均可下载服务器文件,69为TFTP服务器端口。 

TFTP_ADDRESS="0.0.0.0:69" //0.0.0.0表示任意的IP均可下载服务器文件,69为TFTP服务器端口

修改TFTP启动参数:

TFTP_OPTIONS="-c -l -s" //修改TFTP启动参数

 修改TFTP启动参数:

-l:以standalone/listen模式启动TFTP服务,而不是从xinetd启动;

-c:可创建新文件,默认情况下,TFTP只允许覆盖原有文件,不能创建新文件;

-s:改变TFTP启动的根目录,不用手动指定目录,默认使用配置文件中的目录。

  • 重启TFTP服务器

sudo service tftpd-hpa restart
  •  在TFTP根目录下创建一个新文件file

touch file
  •  从TFTP根目录下载文件file,以测试TFTP服务器是否成功

~$ tftp localhost
tftp> get file
tftp> q

 从TFTP服务下载file文件,并输入q推出,再输入ls,查看文件列表:

如果能看到file文件,则说明TFTP环境搭建成功。

  • 卸载TFTP服务的命令 

 sudo apt-get remove --purge tftpd-hpa tftp-hpa

如遇到TFTP服务搭建不成功,可以执行上述命令卸载(包括配置文件),再执行以下命令重新搭建:

sudo apt-get install tftpd-hpa tftp-hpa
sudo service tftpd-hpa restart

常见错误

  • 错误现象:Transfer timed out

可能的原因是tftpd服务没有启动或者网络出现文件,解决办法就是检查网络或者启动服务。

  • 错误现象:Error code 2: Only absolute filenames allowed

可能的原因是/etc/default/tftpd-hpa中配置出错,解决办法就是重新配置。

  • 错误现象:Error code 1:File not found

可能的原因有三个:

一是文件确实不存在;

二是修改配置文件后,没有重新启动,这时执行下面代码重新启动即可:

sudo service tftpd-hpa restart

三是TFTP启动参数中没有指定-c选项,允许上传文件,上传的时候一定要确保文件先存在于上传目录下。 

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式进阶行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值