TFTP简单文件传输协议
的有关信息介绍如下:TFTP简单文件传输协议是一种基于TCP/IP协议用于在客户端和服务器之间进行简单文件传输的协议——即提供不复杂、开销不大的文件传输服务,同学们亦可把其当作是FTP协议的简化版本。TFTP并不能提供类似于FTP服务那样丰富强大的命令指令功能,甚至不能提供目录的遍历浏览,在安全性方面也不能提供类似于FTP服务的验证功能,而且传输基于UDP协议的69端口号,导致文件的传输过程也并不像FTP协议那样可靠,但由于TFTP协议不需要客户端的权限验证,也不需要太多无必要的系统和网络带宽损耗,因此可以提供比FTP协议更有效率的文件传输体验。咱们可以安装一下TFTP简单文件传输服务的软件包来动手体验一番。详情请关注《linux就该这么学》。
[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!
在红帽RHEL7系统中TFTP服务是基于xinetd服务程序来管理的,xinetd服务可以用于管理需要的Linux系统服务,并且还提供有了强大的日志功能,简单来说,当咱们安装TFTP简单文件传输协议的软件包后,还需要在xinetd服务程序中开启一下,将默认的禁用(disable)参数修改为no:
[root@linuxprobe ~.d]# 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协议的玩法还不止于此,咱们还会在第19章中将TFTP服务与其他软件相搭配,组合出一套完整的自动化部署系统方案呢~
[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