参考一:
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的,对于其他的系统可能会有所出入的。