參考一:
ubuntu 12.10上安裝tftp-hpa
1)安裝tftp-hpa,tftpd-hpa, xinetd
sudo apt-get install tftp-hpa tftpd-hpa xinetd
2) 在/etc/xinetd.d/下創建並配置tftp文件
sudo vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -c
disable = no
per_source = 11
cps = 100 2
}
-c 用於開啓上傳功能。
3)配置tftpd-hpa
sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -c -s"
4)設置tftpboot文件夾的權限
sudo chmod a+wr /var/lib/tftpboot
5)重啓xinetd服務
sudo /etc/init.d/xinetd restart
6)如果還有問題重啓電腦。
如果出現Error code 0: Permission denied, 是因爲tftpboot文件夾沒有權限,或者是要上傳和下載的文件沒有權限。
如果出現Error code 1: File not found, 是因爲tftp配置文件中沒有加-c。
參考二:
1. 安裝
$ apt-get install tftp-hpa tftpd-hpa
2. 建立目錄
$ mkdir /tftpboot # 這是建立tftp傳輸目錄。
$ sudo chmod 0777 /tftpboot
$ sudo touch test.txt # test.txt文件最好輸入內容以便區分
3. 配置
$ sudo vi /etc/default/tftpd-hpa3.
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"# 這裏是你的tftpd-hpa的服務目錄,這個想建立在哪裏都行
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"# 這裏是選項,-c是可以上傳文件的參數,-s是指定tftpd-hpa服務目錄,上面已經指定
4. 重啓服務
$ sudo service tftpd-hpa restart # 啓動服務,這裏要注意,採用的獨立服務形式。
5. 測試
$ tftp 127.0.0.1
tftp>get test.txt
tftp>put test1.txt
tftp>q
參考三:
ubuntu 12.10上安裝tftpd-hpa
1)安裝tftp-hpa,tftpd-hpa
sudo apt-get install tftp-hpa tftpd-hpa
tftp-hpa是client,tftpd-hpa是server
2) 配置tftpd-hpa
sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/zc/tftproot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS=" -l -c -s"
3)設置tftpboot文件夾的權限
sudo chmod 777 /home/zc/tftproot
4)重啓tftpd-hpa服務
sudo servicetftpd-hpa restart
ps -ef |grep tftp能看到tftpd-hpa進程
5)測試
在tftproot下建立a.txt
在其他目錄下(注意是當前用戶可以操作的目錄,否則get是會提示permission denied):
#tftp 127.0.0.1或tftp localhost
tftp>get a.txt //下載tftproot中的文件
tftp>put b.txt //上傳到tftproot中
tftp>quit
參考四:
1.安裝tftp-server
sudo apt-get install tftpd-hpa
sudo apt-get install tftp-hpa(如果不需要客戶端可以不安裝)
|
tftp-hpa是客戶端
tftpd-hpa是服務器端
2.配置TFTP服務器
sudo vim /etc/default/tftpd-hpa
|
將原來的內容改爲:
TFTP_USERNAME=”tftp”
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_DIRECTORY=”tftp根目錄”
TFTP_OPTIONS=”-l -c -s”
|
3.重新啓動TFTP服務
sudo service tftpd-hpa restart
|
4.測試
root@xf: /home
tftp> get test .txt
Received 7 bytes in 0.1 seconds
tftp> put test .txt
Sent 10 bytes in 0.0 seconds
tftp> quit
|
參考五:
因調試6410開發板,需在ubuntu12.04下搭建tftp服務器,在網搜了多個ubuntu下配置tftp的文件,發現都有或多或少的問題,如下是我的配置過程,已驗證通過可供參考!!!
1)安裝tftp-hpa,tftpd-hpa, xinetd
~$ sudo apt-get install tftp-hpa , tftpd-hpa, xinetd
2) 在/etc/xinetd.d/下創建並配置tftp文件
~$ sudo vim /etc/xinetd.d/tftp
1 service tftp
2 {
3 socket_type = dgram
4 protocol = udp
5 wait = yes
6 user = root
7 server = /usr/sbin/in.tftpd
8 server_args = -s/tftpboot -c
9 disable = no
10 per_source = 11
11 cps =100 2
12 flags = IPv4
13 }
-c 用於開啓上傳功能。
3)配置tftpd-hpa
~$ sudo vim /etc/default/tftpd-hpa
1 #/etc/default/tftpd-hpa
2
3 TFTP_USERNAME="tftp"
4 TFTP_DIRECTORY="/tftpboot"
5 TFTP_ADDRESS="0.0.0.0:69"
6 TFTP_OPTIONS="-l -c -s"
其中/tftpboot爲 tftp共享目錄
4) 修改xinetd.conf文件
~$ sudo vim /etc/xinetd.conf
defaults
6 {
7
8 # Please note that you need a log_type line to be able to use log_on_success
9 # and log_on_failure. The default is the following :
10 # log_type = SYSLOG daemon info
11
12 }
13
14 #includedir /etc/xinetd.d
15 tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
5) 重啓tftp服務並測試
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
6)本機測試
在/tftpboot下創建測試文件love
#cd /tftpboot
#echo xuguodongaigongxia > love
#chmod 777 love
測試一下 tftp服務:
重新打開一個終端
#tftp 127.0.0.1
tftp>get love
tftp>q
#ls
退出後,查看當前目錄,發現love文件已在當前目錄。
如果上述設置還不行的話,那麼就要把selinux禁用掉:
sudo gedit /etc/selinux/config //如果沒有selinux/config這個文件,則創建。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
把上面的SELINUX=enforcing 改爲:SELINUX=disable 禁用SeLinux
然後reboot重啓PC
參考六:
第1步:
安裝tftp所需的軟件。首先需要安裝tftp-hpa,tftpd-hpa,前者是客戶端,後者是服務程序,在終端下輸入 sudo apt-get install tftp-hpa tftpd-hpa,安裝tftp-hpa和tftpd-hpa。然後還需要安裝xinetd,在終端下輸入 sudo apt-get install xinetd,安裝好xinetd。
第2步:
配置相關服務文件。進入根目錄下的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 ont-size: 12pt; "> # log_type = SYSLOG daemon info
}
includedir /etc/xinetd.d
第3步:
配置tftp服務器
命令:
sudo vim /etc/default/tftpd-hpa
將內容修改成
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
#這是你tftp服務器的工作目錄,自行修改,注意,在新建工作目錄時,最好修改其權限爲777,命令sudo chmod 777 /tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
第4步:
然後進入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 /tftpboot
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}
其中server_args一行是配置服務器的文件存放的位置,就是進行tftp傳輸的時候,都是從該文件夾中搜索文件的
第5步:
修改所需文件夾的權限。需要修改的文件夾也就是上一步提到的那個服務器文件存放的文件夾,以我的配置文件爲例,創建一個文件夾(sudo mkdir /tftpboot),然後把它可以設置成訪問權限最寬鬆的(sudo chmod 777 /tftpboot),也可以設置成合適的權限。
第6步:
重新啓動服務。sudo service tftpd-hpa restart,這也是我經常疏忽的一步,當配置好tftp的配置文件後,需要重新啓動一下xinetd,在終端中輸入 sudo /etc/init.d/xinetd reload,重新加載一下進程,再輸入 sudo /etc/init.d/xinetd restart,重啓服務。記住,每次修改完配置文件後,都需要重新啓動一下服務。
執行次序:
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
總結:
通過以上四步就可以建立好tftp服務器了,可以在本地先進行一下測試。還是以我的配置文件爲例,首先在/tftpboot中新建一個文件file,然後在其中隨便輸入內容;然後進入一個不是/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的,對於其他的系統可能會有所出入的。