ubuntu10.04 安裝配置tftp服務
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
RUN_DAEMON="yes"
OPTIONS="-l -c -s /tftpboot" 3.啟動服務 sudo service tftpd-hpa restart 4.test測試 cd /tftpboot vim test.txt //隨便輸入一些東西 cd ~/ tftp localhost get test.txt 最後看看當前目錄有test.txt的文件不? 同理!把當前目錄下的一個文件put xxxx.???,在去看看/tftpboot目錄有xxxx.??這個文件不?
/////////////////////////////////////////////////////////////////////////////////
檢查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的服務~
無意間看到這篇文章,覺得寫的也挺好的,就一起貼在這裏了~
原文地址:https://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文件,如果沒有則新建一個,有的話查看內容,看是否與下麵的一致,若不一致則修改,內容如下:
#
# 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文件,如果沒有就新建一個,如果有的話就查看內容是否與下麵的一致,不一致則修改,內容如下:
{
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,那麼就參考下麵這篇文章~
原文地址:https://hi.baidu.com/571209683/blog/item/77b8a91ddaba71c4a6866911.html
原文://隻摘了對上麵錯誤有幫助的部分哈~
sudo gedit /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" //這裏是你的tftpd-hpa的服務目錄 //可以改成你想要的那個tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" //這裏是選項
注意:如果是在10.04以下的版本用下麵的配置
tftp-hpa 的配置文件為 /etc/default/tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -c -s /tftpboot" //記得要重啟~ 如果還是上麵錯誤,就先把文件複製到/var/lib/tftpboot,再試下,如果成功,就要重啟係統上麵的配置才生效,以後就可以用你改得那個tftpboot了~如果還是不成功,我也米辦法了~ 到底上麵2篇文章誰更準確,我也弄不清,等高手來解釋吧~ 再加上我整理的一些常見問題,關於tftp的就全了差不多~
現象一:
tftp> get file
Transfer timed out.
原因:
tftpd服務沒有啟動
現象二:
tftp> get file
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 ,重新服務。
參考了很多文章,就不一一列出了~
希望對別人有幫助~
最後更新:2017-04-03 16:48:40