• 11.3 TFTP简单文件传输协议
    • 为您推荐一些与本文相关的文章:

    11.3 TFTP简单文件传输协议

    简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。

    TFTP的命令功能不如FTP服务强大,甚至不能遍历目录,在安全性方面也弱于FTP服务。而且,由于TFTP在传输文件时采用的是UDP协议,占用的端口号为69,因此文件的传输过程也不像FTP协议那样可靠。但是,因为TFTP不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。

    接下来在系统上安装TFTP的软件包,进行体验。

    1. [root@linuxprobe ~]# yum install tftp-server tftp
    2. Loaded plugins: langpacks, product-id, subscription-manager
    3. ………………省略部分输出信息………………
    4. Installing:
    5. tftp x86_64 5.2-11.el7 rhel 35 k
    6. tftp-server x86_64 5.2-11.el7 rhel 44 k
    7. Installing for dependencies:
    8. xinetd x86_64 2:2.3.15-12.el7 rhel 128 k
    9. Transaction Summary
    10. ================================================================================
    11. Install 2 Packages (+1 Dependent package)
    12. Total download size: 207 k
    13. Installed size: 373 k
    14. Is this ok [y/d/N]: y
    15. Downloading packages:
    16. ………………省略部分输出信息………………
    17. Installed:
    18. tftp.x86_64 0:5.2-11.el7 tftp-server.x86_64 0:5.2-11.el7
    19. Dependency Installed:
    20. xinetd.x86_64 2:2.3.15-12.el7
    21. Complete!

    在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装TFTP软件包后,还需要在xinetd服务程序中将其开启,把默认的禁用(disable)参数修改为no:

    1. [root@linuxprobe ~]# vim /etc/xinetd.d/tftp
    2. service tftp
    3. {
    4. socket_type = dgram
    5. protocol = udp
    6. wait = yes
    7. user = root
    8. server = /usr/sbin/in.tftpd
    9. server_args = -s /var/lib/tftpboot
    10. disable = no
    11. per_source = 11
    12. cps = 100 2
    13. flags = IPv4
    14. }

    然后,重启xinetd服务并将它添加到系统的开机启动项中,以确保TFTP服务在系统重启后依然处于运行状态。考虑到有些系统的防火墙默认没有允许UDP协议的69端口,因此需要手动将该端口号加入到防火墙的允许策略中:

    1. [root@linuxprobe ~]# systemctl restart xinetd
    2. [root@linuxprobe ~]# systemctl enable xinetd
    3. [root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udp
    4. success
    5. [root@linuxprobe ~]# firewall-cmd --reload
    6. success

    TFTP的根目录为/var/lib/tftpboot。我们可以使用刚安装好的tftp命令尝试访问其中的文件,亲身体验TFTP服务的文件传输过程。在使用tftp命令访问文件时,可能会用到表11-5中的参数。

    表11-5 tftp命令中可用的参数以及作用

    命令作用
    ?帮助信息
    put上传文件
    get下载文件
    verbose显示详细的处理信息
    status显示当前的状态信息
    binary使用二进制进行传输
    ascii使用ASCII码进行传输
    timeout设置重传的超时时间
    quit退出
    1. [root@linuxprobe ~]# echo "i love linux" > /var/lib/tftpboot/readme.txt
    2. [root@linuxprobe ~]# tftp 192.168.10.10
    3. tftp> get readme.txt
    4. tftp> quit
    5. [root@linuxprobe ~]# ls
    6. anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures readme.txt Videos
    7. Desktop Downloads Music Public Templates
    8. [root@linuxprobe ~]# cat readme.txt
    9. 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学习资料以及红帽考试资料等优质学习资源。