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 /var/lib/tftpboot/ -c(添加上傳功能)
 
 
 
修改/etc/sysconfig/selinux文件(其實就是setenforce 0 關閉安全系統)
 
SELINUX=disabled  (系統默認是enforcing)要改成disabled
 
 
 
chmod  -R 777 /var/lib/tftpboot  修改/tftpboot文件夾的權限
 
 
啓動  service xinetd restart

chkconfig tftp on
 
查看tftp服務是否開啓:
 chkconfig --list |grep tftp
netstat -a | grep tftp
把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件複製到目錄/tftpboot 下
 
 
 
在目錄/home/x(目錄名)下:
 
啓動tftp服務器 

sudo in.tftpd -l /tftpboot

chkcofig tftp on

/etc/init.d/xinted start

 
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(文件名)

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