在ubuntu10.04下搭建tftp服务器的血泪史(完美解决本机测试tftp localhost出现:tansfer:timed out)

  Ubuntu 10.04 下的tftp服务器搭建。(完美解决本机测试tftp localhost出现:tansfer:timed out)见文章末尾注意点

 

    tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统。
    上面这段话是抄的。
    我用tftp是因为我主机和arm开发板相连,tftp下载内核,nfs挂载文件系统。我之前是在虚拟机下ubuntu8.04里装的,用了很长时间,后来发现8.04太老了,软件源都不能更新了,于是装了10.04,双系统。装tftp还是按8.04的装的~~~居然有一阵也能用~~~~然后就不负众望的不能用了。
    现象: 
        TFTP from server 192.168.0.22; our IP address is 192.168.0.25
        Filename 'zImage'.
        Load address: 0x30008000
        Loading: T T T T T T T T T T 
        Retry count exceeded; starting again
    可悲的是,开始我不知道是Tftp的毛病,我看着上面提示觉得tftp已经启动,没启动的是nfs,于是我开始排查nfs,查了无数资料,找了不少网上给出的毛病总结,用了很多方式都证明nfs是好的。那么nfs是好的,那就是文件系统分有问题?反正busybox做文件系统也不是很烦,于是重做,仍然没用。查了大量资料发现说,nfs还要求客户端支持,即内核要支持,奇怪,我能用那阵也没动过内核什么特殊配置啊,即使找到相关配置,发现人家也是默认选上的。 那么我又想会不会是更新管理器(阿弥陀佛,思路终于从nfs转移开了)更新了什么不稳定的东西,这是很可能的哦。发帖子一问,果然有哥么提示说有可能更新了什么不稳定的东西,于是我把系统重装了一遍~~~当然还是不管。网络就是好啊,能查到大量资料,我查到说ubuntu的network优先无线服务,会把tftp和nfs端口给抢了。我看到这里一拍大腿,哎呀,可不就是嘛!我在家用无线上网,有线接板子,用哪个的时候把哪个网卡开开就好了。回到学校只能用有线,但是开机network以后一直
搜索无线服务,我把有线配置好了它都不管,无线搜索(我周围无线猫还特别多,NND)到了要密码,没有密码就直接显示没有网络连接,最后右击把“启用无线”去掉才好上网。想起这一节我几乎激动起来,再看看这哥么的解决方案,说“根本方法是到windows下杀死无线驱动进程”,翻了翻手头的书,介绍说ubuntu的无线驱动是把windows下驱动程序转换成linux能识别的,我琢磨把windows下无线驱动禁掉看看,系统切换禁掉,回头ubuntu开机来看,狗日的无线扇形标记还是欢快的亮着呢,一狠心,跑到windows下把无线驱动卸掉,再重启进来看,人家还闪着呢,于是我的脸绿了第七十八回。仔细想想,ubuntu可能已经“翻译并保存了”无线驱动,所以这样干事不行的。那能开机优先启动会挤占端口,那么让他开机不启动呢。一查,果然有!而且大把大把的有!于是我又激动了。添加个开机应用程序,把一坨代码敲入,然后开机一看,果然!“启用无线”被自动勾掉了!那赶快启动板子看看,哇哈哈哈.......没等我继续哈的时候,kermit把之前的提示很无情的重复出来了........那么!又胡思乱想自己瞎猜疑起来。结果是显而易见的。
      咱不敢有脾气,别说发脾气了,就是连心里都不敢有这个骚动。之前的血泪史说明,就是因为我毛毛糙糙,不仔细查资料就盲目转牛角尖,看到有解决方案不去了解原理只求操作步骤,不想清楚就动手,古人讲“谋定而后动”,真是真理啊。
      网络真是强大,查资料的时候会一些相关搜索信息,我这才注意到说ubuntu10.04下tftp的配置文件跟之前版本不一样.....乖乖,配置文件都不一样,我之前按照的是8.04的版本做的啊!那不要差的更多啊!搜索tftp在ubuntu10.04下安装,铺天盖地而来.... 虽然很郁闷tftp localhost的时候出现tranfser timed out.但是试了下板子居然成功挂载了,那久违的“***************”终于出现了。虽然板子成功了,但是本机测试失败,上网查了大量资料也没找到个确切答案。
    
1.安装
sudo apt-get install tftpd-hpa tftp-hpa

2.配置
tftp-hpa 的配置文件為 /etc/default/tftpd-hpa

sudo gedit /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" //这里是你的tftpd-hpa的服务目录
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"        //这里是选项

注意:如果是在10.04以下的版本用下面的配置

tftp-hpa 的配置文件为 /etc/default/tftpd-hpa

 RUN_DAEMON="yes" 

OPTIONS="-l -c -s /tftpboot"

3.启动服务

sudo service tftpd-hpa restart



4.test测试

cd /tftpboot

vim test.txt //随便输入一些东西

 cd ~/

 tftp localhost

get test.txt

最后看看当前目录有test.txt的文件不?
同理!把当前目录下的一个文件put xxxx.???,在去看看/tftpboot目录有xxxx.??这个文件不?
//tftp命令
rftp退出:quit(q)

----------------------------------------------------------------------

显而易见,上面这些步骤是转来的。

但是结合我的实际经验,还有几个可能要注意 的地方


 1.无线网络的干扰
       见我这篇blog:   http://blog.csdn.net/c05170519/archive/2011/02/25/6206717.aspx.

  2.删除之前配置文件

         以前的配置文件(就是安装旧的步骤生成到的)也删除,比如(/etc/xinet.d/tftp)造成什么影响不清楚,
但是我是删了它才行的,而且它本就是垃圾了。

  3.本机测试tftp localhost出现:tansfer:timed out
        我在网上没找到实际操作步骤,很多人只是说tftp服务没启动,但是有可能我们restart()无数遍也没用,
而且查看状态明明是启动的:

linux@ubuntu:~$ sudo service tftpd-hpa status

tftpd-hpa start/running, process 1287

       但是如果启动板子可能会成功哦 。网上也没个说法。但是我反复实验发现:把tftp localhost改成回环的
tftp 127.0.0.1或者你现在的IP地址:tftp 10.1.13.111 就可以了。不仅get file成功,put file也不需要别人
说的先要在目标文件夹下建个同名0字节文件,直接就传过去了。
         当然,本文中提到的其他注意点最好也要排除,如果这些前提问题不排除,就有可能是tftp本身的问题。
 
4. tftp目录的权限和所有者

   权限 sudo chmod -R 777 /tftpboot  一定要设定,-R是递归把文件下所有文件都改掉
   所有者sudo chown linux(非根用户) /tftpboot  貌似不要改,我在成功后改成root用户也可以







 最后留下我的QQ:745826722  欢迎骚扰!







你可能感兴趣的:(在ubuntu10.04下搭建tftp服务器的血泪史(完美解决本机测试tftp localhost出现:tansfer:timed out))