文档详情

Linux系统中用TFTP进行文件传输.doc

发布:2017-02-03约5.28千字共6页下载文档
文本预览下载声明
使用TFTP进行文件传输 (系统版本: Ubuntu 10.10或以上) 在嵌入式系统开发中,经常需要从主机上传送映像、文件等到目标机上。实现的方法有很多。如tftp,scp等。 TFTP(Trivial File Transfer Protocol)是用来下载远程文件的最简单的网络协议,它基于UDP协议而实现。 一、TFTP的建立 嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。我们要做的是在服务器端(即主机)上安装TFTP服务,并且正确地配置TFTP服务的路径和参数。 下面我尝试了两种搭建TFTP的方法,都实测成功。 1、安装tftp所需软件包: tftp有好几种版本,其中tftp和tftpd是最经典、最常用的。还有增强版,如atftp和atftpd、tftp-hpa和tftpd-hpa等。所以配置TFTP的方法也不唯一。 传统方法(xinetd): sudo apt-get install tftp sudo apt-get install tftpd sudo apt-get install xinetd tftp是客户端,作用是从别人的TFTP服务器端上传/下载东西。 tftpd是服务端,字母d代表daemon,作用是为别人提供TFTP服务,供别人上传/下载东西。 xinetd是inetd的扩展。inetd 服务器是一个专门管理入网连接的网络后台程序,xinetd现在已经取代inetd,它一个守护进程,用于处理对各种服务的请求。tftp是要用inetd来控制的。 另一种更简单的方法:tftp-hpa sudo apt-get install tftp-hpa sudo apt-get install tftpd-hpa tftp-hpa与tftp作用相当,但两者是冲突的,不能同时安装。tftpd-hpa与tftpd的关系同理。这种方法下,不需要inetd服务就可以。网上也有人同时装了xinetd,不仅需要配置,似乎还容易出问题。 2、创建TFTP目录 首先需要建立一个TFTP目录,以供上传和下载。当然也可以使用现有的目录。然后需要设定该目录的权限,决定是否能够下载和上传文件。对于日常使用,我们一般就将其权限设置为最高,为所有用户组都添加所有权限(读+写+执行=4+2+1=7): sudo mkdir /home/tftpboot cd /home sudo chmod 777 tftpboot –R 我们的TFTP目录为/home/example/tftp,其权限已经是最高。 3、修改配置文件 对于xinetd方法,要在/etc/xinetd.d/下,修改配置文件tftp。如果是第一次使用,没有这个文件,需要自己创建一个空文件。可以利用touch指令: cd /etc/xinetd.d touch tftp sudo gedit tftp 在打开的文件中输入以下内容: service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } socket_type:网络套接字类型,流或者数据包 protocol:IP 协议,通常是TCP或者 UDP user:运行进程的用户 ID,当前用户或root server:执行的完整路径 server_args: 传递给server的变量或值。前面的-s代表tftp参数,后面/home/tftpboot是TFTP的根目录,可以根据自己实际情况来修改地址,如/home/example/tftp。 对于tftp-hpa方法,不需要装inetd就能使用,只要修改tftpd-hpa相应的配置文件就可以。 sudo gedit /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=donghai TFTP_D
显示全部
相似文档