UBUNTU下TFTP服務器搭建

1.1      搭建tftp服務器

TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議),是一個基於UDP協議實現的用於在客戶機和服務器之間進行簡單文件傳輸的協議,適合於開銷不大、不復雜的應用場合。TFTP協議專門爲小文件傳輸而設計,只能從服務器上獲取文件,或者向服務器寫入文件,不能列出目錄,也不能進行認證。

在嵌入式Linux開發中,TFTP協議在很多場合都被用到,甚至是必不可少的,特別是在內核調試階段,在U-Boot下通過TFTP協議從服務器上加載內核並運行,既方便又快捷。

一般的發行版默認都沒有安裝TFTP服務以及TFTP服務器。TFTP服務依賴於網絡守護進程服務程序,可選擇安裝inetd或者升級版的xinetd,然後安裝tftp和tftp-server,接着修改或者創建/etc/xinetd.d/tftp配置文件,最後重啓xinetd,啓動TFTP服務。無論採用什麼發行版,TFTP服務器的安裝都是這樣的流程,只不過不同發行版的安裝命令不同而已,下面以ubuntu爲例進行說明。

安裝xinetd:

ky@ubuntu:~$ sudoapt-get install xinetd

       安裝tftp和tftpd:

ky@ubuntu:~$ sudoapt-get install tftp tftpd

或者安裝tftp的增強版本tftp-hpa:

ky@ubuntu:~$sudo apt-get install tftp-hpa tftpd-hpa

建立配置文件。建立/etc/xinetd.d/tftp文件,寫入如下內容:

service tftp

{

       socket_type        = dgram

        protocol      = udp

        wait           = yes

        user           = root

        server             =/usr/sbin/in.tftpd

       server_args        = -s /var/lib/tftpboot/

        disable        = no

        per_source         = 11

        cps            = 100 2

        flags          =IPv4

}

其中server_args設置的/var/lib/tftpboot目錄是tftp服務器的目錄,設置其訪問權限爲777:

ky@ubuntu:~$ sudochmod 777 /var/lib/tftpboot/

啓動或者重啓xinetd服務:

ky@ubuntu:~$ sudo/etc/init.d/xinetd start或者restart

本機測試。在/tftpboot目錄下創建一個ky文件,啓動另外一個終端,輸入:

ky@ubuntu:~$ tftp 127.0.0.1

tftp> get ky     #獲取ky文件

tftp> q                        #退出tftp

       在終端輸入ls命令,可以看到當前目錄下看到ftp獲取到的ky文件。

用開發板來驗證tftp服務器是否可用。啓動開發板,進入U-Boot命令行,用tftp命令加載tftp服務器中的文件,如:

U-Boot$ tftp80008000 zImage

ENET:auto-negotiation complete

ENET:Link status up

ENET:FULL DUPLEX

ENET:100MBase

MAC: 00:61:62:69:6e:67

TFTP from server 192.168.1.3; our IP address is192.168.1.5

Filename 'zImage'.

Load address: 0x80008000

Loading: #################################

done

Bytes transferred = 479927 (752b7 hex)

說明:

(1)使用開發板與虛擬機安裝的客戶系統進行TFTP通訊,需要將虛擬網卡設置爲Bridged模式,並建議使用靜態IP地址。

(2)如果以上設置都確認無誤,但tftp還是不成功,請檢查主機的防火牆是否已經關閉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章