首頁 > 軟體

Linux tftp命令使用詳解:在本機與tftp伺服器之間使用TFTP協定傳輸檔案

2020-06-16 18:08:56

tftp命令用在本機和tftp伺服器之間使用TFTP協定傳輸檔案。

TFTP是用來下載遠端檔案的最簡單網路協定,它其於UDP協定而實現。嵌入式linux的tftp開發環境包括兩個方面:一是linux伺服器端的tftp-server支援,二是嵌入式目標系統的tftp-client支援。因為u-boot本身內建支援tftp-client,所以嵌入式目標系統端就不用設定了。下面就詳細介紹一下linux伺服器端tftp-server的設定。

語法

tftp(選項)(引數)

選項

-c:指定與tftp伺服器連線成功後,立即要執行的指令;
-m:指定檔案傳輸模式。可以是ASCII或者Binary;
-v:顯示指令詳細執行過程;
-V:顯示指令版本資訊。

引數

主機:指定tftp要聯機的tftp伺服器的ip地址或主機名。

範例

1、安裝tftp伺服器

需要安裝xinetd、tftp和tftp-server 3個軟體

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

yum install xinetd
yum install tftp
yum install tftp-server

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

rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
rpm -ivh tftp-0.48-3.fc9.i386.rpm
rpm -ivh tftp-server-0.48-3.fc9.i386.rpm

2、設定tftp伺服器

修改/etc/xinetd.d/tftp檔案,將其中的disable=yes改為disable=no。主要是設定TFTP伺服器的根目錄,開啟服務。修改後的檔案如下:

service tftp

{
socket_type          =dgram
protocol              =udp      wait                  =yes
user                  =root
server                =/usr/sbin/in.tftpd
server_args          =-s  /home/mike/tftpboot -c
disable              =no
per_source            =11
cps                  =100 2
flags                =IPv4
}


說明:修改項server_args= -s <path> -c,其中<path>處可以改為你的tftp-server的根目錄,引數-s指定chroot,-c指定了可以建立檔案。

3、啟動tftp伺服器並關閉防火牆

/etc/init.d/iptables stop        //關閉防火牆
sudo /sbin/service xinetd start

service xinetd restart
/etc/init.d/xinetd start

看到啟動[OK]就可以了。

4、檢視tftp服務是否開啟

netstat -a | grep tftp

顯示結果為udp 0 0 *:tftp *:*表明服務已經開啟,就表明tftp設定成功了。

5、tftp使用

複製一個檔案到tftp伺服器目錄,然後在主機啟動tftp軟體,進行簡單測試。

tftp 192.168.1.2
tftp>get <download file>

tftp>put <upload file>
tftp>q

6、tftp命令用法如下

tftp your-ip-address

進入TFTP操作:

connect:連線到遠端tftp伺服器
mode:檔案傳輸模式
put:上傳檔案
get:下載檔案
quit:退出
verbose:顯示詳細的處理資訊
tarce:顯示包路徑
status:顯示當前狀態資訊
binary:二進位制傳輸模式
ascii:ascii 傳送模式
rexmt:設定包傳輸的超時時間
timeout:設定重傳的超時時間
help:幫助資訊
? :幫助資訊

7、如果老是出現“AVC Denial, click icon to view”的錯誤,並不能傳輸檔案,需要作如下修改

修改/etc/sysconfig/selinux,將SELINUX設定為disable,使用命令setenforce 0讓selinux組態檔生效。

8、Busybox中tftp命令的用法

命令格式為:

tftp [option] ... host [port]

如果要下載或上傳檔案的話是一定要用這些option的。

-g 表示下載檔案 (get)
-p 表示上傳檔案 (put)
-l 表示本地檔名 (local file)
-r 表示遠端主機的檔名 (remote file)

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

tftp -g -r embedexpert 192.168.1.2


IT145.com E-mail:sddin#qq.com