在linux中建设tftp服务器

目标:建立tftp服务器,使得嵌入式开发板可以从虚拟机下载程序至开发板运行。

软件环境:winxp中使用vmware建立rhle5 linux系统

硬件环境:测试阶段无需开发板。

1、查询linux中tftp安装情况

在终端输入 :rpm -qa |grep tftp

显示:tftp-server-0.42-3.1

代表已经安装了tftp服务器程序,但是没有安装tftp客户端,所以在终端无法输入tftp命令。

如果没有安装可以挂载CentOS5.2光盘安装
[root@wk ~]# mount -t auto /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@wk ~]# cd /mnt/cdrom/CentOS
[root@wk CentOS]# rpm -ivh tftp-0.42-3.1.el5.centos.i386.rpm
[root@wk CentOS]# rpm -ivh tftp-server-0.42-3.1.el5.centos.i386.rpm

2、修改启动配置文件
默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。
修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。
修改后的配置文件如下:
service tftp
{
        disable                 = yes   把这里的yes改为no
        socket_type             = dgram
        protocol                = udp
        wait                   = yes
        user                   = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot -c
        per_source              = 11
        cps                    = 100 2
        flags                   = IPv4
}
这里指定/tftpboot 为tftp服务器的根目录
参数-s指定chroot,-c指定了可以创建文件

3、创建tftp根目录,关闭防火墙,启动tftp-server
[root@wk ~]# mkdir /tftpboot
[root@wk ~]# chmod -R 777 /tftpboot
[root@wk ~]# /etc/init.d/iptables stop 
[root@wk ~]# service xinetd restart

重启xinetd服务,因为TFTP服务受控与xinetd服务,xinetd是管服务的服务,它是不开端口的。
所以要验证一下TFTP是否开启69端口起来了:
[root@wk ~]# netstat -nlp
udp       0     0 0.0.0.0:67         0.0.0.0:*     5172/dnsmasq              
udp       0     0 0.0.0.0:67         0.0.0.0:*     4745/dhcpd                         
udp       0     0 0.0.0.0:69         0.0.0.0:*     6171/xinetd                        
udp       0     0 0.0.0.0:994        0.0.0.0:*     4633/rpc.rquotad      
                   
可以看到69端口已经打开,说明服务启动正常。

4、测试tftp服务器
[root@wk ~]# tftp 192.168.0.110
tftp>get
tftp>put
tftp>q 


经过以上配置,linux的tftp服务器应能正常工作,不过有些特殊的情况会出现不能传输的问题,现象是将server_args保持默认目录即可访问,而改动到其他目录不运行,这时候通过查看系统日志,输入命令“tail var/log/messages”后看到“/tftpboot: Permission denied”则需要设置安全级别,即禁止selinux,可以通过如下操作:

以下介绍一下SELinux相关的工具


/usr/bin/setenforce 修改SELinux的实时运行模式


setenforce 1 设置SELinux 成为enforcing模式


setenforce 0 设置SELinux 成为permissive模式


如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值