1. 程式人生 > >TFTP伺服器搭建

TFTP伺服器搭建

搬運文章備用,感謝原作者caoshunxin01。

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:

[email protected]:~$ sudo apt-get install xinetd
 安裝tftp和tftpd:
[email protected]:~$ sudo apt-get install tftp tftpd
或者安裝tftp的增強版本tftp-hpa:
[email protected]:~$ 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/tftpboot/
        disable        = no
        per_source     = 11
        cps            = 100 2
        flags          = IPv4
}
其中server_args設定的/var/tftpboot目錄是tftp伺服器的目錄,設定其訪問許可權為777:
[email protected]
:~$ sudo mkdir -pv  /var/tftpboot/
[email protected]:~$ sudo chmod 777 /var/tftpboot/
啟動或者重啟xinetd服務:
[email protected]:~$ sudo /etc/init.d/xinetd start或者restart
本機測試。在/tftpboot目錄下建立一個ky檔案,啟動另外一個終端,輸入:
[email protected]:~$ tftp 127.0.0.1
tftp> get ky     #獲取ky檔案
tftp> q                        #退出tftp
  在終端輸入ls命令,可以看到當前目錄下看到ftp獲取到的ky檔案。
用開發板來驗證tftp伺服器是否可用。啟動開發板,進入U-Boot命令列,用tftp命令載入tftp伺服器中的檔案,如:
U-Boot$ tftp 80008000 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 is 192.168.1.5
Filename 'zImage'.
Load address: 0x80008000
Loading: #################################
done
Bytes transferred = 479927 (752b7 hex)
說明:
(1)使用開發板與虛擬機器安裝的客戶系統進行TFTP通訊,需要將虛擬網絡卡設定為Bridged模式,並建議使用靜態IP地址。
(2)如果以上設定都確認無誤,但tftp還是不成功,請檢查主機的防火牆是否已經關閉。
---------------------  
作者:caoshunxin01  
來源:CSDN  
原文:https://blog.csdn.net/caoshunxin01/article/details/79355127