http://bbs.52dtv.com/thread-25392-1-1.html
它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型;最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。
项目需要,所以按照往常的方式进行安装和配置tftp服务器。
1. yum install tftp -y
yum会自动搜索安装平台合适的tftp客户端,服务器和依赖包。
2. vim /etc/xinetd.d/tftp
用编辑器打开tftp的配置文件,修改其中两项server_args和disable。配置如下:
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /opt/tftpboot -c
- disable = no
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
3. 在opt目录下创建tftpboot目录
cd /opt
mkdir tftpboot
4.将tftpboot权限改到最大化。
chmod 777 /opt/tftpboot
5.setenforce 0
改selinux模式为只记录不拦截。
6. systemctl stop firewalld.service
关闭防火墙。
7.systemctl restart xinetd
重启xinetd,相当于是打开tftp服务器。为了保险再执行一句systemctl enable xinetd。
8.检查各服务是否成功启动或在成功关闭。
sestatus
9.检查tftp服务状态。
systemctl status xinetd
- Redirecting to /bin/systemctl status xinetd.service
- xinetd.service - Xinetd A Powerful Replacement For Inetd
- Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled)
- Active: active (running) since Sun 2013-09-01 09:47:25 CST; 44min ago
- Process: 2352 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
- Main PID: 2353 (xinetd)
- CGroup: name=systemd:/system/xinetd.service
- └─2353 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
netstat -a | grep tftp
- udp 0 0 *:tftp *:*
打开防火墙图形界面,输入两次root密码后,在Zone项选择public,然后对右边Services里面tftp和tftp-client进行勾选。
10.通过以上还不放心,就自己在本地测试下服务器。
cd /opt/tftpboot
touch aaa
cd /home
touch bbb
tftp 127.0.0.1
get aaa
put bbb
q
以上步骤测试服务器下载和上传功能。成功的话一般home和tftpboot目录下都会有aaa和bbb文件。
11.远程测试
如果有问题,应该是防火墙的问题,可直接关闭防火墙。
systemctl stop firewalld.service