在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  歡迎騷擾!







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章