新闻动态

如何使用TFTP进行文件传输

TFTP

在嵌入式系统开发中,经常需要从主机上传送映像、文件等到目标机上。实现的方法有很多。如tftp,scp等。 TFTP(Trivial File Transfer Protocol)是用来下载远程文件的最简单的网络协议,它基于UDP协议而实现。

一、TFTP的建立 嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。我们要做的是在服务器端(即主机)上安装TFTP服务,并且正确地配置TFTP服务的路径和参数。 首先需要安装:tftp-hpa sudoapt-get install tftp-hpa sudoapt-get install tftpd-hpa tftp-hpa是客户端,作用是从别人的TFTP服务器端上传/下载东西。 tftpd-hpa是服务端,字母d代表daemon,作用是为别人提供TFTP服务,供别人上传/下载东西。

2、创建TFTP目录 首先需要建立一个TFTP目录,以供上传和下载。当然也可以使用现有的目录。然后需要设定该目录的权限,决定是否能够下载和上传文件。对于日常使用,我们一般就将其权限设置为最高,为所有用户组都添加所有权限(读+写+执行=4+2+1=7): sudomkdir ~/tftp_boot sudochmod 777 tftp_boot –R 我们的TFTP目录为/home/ghostar/tftp_boot,其权限已经是最高。

3、修改配置文件 修改tftpd-hpa相应的配置文件 sudogedit /etc/default/tftpd-hpa 原始的内容如下:

/etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="...:69" TFTP_OPTIONS="--secure" 我将其修改为:

/etc/default/tftpd-hpa TFTP_USERNAME="ghostar" TFTP_DIRECTORY="/home/ghostar/tftp_boot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l-c -s" 说明: TFTP_USERNAME:必须改为当前的用户名,或者root; TFTP_DIRECTORY:我们设定的TFTP根目录; TFTP_OPTIONS:TFTP启动参数。意义如下: -l:以standalone/listen模式启动TFTP服务,而不是从inetd启动。 (这里也表明,再像前面一样装xinetd,其实是多此一举) -c:可创建新文件。默认情况下,TFTP只允许覆盖原有文件,不能创建新文件。 -s:改变TFTP启动的根目录。加了-s后,客户端使用TFTP时,不再需要输入指定目录,填写文件的完整路径,而是使用配置文件中写好的目录。这样也可以增加安全性。

我一开始没有注意TFTP_USERNAME这一项,随便取了一个名字,一直没有成功,后来改用自己的用户名,才测试成功。

4、重新启动服务 重启tftpd-hpa服务: sudo service tftpd-hpa restart 如果显示如下,说明配置正确: tftpd-hpastart/running, process 2290 之前我没有把TFTP_USERNAME该为用户名,而是随便取了一个,则会提示如下: tftpd-hpastart/running 对比发现,这里并没有启动进程,因为配置中TFTP_USERNAME不正确,也就没有成功开启TFTP

5、确认tftp服务是否已经开启 查看tftp相关进程可以用以下指令: psaux |grep tftp 弹出以下信息 ghostar@ubuntu:~$ ps aux|grep tftp root 3151 0.0 0.0 15128 152 ? Ss 23:19 0:00 /usr/sbin/in.tftpd --listen --user ghostar --address 0.0.0.0:69 -l -c -s /home/ghostar/tftp_boot ghostar 3156 0.0 0.0 15956 956 pts/12 S+ 23:20 0:00 grep --color=auto tftp 可以看到, /usr/sbin/in.tftpd已经启动,说明TFTP服务已经开启了,进程号正是3151。 --listen对应配置文件中的参数 -l --user ghostar 就是配置文件中的TFTP_USERNAME /home/ghostar/tftp_boot是配置文件中的TFTP_DIRECTORY

另一种方法: netstat-a|grep tftp 如果看到如下提示,说明TFTP服务开启了。 udp 0 0 *:tftp :

本文地址:https://www.raysync.cn/news/post-id-33 ,镭速(Raysync)大文件传输软件,高速传输系统,提供ftp传输加速服务,企业级大文件传输协议,解决大数据传输,跨境传输,跨国大文件传输慢的问题,帮助企业提高传输效率。

上一篇:TFTP文件传输的使用方法

下一篇:怎么快速的传输大文件?大文件如何快速传输

关注云语科技

wechat qrcode

微信扫一扫,获取最新资讯