2012年11月28日 星期三

[轉]在Linux环境下(fedora)进行TFTP服务设置


步骤1
配置tftp
配置tftp服务的步骤:
1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetd
#yum install tftp-server tftp xinetd
2、建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp
#vim tftp
在文件中输入以下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出
3、建立tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
#mkdir /tftpboot
#chmod 777 /tftpboot -R
4、重新启动服务
#/etc/init.d/xinetd restart
至此tftp服务已经安装完成了,下面可以对其进行一下测试。(假设在当前目录下有一个测试文件test.txt)
#tftp 127.0.0.1                    
tftp> put test.txt
tftp> get test.txt
tftp> quit
通过get命令,可以把当前目录下的test.txt文件,通过tftp上传到它的服务文件目录。这时,在/tftpboot下面会出现test.txt文件。通过put命令,可以从/tftpboot下,下载test.txt文件。这样就验证了tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。
步骤二
严格按照以上步骤配置tftp服务,一般都可以成功。如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。
问题一:
若出现类似提示:SELinux is preventing in.tftpd (tftpd_t) "write" to ./tftpboot (tftpdir_t).
tftp> get
Transfer timed out.
 
tftp> put
Transfer timed out.
知道这是是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现关掉它。解决:
修改文件 /etc/sysconfig/selinux,设定其中的SELINUX=disabled,然后重启电脑即可。或者执行命令 system-config-securitylevel 打开 “安全级别配置”对话框,将SELinux(S)选项中 “强制” 改为“允许”。
问题二:
tftp> put
Error code 1: File not found
原因:
指定的文件不存在;
解决:
/etc/xinetd.d/tftp中的server_args指定的目录中没有该文件,将要下载的文件拷贝到该目录即可,或server_args不是默认的/tftpboot,而是自己设定,但是在后面没有指定-c选项,补上即可。

沒有留言: