tftpd-hpa 是一個功能增強的tftp伺服器。它提供了很多tftp的增強功能,它已經被移植到大多數的現代unix系統。
1.安裝
sudo apt-get install tftpd-hpa tftp-hpa
2.配置
tftp-hpa 的配置檔案為 /etc/default/tftpd-hpa
sudo gedit /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
tftp_username="tftp"
tftp_directory="/tftpboot" //這裡是你的tftpd-hpa的服務目錄
tftp_address="0.0.0.0:69"
tftp_options="-l -c -s"
//這裡是選項
注意:如果是在10.04以下的版本用下面的配置
tftp-hpa 的配置檔案為 /etc/default/tftpd-hpa
/////////////////////////////////////////////////////////////////////////////////
檢查tftp是否已經安裝:netstat -a | grep tftp 若出現:
udp 0
0 *:tftp 則說明已經安裝,否則沒有。
1、安裝相關軟體包
apt-get install tftpd (服務端)
apt-get install tftp (用戶端)
apt-get install xinetd
2、建立配置檔案
cd /etc/xinetd.d/
vi tftp
輸入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = ipv4
}
存盤退出
3、建立tftp服務檔案目錄
mkdir /tftpboot
4、從新啟動服務
/etc/init.d/xinetd restart
安裝完成!測試方法:
在/tftpboot 目錄下随便放個檔案abc
然後 運作tftp 192.168.123.202 進入tftp指令行
輸入get abc 看看是不是能把檔案下下來,如果可以就可以了,也可以put 檔案上去。
檢查tptp是否打開:chkconfig --list 如果沒有打開,則用這個指令也可以打開:chkconfig tftp on
或者ps -a | grep tftp,看是否有tftpd的服務~
無意間看到這篇文章,覺得寫的也挺好的,就一起貼在這裡了~
原文位址:http://blog.csdn.net/wzyhb123456789/archive/2010/08/24/5835262.aspx
原文:
現在在研究smartarm3250開發闆,其中搭建liunx平台時需要使用tftp傳輸linux核心和檔案系統到開發闆,是以需要在電腦的 linux下先搭建一個tftp服務,通過看書和上網找資料,發現一些問題和需要注意的地方,而且很多東西是不适合ubuntu的,是以總結一下,實作說 明,下面的操作在ubuntu10.04上是運作無誤的,在其他作業系統上就不敢保證了。
一、安裝tftp所需的軟體。首先需要安裝tftp-hpa,tftpd-hpa,前者是用戶端,後者是服務程式,有些網站上說是安裝tftp和 tftpd,我實驗了一下,至少在我這是沒有實作後面的tftp傳輸的,而tftp-hpa與tftp是沖突的,tftpd-hpa與tftpd是沖突 的,而帶有-hpa的這兩個是最新的,是以我就安裝了這兩個。在終端下輸入 sudo apt-get install tftp-hpa tftpd-hpa,安裝tftp-hpa和tftpd-hpa。然後還需要安裝xinetd,按照網上的說法,這是一個守護程序,用于處理對各種服務的
請求,在終端下輸入 sudo apt-get install xinetd,安裝好xinetd。//如果之前安裝了tftp和tftpd,這時候系統會自動解除安裝它們~
二、配置相關服務檔案。進入根目錄下的etc檔案夾(cd /etc/),首先看目錄中有沒有一個xinetd.conf檔案,如果沒有則建立一個,有的話檢視内容,看是否與下面的一緻,若不一緻則修改,内容如下:
# simple configuration file for xinetd
#
# some defaults, and include /etc/xinetd.d/
defaults
{
# please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. the default is the following :
# log_type = syslog daemon info
includedir /etc/xinetd.d
然後進入xinetd.d檔案夾(cd xinetd.d),檢視是否有一個tftp檔案,如果沒有就建立一個,如果有的話就檢視内容是否與下面的一緻,不一緻則修改,内容如下:
service tftp
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpboot
log_on_success += pid host duration
log_on_failure += host
}
其中server_args一行是配置伺服器的檔案存放的位置,就是進行tftp傳輸的時候,都是從該檔案夾中搜尋檔案的,上文中的/home/tftpboot是我自己設定的,你也可以設定成任意的地方。
三、修改所需檔案夾的權限。需要修改的檔案夾也就是上一步提到的那個伺服器檔案存放的檔案夾,以我的配置檔案為例,在/home下建立一個檔案夾 (sudo mkdir /home/tftpboot),然後把它可以設定成通路權限最寬松的(sudo chmod 777 /home/tftpboot),也可以設定成合适的權限。
四、重新啟動服務。這也是我經常疏忽的一步,當配置好tftp的配置檔案後,需要重新啟動一下xinetd,在終端中輸入 sudo /etc/init.d/xinetd reload,重新加載一下程序,再輸入 sudo /etc/init.d/xinetd restart,重新開機服務。記住,每次修改完配置檔案後,都需要重新啟動一下服務。
通過以上四步就可以建立好tftp伺服器了,可以在本地先進行一下測試。還是以我的配置檔案為例,首先在/home/tftpboot中建立一個檔案 file,然後在其中随便輸入内容;然後進入一個不是/home/tftpboot的目錄下(原因是避免混淆,因為在擷取檔案是,預設是将想要擷取的檔案 存放在目前目錄下的);再在終端中輸入 sudo tftp localhost,進入tftp指令符下(可以在其中輸入help檢視指令和指令的作用),輸入 get
file,如果沒有任何提示,就說明傳輸成功了,然後輸入 q 退出tftp指令符,在目前目錄下就可以看到一個file檔案,内容是與開始建立的那個file的内容是一緻的。同樣也可以在tftp指令符中輸入 put xx,把xx檔案上傳到伺服器檔案夾中。如果一切ok,那就麼一個可用的tftp伺服器就順利搭建成功了。
對于上面的測試是針對本地測試的,如果想要對其他電腦或者開發闆進行tftp傳輸,則在終端輸入 sudo tftp xxx(即目标電腦或目标開發闆的ip位址),而且還要關閉ubuntu自帶的防火牆(書上說的),我是直接把防火牆給解除安裝了(sudo apt-get remove iptables),因為我覺得對于linux來說,防火牆可能沒什麼需要把,至少目前為止我還沒有受到過攻擊。。。當然,想要與其他區域網路内的電腦或開 發闆互聯進行傳輸,還要将這些機器的ip改到同一個段内。
好了,通過以上的步驟,就可以通過tftp協定,在電腦和開發闆之間進行檔案傳輸了,目前的目的就是下載下傳linux核心和檔案系統到開發闆。如果有朋友發 現了我的不足,都可以給我提出來,我們也可以進行讨論。不過還要強調一點,我的這些配置都是針對于ubuntu的,對于其他的系統可能會有所出入的。
這個時候,如果出現error code 1: file not found,那麼就參考下面這篇文章~
原文位址:http://hi.baidu.com/571209683/blog/item/77b8a91ddaba71c4a6866911.html
原文://隻摘了對上面錯誤有幫助的部分哈~
tftp_directory="/tftpboot" //這裡是你的tftpd-hpa的服務目錄 //可以改成你想要的那個tftpboot
tftp_options="-l -c -s" //這裡是選項
現象一:
tftp> get file
transfer timed out.
原因:
tftpd服務沒有啟動
現象二:
error code 2: only absolute filenames allowed
在/etc/xinetd.d/tftpd中設定的server_args為/etc/default/tftpd-hpa
現象三:
tftp> put file
error code 1: file not found
指定的檔案不存在;或tftpd啟動參數中沒有指定-c選項,允許上傳檔案~上傳的時候一定要確定檔案先存在于上傳~
現象4:
上傳檔案,權限不夠,chmod + 777 tftpboot ,重新服務。
參考了很多文章,就不一一列出了~
希望對别人有幫助~