1.安装tftp服务
安装包在linux的Redhat企业版ISO映像中可以找到,包括xinetd,tftp客户端,tftp服务器端。
查找是否已经安装:
rpm -qa |grep tftp
安装命令:rpm -ivh tftpxxx
#netstat -a|grep tftp
udp 0 0 *:tftp *:*
2.修改文件
在linux下,不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。
根据(1)的安装方法,可以修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:
service tftp
{
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /tftpboot -c
disable =no
per_source =11
cps =100 2
flags =IPv4
}
说明:修改项server_args= -s <path> -c,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。
3.启动服务
#mkdir /tftpboot
#chmod o+w /tftpboot
#service xinetd restart
这样,tftp-server就启动了。你可以登陆本机测试以下,命令如下:
#tftp <your-ip-address>
tftp>get <download file>
tftp>put <upload file>
tftp>q
#
======================================
安装中出现的问题
1.提示服务器无法找到你要的文件。
2.无权访问。
为什么会这样呢?因为,权限设置有问题:
我们需要在ROOT身份下,给/TFTPBOOT目录设置读写的权限。
chmod 766 -R /tftpboot
如此,你可以从LINUX系统的/TFTPBOOT得到文件了。但是你会发现你传递不上文件。
你需要在要登陆到LINUX服务器上首先在你的/TFTPBOOT目录中建立你要传递的文件。
3.tftp> put test.c
Error code 0: Permission denied
原因:
运行命令,查看系统日志
#tail /var/log/messages
发现有如下一段文字:
Mar 24 19:05:26 localhost setroubleshoot: SELinux is preventing /usr/sbin/in.tftpd (tftpd_t) "write" to tftpboot (tftpdir_t). For complete SELinux messages. run sealert -l 40a5a6bf-8ded-4bfa-ab6e-fa669a25fc6c
知道这是是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现关掉它,修改文件/etc/sysconfig/selinux,设定其中的
SELINUX=disabled
然后重启电脑即可