如何使用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 :
镭速传输,超大文件传输专家,让您的超大文件传输畅通无阻,实现高效,便捷!
下面来看一下镭速和FTP跨国传输速度对比
跨国传输环境下,镭速传输的文件传输实际速率
跨国传输速度对比
从中国到美国,使用镭速传输海量小文件,比公司同一区域两台机器互传还快。
那么如何使用镭速文件传输呢?
下面教大家如何部署镭速服务端
一、服务器部署:下载镭速软件包,在服务器解压启动,打开防火墙TCP端口8090和UDP端口 32001;下载地址:https://www.raysync.cn/get-license
二、客户端部署:在用户电脑网页上访问镭速服务器,下载安装镭速客户端,使用内置test用户 访问镭速服务;
三、激活授权:向镭速技术支持申请授权码;
本文地址:https://www.raysync.cn/news/post-id-33 ,镭速传输提供一站式文件传输加速解决方案,旨在为IT、影视、生物基因、制造业等众多行业客户实现高性能、安全、稳定的数据传输加速服务。传统文件传输方式(如FTP/HTTP/CIFS)在传输速度、传输安全、系统管控等多个方面存在问题,而镭速文件传输解决方案通过自主研发、技术创新,可满足客户在文件传输加速、传输安全、可管可控等全方位的需求。
上一篇:如何实现超大文件同步传输功能?
下一篇:文件传输解决方案你了解哪些?