本文首发于烂泥行天下。
为什么要学习有关TFTP服务器的安装及配置呢?主要是为了后续学习有关linux系统的无人值守安装做准备。
TFTP简单文件传输协议,使用UDP的69端口。主要提供文件的上传和下载,TFTP一般是适用于远程无盘设备启动,PXE启动以及路由器、交换机IOS的备份、恢复和升级等场合。
TFTP与FTP相比,TFTP不能列出目录的内容、不支持认证和加密机制、只支持UDP协议。
以上就是有关TFTP的相关特点,下面我们开始安装TFTP服务。
说明:在以后的博客中,我会尽量在Ubuntu系统中进行操作,尽量不在使用windows系统下远程连接linux的相关工具。
登录Ubuntu系统,在终端中输入以下命令。连链接远程的centos系统,如下:
ssh root@192.168.1.213
TFTP的软件包包括:tftp客户端、tftp-server服务器。先开始安装tftp客户端如下:
yum –y install tftp
现在开始安装tftp-server,如下:
yum –y install tftp-server
通过上图我们也可以看到在安装tftp-server时,同时也把xinetd服务进行了安装。而且根据上图提供的信息,我们也可以看出tftp服务的正常运行是依赖于xinetd服务的。
通过查询相关资料显示,tftp服务不像ftp服务那样有单独的服务进程,它是依赖于行xinetd服务来启动的。也就是说我们要查看tftp服务是否正常运行,直接查看xinetd服务即可
查看tftp及tftp-server安装后的相关文件,如下:
rpm –ql tftp
rpm –ql tftp-server
通过上图,我们可以看到tftp的运行文件位于/usr/bin/tftp,配置文件位于/etc/xinetd.d/tftp。
现在来修改tftp的配置文件,如下:
vi /etc/xinetd.d/tftp
通过上图我们可以看到,tftp的配置文件很简单。该配置文件,我们需要修改的内容只有一处disable=yes。把这项修改为no。
server_args表示tftp的目录,默认是在/var/lib/tftpboot目录下。此处可以进行自定义,也可以使用默认的目录。
修改完毕后的内容如下:
配置文件修改完毕后,我们现在来启动tftp服务。因为tftp服务是依赖于xinetd服务的,所以我们直接来启动xinetd服务即可。同时我们也可以通过查看tftp的69端口,看起是否正常运行,如下:
/etc/init.d/xinetd start
netstat -tunlp |grep 69
通过上图我们可以看出tftp已经正常启动,为了模拟真实的tftp环境,我们现在在tftp的目录下新建一个文件test_tftp.txt,如下:
现在开始使用客户端连接该tftp,在前文已经介绍过tftp包括客户端和服务端。我们先在客户端安装tftp的客户端,在此我们的客户端使用的是Ubuntu系统。Ubuntu系统安装tftp客户端,如下:
sudo apt-get –y install tftp
客户端安装完毕后,我们现在来连接tftp服务器并下载前文新建的文件test_tftp.txt。使用如下命令:
tftp 192.168.1.213
get test_tftp.txt
通过上图我们可以看到,我们已经顺利的从tftp服务器上下载了刚刚前文的文件test_tftp.txt。
现在我们在上传一个文件测试下,要测试tftp的上传功能,需要我们修改两处:tftp的配置文件和tftp目录的文件夹权限。
修改tftp配置文件,如下:
vim /etc/xinetd.d/tftp
注意server_args参数加入-c表示可以创建文件。
tftp配置文件修改完毕后,我们来修改tftp目录的文件夹权限。如下:
通过上图我们现在可以看到,目前tftp目录的文件夹权限为755。前文我们已经介绍过tftp不支持认证和加密机制,要具有上传权限的话,我们要把该目录的权限设置为777对所有人具有上传和下载权限,如下:
chmod 777 ./tftpboot/
以上全部修改完毕后,我们重启xinetd服务,如下:
/etc/init.d/xinetd restart
现在我们再来测试上传权限,使用put命令,如下:
有关tftp命令可以查看如下连接:http://linux.die.net/man/8/tftpd
至此有关TFTP服务器的安装及配置结束。