11.3 TFTP简单文件传输协议
简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。
TFTP的命令功能不如FTP服务强大,甚至不能遍历目录,在安全性方面也弱于FTP服务。而且,由于TFTP在传输文件时采用的是UDP协议,占用的端口号为69,因此文件的传输过程也不像FTP协议那样可靠。但是,因为TFTP不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。
接下来在系统上安装TFTP的软件包,进行体验。
- [root@linuxprobe ~]# yum install tftp-server tftp
- Loaded plugins: langpacks, product-id, subscription-manager
- ………………省略部分输出信息………………
- Installing:
- tftp x86_64 5.2-11.el7 rhel 35 k
- tftp-server x86_64 5.2-11.el7 rhel 44 k
- Installing for dependencies:
- xinetd x86_64 2:2.3.15-12.el7 rhel 128 k
- Transaction Summary
- ================================================================================
- Install 2 Packages (+1 Dependent package)
- Total download size: 207 k
- Installed size: 373 k
- Is this ok [y/d/N]: y
- Downloading packages:
- ………………省略部分输出信息………………
- Installed:
- tftp.x86_64 0:5.2-11.el7 tftp-server.x86_64 0:5.2-11.el7
- Dependency Installed:
- xinetd.x86_64 2:2.3.15-12.el7
- Complete!
在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装TFTP软件包后,还需要在xinetd服务程序中将其开启,把默认的禁用(disable)参数修改为no:
- [root@linuxprobe ~]# 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
- }
然后,重启xinetd服务并将它添加到系统的开机启动项中,以确保TFTP服务在系统重启后依然处于运行状态。考虑到有些系统的防火墙默认没有允许UDP协议的69端口,因此需要手动将该端口号加入到防火墙的允许策略中:
- [root@linuxprobe ~]# systemctl restart xinetd
- [root@linuxprobe ~]# systemctl enable xinetd
- [root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp
- success
- [root@linuxprobe ~]# firewall-cmd --reload
- success
TFTP的根目录为/var/lib/tftpboot。我们可以使用刚安装好的tftp命令尝试访问其中的文件,亲身体验TFTP服务的文件传输过程。在使用tftp命令访问文件时,可能会用到表11-5中的参数。
表11-5 tftp命令中可用的参数以及作用
命令 | 作用 |
? | 帮助信息 |
put | 上传文件 |
get | 下载文件 |
verbose | 显示详细的处理信息 |
status | 显示当前的状态信息 |
binary | 使用二进制进行传输 |
ascii | 使用ASCII码进行传输 |
timeout | 设置重传的超时时间 |
quit | 退出 |
- [root@linuxprobe ~]# echo "i love linux" > /var/lib/tftpboot/readme.txt
- [root@linuxprobe ~]# tftp 192.168.10.10
- tftp> get readme.txt
- tftp> quit
- [root@linuxprobe ~]# ls
- anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures readme.txt Videos
- Desktop Downloads Music Public Templates
- [root@linuxprobe ~]# cat readme.txt
- i love linux
当然,TFTP服务的玩法还不止于此,第19章会将TFTP服务与其他软件相搭配,组合出一套完整的自动化部署系统方案。大家继续加油!
出现问题?大胆提问!
因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~
Linux技术交流请加A群:560843(满),B群:340829(推荐),C群:463590(推荐),点此查看全国群。
*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。
本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)
1.简述FTP协议的功能作用以及所占用的端口号。
答:FTP是一种在互联网中进行文件传输的协议,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发起的相关FTP命令与参数。
2.vsftpd服务程序提供的三种用户认证模式各自有什么特点?
答:匿名开放模式是任何人都可以无需密码认证即可直接登录到FTP服务器的验证方式;本地用户模式是通过系统本地的账户密码信息登录到FTP服务器的认证方式;虚拟用户模式是通过创建独立的FTP用户数据库文件来进行认证并登录到FTP服务器的认证方式,相较来说它也是最安全的认证模式。
3. 使用匿名开放模式登录到一台用vsftpd服务程序部署的FTP服务器上时,默认的FTP根目录是什么?
答:使用匿名开放模式登录后的FTP根目录是/var/ftp目录,该目录内默认还会有一个名为pub的子目录。
4.简述PAM的功能作用。
答:PAM是一组安全机制的模块(插件),系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行过多修改。
5.使用虚拟用户模式登录FTP服务器的所有用户的权限都是一样的吗?
答:不一定,可以通过分别定义用户权限文件来为每一位用户设置不同的权限。
6.TFTP协议与FTP协议有什么不同?
答:TFTP协议提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。
本文原创地址:https://www.linuxprobe.com/chapter-11.html 编辑:刘遄,审核员:暂无
为您推荐一些与本文相关的文章:
- 《Web前端开发精品课HTML与CSS进阶教程》pdf电子书免费下载
- Python基础-不同类型之间的运算规则
- 在Red Hat和Centos上安装MongoDB
- “玄惭大师”谈双十一活动中云数据库保障经验
- Let’s Encrypt 2016 这一年。
- 重新出发的Git 2.7
- 捷讯:李惠少6月27日北京顺利通过RHCE认证。
- 捷讯:关锦锋11月24日广东顺利通过RHCE认证。
- 专家:人工智能可提升云端数据安全级别
- 阿里巴巴向 Apache 软件基金会捐赠消息中间件 RocketMQ
转载必需保留本文链接:https://www.linuxprobe.com/chapter-11.html
本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。