新闻资讯
简单文件传输协议TFTP
3.1 TFTP概述
TFTP(Trivial File Transfer Protocol)简单文件传输协议,是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。可以认为它是FTP协议的简化版本。
3.2.1 TFTP缺点
TFTP的命令功能不如FTP服务强大,不能遍历目录,在安全性方比FTP差。传输文件采用 UDP 协议,端口号为 69,文件传输过程不如FTP协议可靠。
3.2.2 TFTP优点
TFTP不需要客户端的权限认证, 减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。
3.2 TFTP操作案例
3.2.1 TFTP安装并启动
我们还是继续使用之前的两台虚拟机,在主机ftpserver上安装tftpsever服务,在主机ftp上安装tftp服务。
(1)tftp服务器安装
[root@ftpserver ~]# rpm -q tftp-server package tftp-server is not installed
[root@ftpserver ~]# yum install tftp-server ...省略中间内容
Installed:
tftp-server.x86_64 0:5.2-22.el7
Complete!
[root@ftpserver ~]
在RHEL7系统中,TFTP服务是使用 xinetd 服务程序来管理的,在安装TFTP软件包后,还需要在 xinetd服务程序中将其开启。
配置之前先看tftp服务器是否安装xinetd服务
[root@ftpserver ~]# systemctl restart xinetd Failed to issue method call: Unit xinetd.service failed to load: No such file or directory.
出现这个结果表示为安装xinetd,需要手动进行安装。
[root@ftpserver ~]# yum install xinetd
在tftp服务器中,修改/etc/xinetd.d/tftp配置文件,将disable=yes改为no
[root@ftpserver ~]# 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 disable = no per_source = 11 cps = 100 2 flags = IPv4 } [root@ftpserver ~]#
修改后重启xinetd服务并添加到开机启动。
[root@ftpserver ~]# systemctl restart xinetd [root@ftpserver ~]# systemctl enable xinetd
考虑到有些系统的防火墙默认没有允许 UDP 协议的 69 端口,因此 需要手动将该端口号加入到防火墙的允许策略中。
[root@ftpserver ~]# firewall-cmd --permanent --add-port=69/udp success
[root@ftpserver ~]# firewall-cmd --reload success
[root@ftpserver ~]#
TFTP 的根目录为/var/lib/tftpboot。
在tftp服务器上,创建文件tftptest.txt以供tftp下载
[root@ftpserver ~]# echo "test tftp">/var/lib/tftpboot/tftptest.txt [root@ftpserver ~]# ll /var/lib/tftpboot/ total 4 -rw-r--r--. 1 root root 10 Jan 14 23:05 tftptest.txt
[root@ftpserver ~]#
(2)fttp客户端安装
[root@ftp ~]# rpm -q tftp package tftp is not installed
[root@ftp ~]# yum install tftp ...省略中间内容
Installed:
tftp.x86_64 0:5.2-22.el7
Complete!
[root@ftp ~]#
3.2.2 使用TFTP
在tftp客户端连接到tftpserver并下载文件
[root@ftp ~]# tftp 192.168.78.101 tftp> get tftptest.txt tftp> quit [root@ftp ~]# ll tftptest.txt -rw-r--r--. 1 root root 10 Jan 14 23:09 tftptest.txt [root@ftp ~]# cat tftptest.txt test tftp [root@ftp ~]#
可以看到已经成功把文件下载到本地了。
3.2.3 TFTP相关的命令
列举几个tftp相关的命令和参数
命令 | 作用 |
---|---|
? | 帮助信息 |
put | 上传文件 |
get | 下载文件 |
verbose | 显示详细的处理信息 |
status | 显示当前的状态信息 |
binary | 使用二进制进行传输 |
ascii | 使用 ASCII 码进行传输 |
timeout | 设置重传的超时时间 |
quit | 退出 |
当然TFTP还有很多其他用户,以后有机会在深入讨论。
原文链接:https://my.oschina.net/u/616618/blog/3177991
回复列表