Linux下TFTP服务的安装、配置和操作

2019-07-13 00:50发布

参考:http://www.cnblogs.com/dyllove98/archive/2013/06/05/3119965.html

TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。     xinetd(eXtended InterNET services daemon)是新一代的网络守护进程服务程序,又叫超级INTERNET服务器,经常用于管理多种轻量型INTERNET服务,xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
1.安装tftp-server sudo apt-get install tftpd-hpa sudo apt-get install tftp-hpa(如果不需要客户端可以不安装) tftp-hpa是客户端 tftpd-hpa是服务器端 2.配置TFTP服务器 创建修改传输根目录: chmod 777 /tftpboot  修改/tftpboot文件夹的权限
sudo vim /etc/default/tftpd-hpa 将原来的内容改为: TFTP_USERNAME="tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_DIRECTORY="tftp根目录" #服务器目录,需要设置权限为777,chomd 777 TFTP_OPTIONS="-l -c -s" 3.重新启动TFTP服务 sudo service tftpd-hpa restart
4。查看tftp服务是否开启: netstat -a | grep tftp 显示结果为  udp    0   0 *:tftp     *:*  表示服务已经开启,tftp配置成功
启动tftp服务器: service tftpd-hpa stop      停止tftp服务器 service tftpd-hpa start     开启tftp服务器 service tftpd-hpa stutus    查看tftp运行状态 service tftpd-hpa restart   重启tftp服务器 (注意:文件传输后文件的权限会发生变化)

进入TFTP操作: connect:连接到远程tftp服务器 mode:文件传输模式 put:上传文件 get:下载文件 quit:退出 verbose:显示详细的处理信息 tarce:显示包路径 status:显示当前状态信息 binary:二进制传输模式 ascii:ascii 传送模式 rexmt:设置包传输的超时时间 timeout:设置重传的超时时间 help:帮助信息 ? :帮助信息   -g 表示下载文件 (get) -p 表示上传文件 (put) -l 表示本地文件名 (local file) -r 表示远程主机的文件名 (remote file) 例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令: tftp -g -r embedexpert 192.168.1.2   出现的一些问题及原因(解决方法): 1、Transfer time out.        tftpd服务没有启动 2、Error code 0:Permission denied     可能是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现在要关掉它。     修改文件/etc/sysconfig/selinux,设定SELINUX=disabled,然后重启电脑即可   或者  执行命令system-config-securitylevel打开“安全级别配置”对话框,将SELinux(S)选项中“强制”改为“允许” 3、Error code 1:File not found     指定的文件夹不存在;或tftpd启动参数中没有指定-c选项,允许上传文件 4、Error code 2:Only absolute filenames allowed   /etc/xinetd.d/tftpd文件的设置没设好,只需要将server_args=  改为你自己设定   的服务器文件夹就行了 5、Error code 2:Access violation     上传的文件要有相应的可读写(覆盖)的权限才能上传,要对文件的权限进行修改  chmod 777 a(文件名)