tftp服务器环境搭建-----笔者亲测,可以成功

2019-07-13 07:58发布

    嵌入式Linux中,有三个比较常用的服务,一个是tftp服务,一个是nfs服务,还有一个是ssh服务。     tftp服务主要是在上位机编译好程序后,用tftp命令下载到开发板上运行,因此用的频率非常高。     相信很多朋友也一样,网上找的资料一大推,而且手法不一样,实验下来也很多不成功,我和大多数朋友一样,昨天找了一个下午,一直到现在才弄好,Linux方面的资料是很多,但是很杂,很乱:     所以我呼吁,广大朋友们,每发表一个技术贴,一定要亲自测试可以通过,避免灌水现象的发生,而笔者每发表一个技术贴,一定也是经过测试可以通过,否则不会发,希望营造一个博而精的学习Linux的氛围!     -------------------------------------原文如下----------------------------------------------------------------------     ubuntu 下tftp服务器配置笔记(2012-08-03 8:52)转载标签: 杂谈 分类: Ubuntu  
首先说明:在ubuntu10.4下,安装的是tftp-hpa和tftpd-hpa而不是tftp和tptpd(早期的版本是)。因为,通过网上搜索到的帖子,安装tftp和tptpd后,如果在本地测试的话是OK的。而换台电脑,真正的远程通过tftp来get文件或put文件。则总是显示Transfor time out。但是,通过 $ netstat -nlp命令查看,tftpd的确已经启动了呀。不知何解,故放弃tftp和tftpd。


1.安装tftp的服务端和客户端:
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa   ;安装tftp客户端


2.安装xinetd
sudo apt-get install xinetd:支持对tcp、udp、RPC服务的东东

-----------------------------------
机器背景:
用户名:et ip地址:192.168.10.101 -----------------------------------
3.在/home/et/下建立tftpboot目录,作为服务器的目录,这里不建议放在"/"下,因为要访问文件需要root权限,下载时候比较麻烦

 mkdir /home/et/tftpboot
释放权限:
sudo chmod 777 /tftpboot


4.配置TFTP服务器:


sudo gedit /etc/default/tftpd-hpa


打开tftpd-hpa文件,进行编辑。


其内容为:


# /etc/default/tftpd-hpa


TFTP_USERNAME="tftp"                    ####tftp的名字


#TFTP_DIRECTORY="/var/lib/tftpboot"     #######原来的共享路径


TFTP_DIRECTORY="/home/et/tftpboot"         #######我自己更改的路径


TFTP_ADDRESS="0.0.0.0:69"


#TFTP_OPTIONS="--secure"                   ####可以查看mantftpd,看各种参数的意义。


#这个目录要改为你自己的TFTP根目录~~~


TFTP_DIRECTORY="/home/et/tftpboot"


#参数设置看个人需要,也可以改成这样,我就是的


TFTP_OPTIONS="-l -c -s"


5.重启xinetd服务
sudo /etc/init.d/xinetd restart


6.重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart


7.这样就可以了,在/home/et/tftpboot中建立一个文件,这个文件是用来下载测试的
touch aaa


切换到另一个目录中(如/home/et/test),然后
tftp localhost(或者是自己的IP)
tftp>get haha
tftp>q

这样就能在当前目录下(/home/et/test)get到 aaa文件了(put是上传),表示tftp服务成功


如果 get的时候显示 time out,应该是服务没有启动
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart
这样应该就可以了 
遇到的问题:


#tftp 192.168.10.101


#get zImage


Error code 0: Permission denied


原因:zImage 权限太高


解决办法:


$cd /home/et/tftpd


$ls -l zImage


-rwx------ 1 et et 8 2012-08-03 9:06  zImage


$chmod 777 zImage


这样就可以访问该文件