项目需要,所以按照往常的方式进行安装和配置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 /var/lib/tftpboot # disable = yes server_args = -s /tftpboot -c disable = no per_source = 11 cps = 100 2 flags = IPv4 }3. chmod 777 /tftpboot
将tftpboot权限改到最大化。
4. setenforce 0
改selinux模式为只记录不拦截。
5. service iptables stop
关闭防火墙。
6. service xinetd restart
重启xinetd,相当于是打开tftp服务器。为了保险再执行一句service xinetd enable。也许有些linux不同可以执行chkconfig xinetd on或chkconfig tftp on检查方式。
7. 检查各服务是否成功启动或在成功关闭。
sestatus
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
service iptables status
Redirecting to /bin/systemctl status iptables.service iptables.service - IPv4 firewall with iptables Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled) Active: inactive (dead)
service xinetd status
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 *:*
8. 通过以上还不放心,就自己在本地测试下服务器。
cd /tftpboot
touch aaa
cd /home
touch bbb
tftp 127.0.0.1
get aaa
put bbb
q
以上步骤测试服务器下载和上传功能。成功的话一般home和tftpboot目录下都会有aaa和bbb文件。
以前用的Fedora17,此方法完美使用tftp。但是在Fedora19上问题就来了,通过以上方法,Fedora19本地服务器都能通过,但是通过手机或开发板甚至另外一台主机都无法连接上tftp服务器。头大啊,这么个问题折磨了我好几天,我的调试步骤:
1. 按以往的tftp方法操作
本地通过,远程不行。
2. 打开以前的U盘Fedora17进行测试
排除硬件和硬件上tftp客户端问题。
3. 继续尝试各种方法。
排除依赖包问题。
重装tftp客户端服务器排除安装失误问题。
检查tftp官网说明排除64位系统和32系统兼容问题。
检查Fedora官网说明书基本上能排除方法的问题。
搜索各英文网站和中文网站更加肯定方法没问题。
就这么个服务器,我快被折腾上天了。难道没有解决方法吗,网络上面能找到Fedora19的tftp资料太少了,反复测试中,我都有换回Fedora17的念头了。难道一个偌大的正式版系统连个tftp服务器都不支持吗?绝望中依然坚持着,我也相信Fedora19不会让我失望的。好吧,我把问题解决了。连我自己都被自己的毅力折服了。
解决方法:
打开防火墙图形界面,输入两次root密码后,在Zone项选择public,然后对右边Services里面tftp和tftp-client进行勾选勾选。奇迹般的通了,我还能说神马,防火墙IPv4都关闭了,居然还有效。哎~不知道是小BUG还是Fedora19太安全了,有的时候不能一根经走到底啊,不能太相信系统的脚本了。