最近在centos 7上部署TFTP服务器,遇到了客户端超时没有响应的问题,netstat -a | grep tftp也没有回应,
方法记录如下:
1、安装tftp服务器
TFTP服务是通过xintd运行的
# yum install xinetd
# yum install tftp
# yum install tftp-server
2.建立tftpboot目录,设置TFTPBOOT的访问权限
# mkdir /lib/tftpboot
# chmod 777 /lib/tftpboot
3.配置文件
# vi /etc/xinetd.d/tftp
修改下server_args为你自己的TFTPBOOT目录,即FTP文件的根目录;缺省情况下,TFTP服务是禁用的,把disable的值改为no。
文件如下:
service tftp
{ socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /lib/tftpboot -c
disable =no
per_source =11
cps =100 2
flags =IPv4
}
说明:修改项server_args= -s <path> -c,其中<path>处可以改为你的tftp-server的根目录
4.开放udp 69端口 --不然客户端会连接不上,显示超时
加入iptables
# vi /etc/sysconfig/iptables
加一行
-A INPUT -p udp --dport 69 -j ACCEPT
保存
重启iptables
# service iptables restart
5.设置服务
#chkconfig tftp on
#chkconfig xinetd on
# service xinetd restart
# service tftp restart
6.selinux机制可能出现的问题:
1.出现TFTP error: 'Permission denied' (0)的解决
这个是由于selinux机制引起的不是文件夹的权限问题。
所以vi /etc/sysconfig/selinux 修改为:SELINUX=permissive 或者关闭SELINUX : SELINUX=disabled
如果不想重启系统,执行:
sudo setenforce 0
7.windows 客户端测试
c:\>tftp -i x.x.x.x put temp.txt
传输成功: 1 秒 3 字节,3 字节/秒
成功!!!
netstat -na | grep 69
显示69端口