在嵌入式调试时会经常用到TFTP协议,用过它下载内核或者文件系统
这里跟大家分享以下tftp在fedora下的简约配置,希望对大家有用
1.TFTP协议简介
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,
提供不复杂、开销不大的文件传输服务。
TFTP基于UDP,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。
与FTP相比,TFTP的大小要小的多,TFTP是用来下载远程文件的最简单网络协议,它基于UDP协议而实现。
使用的是UDP的69端口 。
在fedora中基于xinetd服务
2. 检查是否安装tftp服务包
[root@tiany ~]# rpm -qa | grep tftp
tftp-server-0.49-7.fc14.i686
tftp-0.49-7.fc14.i686
如果没有安装可以通过yum等方式安装
3.修改配置文件
默认情况下TFTP服务是禁用的。
修改文件/etc/xinetd.d/tftp,主要是设置TFTP服务器的根目录,开启服务等
修改后的配置文件如下:
[root@tiany tftpboot]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpboot -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
这里指定/home/tftpboot 为tftp服务器的根目录
参数-s指定chroot,-c指定了可以创建文件。
4.创建tftp根目录,关闭防火墙,启动tftp-server
[root@tiany ~]# mkdir /home/tftpboot
[root@tiany ~]# chmod -R 777 /home/tftpboot
[root@tiany ~]# /etc/init.d/iptables stop
[root@tiany ~]# service xinetd restart
重启xinetd服务
因为TFTP服务受控与xinetd服务
xinetd是管服务的服务,它是不开端口的。验证TFTP的69端口是否开启:
[root@tiany tftpboot]# netstat -nlp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 15807/xinetd
可以看到69端口已经打开,服务启动正常。
5.测试tftp服务器
[root@tiany ~]#touch /home/tftpboot/test.txt
[root@tiany ~]# tftp 172.20.62.26 // 自己的IP
tftp>get test.txt
tftp>q
[root@tiany ~]# ll | grep test.txt
-rw-r--r-- 1 root root 0 Mar 29 18:29 test.txt
tftp服务器工作正常,也可以通过put传输文件
在uboot移植、嵌入式linux调试使用都很方便