一. TFTP的定义
TFTP(Trivial File Transfer Protocol),即简单文件传输协议。从名称上可以看出,TFTP适合传送“简单”的文件。与FTP不同的是,它使用的是UDP的69端口,因此可以穿越许多防火墙。不过它也有缺点,比如传送不可靠、没有密码验证等。虽然如此,它还是非常适合传送小型文件的。TFTP 只能从远程服务器上读、写文件(邮件)或者读、写文件传送给远程服务器。它不能列出目录并且当前不提供用户认证。
二. TFTP与FTP的区别
1. 传输协议不一样:FTP是基于TCP;TFTP是基于UDP
2. 端口号不一样:FTP的端口是21;TFTP的端口是69
3. 速度和安全方面:FTP速度慢,安全性好;TFTP速度快,安全性差。
三. TFTP在Linux下的安装及配置
1. 安装tftpd,tftp,openbsd-inetd
$ sudo apt-get install tftpd tftp openbsd-inetd
2. 更改配置文件
$ sudo vi /etc/inetd.conf
将inetd.conf的内容:tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp (/srv/tftp 为默认tftp目录)修改为:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
3.建立tftp目录
$ sudo mkdir /tftpboot
4.更改目录权限
$sudo chmod 777 /tftpboot
5. 重新启动tftp服务
$ sudo /etc/init.d/openbsd-inetd restart
6.查看69端口是否打开
$ netstat -an | more | grep udp
若69端口已打开则提示:udp 0 0 0.0.0.0:69 0.0.0.0:*
四. TFTP的使用及常见问题
a. 在/tftpboot 下编辑文件1.txt
b. 在其他目录下测试:
$ tftp 127.0.0.1 或$ tftp localhost
tftp>get 1.txt
Received 10 bytes in 0.0 seconds
tftp> q
2. put(上传)
a. 在其他目录下编辑文件2.txt并测试:
$ tftp 127.0.0.1 或$ tftp localhost
tftp> put2.txt
Error code 2: Access violation
tftp>
b. 原因:tftp服务器默认可以下载,但是上传就必须在tftpboot目录下有一个同名文件,并且要有可读写的权限!
c. 解决方法:
(1)首先tftpboot目录要有读写权限
(2)在tftpboot目录下新建一个要上传的同名文件,并改变其权限为666(最低)或777
3. busybox的tftp用法
tftp [OPTION]... HOST [PORT]
OPTION:
-l FILE 本地文件
-r FILE 远程文件
-g下载
-p上传
例如:
下载:tftp-r test.txt -g 192.168.1.100
上传:tftp-l test.txt -r test.txt -p 192.168.1.100