Linux下TFTP服務的安裝、配置和操作


    TFTP是用來下載遠程文件的最簡單網絡協議,它其於UDP協議而實現。嵌入式linux的tftp開發環境包括兩個方面:一是linux服務器端的tftp-server支持,二是嵌入式目標系統的tftp-client支持。因為u-boot本身內置支持tftp-client,所以嵌入式目標系統端就不用配置了。

    xinetd(eXtended InterNET services daemon)是新一代的網絡守護進程服務程序,又叫超級INTERNET服務器,經常用於管理多種輕量型INTERNET服務,xinetd提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全。

 

安裝tftp服務器:

需要安裝xinetd、tftp、tftp-server3軟件

1、如果能上網,通過yum安裝:

sudo yum install xinetd

sudo yum install tftp

sudo yum install tptp-server

2、如果不能上網,可以直接安裝提供的rpm包:

sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm

sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm

sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm

 

配置tftp服務器:

修改/etc/xinetd.d/tftp文件

disable=yes 改為  disable=no

server_args=-s /var/lib/tftpboot  改為  server_args=-s /tftpboot/ -c

 

修改/etc/sysconfig/selinux文件

SELINUX=disabled   (系統默認是enforcing)要改成disabled

 

chmod 777 /tftpboot  修改/tftpboot文件夾的權限

 

啟動  service xinetd restart

 

查看tftp服務是否開啟:

netstat -a | grep tftp

顯示結果為  udp    0   0 *:tftp     *:*  表示服務已經開啟,tftp配置成功

 

把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件復制到目錄/tftpboot 下

 

在目錄/home/x(目錄名)下:

啟動tftp服務器 

sudo in.tftpd -l /tftpboot

tftp 192.168.0.26(本機的IP地址)

tftp>get a(文件名)  在服務器上下載文件

tftp>put a(文件名)  上傳文件到服務器上

tftp>q             退出

 

啟動tftp服務器:

service tftpd-hpa stop      停止tftp服務器

service tftpd-hpa start     開啟tftp服務器

service tftpd-hpa stutus    查看tftp運行狀態

service tftpd-hpa restart   重啟tftp服務器

 

(注意:文件傳輸后文件的權限會發生變化)

 

進入TFTP操作:

connect:連接到遠程tftp服務器

mode:文件傳輸模式

put:上傳文件

get:下載文件

quit:退出

verbose:顯示詳細的處理信息

tarce:顯示包路徑

status:顯示當前狀態信息

binary:二進制傳輸模式

ascii:ascii 傳送模式

rexmt:設置包傳輸的超時時間

timeout:設置重傳的超時時間

help:幫助信息

? :幫助信息

 

-g 表示下載文件 (get)

-p 表示上傳文件 (put)

-l 表示本地文件名 (local file)

-r 表示遠程主機的文件名 (remote file)

例如,要從遠程主機192.168.1.2上下載 embedexpert,則應輸入以下命令:

tftp -g -r embedexpert 192.168.1.2

 

出現的一些問題及原因(解決方法):

1、Transfer time out.     

  tftpd服務沒有啟動

2、Error code 0:Permission denied

    可能是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默認的都是開啟的,現在要關掉它。

    修改文件/etc/sysconfig/selinux,設定SELINUX=disabled,然后重啟電腦即可

  或者  執行命令system-config-securitylevel打開“安全級別配置”對話框,將SELinux(S)選項中“強制”改為“允許”

3、Error code 1:File not found

    指定的文件夾不存在;或tftpd啟動參數中沒有指定-c選項,允許上傳文件

4、Error code 2:Only absolute filenames allowed

  /etc/xinetd.d/tftpd文件的設置沒設好,只需要將server_args=  改為你自己設定   的服務器文件夾就行了

5、Error code 2:Access violation

    上傳的文件要有相應的可讀寫(覆蓋)的權限才能上傳,要對文件的權限進行修改  chmod 777 a(文件名)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM