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:~$ sudo apt-get install xinetd
?安裝tftp和tftpd:
ky@ubuntu:~$ sudo apt-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/tftpboot/ -c
??????? disable??????? = no
??????? per_source???? = 11
??????? cps??????????? = 100 2
??????? flags????????? = IPv4
}
說明:修改項server_args= -s???? <path>??? -c,其中<path>處可以改為你的tftp-server的根目錄,參數-s指定chroot,-c指定了可以創建文件。
其中server_args設置的/var/tftpboot目錄是tftp服務器的目錄,設置其訪問權限為777:
ky@ubuntu:~$ sudo mkdir -pv? /var/tftpboot/
ky@ubuntu:~$ sudo chmod 777 /var/tftpboot/
(重啟Linux系統)
啟動或者重啟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$ 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還是不成功,請檢查主機的防火墻是否已經關閉。
/etc/init.d/iptables stop??????? //關閉防火墻
sudo ufw disable ? ? ? ?//關閉防火墻(ubuntu)
?
PS:
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
轉載于:https://www.cnblogs.com/Charles-Zhang-Blog/archive/2013/02/05/2892681.html
總結
以上是生活随笔為你收集整理的ubuntu下搭建tftp服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【好程序员笔记分享】C语言之break和
- 下一篇: Ubuntu下用snap7与西门子通信