You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

tftp
===
在本机和tftp服务器之间使用TFTP协议传输文件
## 说明
**tftp命令** 用在本机和tftp服务器之间使用TFTP协议传输文件。
TFTP是用来下载远程文件的最简单网络协议它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面一是linux服务器端的tftp-server支持二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。
### 语法
```
tftp(选项)(参数)
```
```
-c指定与tftp服务器连接成功后立即要执行的指令
-m指定文件传输模式。可以是ASCII或者Binary
-v显示指令详细执行过程
-V显示指令版本信息。
```
### 参数
主机指定tftp要联机的tftp服务器的ip地址或主机名。
### 实例
**1、安装tftp服务器**
需要安装xinetd、tftp和tftp-server 3个软件
如果能上网通过yum安装
```
yum install xinetd
yum install tftp
yum install tftp-server
```
如果不能上网可以直接安装提供的rpm包
```
rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
rpm -ivh tftp-0.48-3.fc9.i386.rpm
rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
```
**2、配置tftp服务器**
修改/etc/xinetd.d/tftp文件将其中的disable=yes改为disable=no。主要是设置TFTP服务器的根目录开启服务。修改后的文件如下
```
service tftp
{
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /home/mike/tftpboot -c
disable =no
per_source =11
cps =100 2
flags =IPv4
}
```
说明:修改项`server_args= -s <path> -c`,其中<path>处可以改为你的tftp-server的根目录参数-s指定chroot-c指定了可以创建文件。
**3、启动tftp服务器并关闭防火墙**
```
/etc/init.d/iptables stop //关闭防火墙
sudo /sbin/service xinetd start
service xinetd restart
/etc/init.d/xinetd start
```
看到启动[OK]就可以了
4、查看tftp服务是否开启
```
netstat -a | grep tftp
```
显示结果为`udp 0 0 *:tftp *:*`表明服务已经开启就表明tftp配置成功了。
**5、tftp使用**
复制一个文件到tftp服务器目录然后在主机启动tftp软件进行简单测试。
```
tftp 192.168.1.2
tftp>get <download file>
tftp>put <upload file>
tftp>q
```
**6、tftp命令用法如下**
```
tftp your-ip-address
```
进入TFTP操作
* connect连接到远程tftp服务器
* mode文件传输模式
* put上传文件
* get下载文件
* quit退出
* verbose显示详细的处理信息
* tarce显示包路径
* status显示当前状态信息
* binary二进制传输模式
* asciiascii 传送模式
* rexmt设置包传输的超时时间
* timeout设置重传的超时时间
* help帮助信息
* ? :帮助信息
**7、如果老是出现“AVC Denial, click icon to view”的错误并不能传输文件需要作如下修改**
修改`/etc/sysconfig/selinux`,将SELINUX设定为disable使用命令`setenforce 0`让selinux配置文件生效。
**8、Busybox中tftp命令的用法**
命令格式为:
```
tftp [option] ... host [port]
```
如果要下载或上传文件的话是一定要用这些option的。
```
-g 表示下载文件 (get)
-p 表示上传文件 (put)
-l 表示本地文件名 (local file)
-r 表示远程主机的文件名 (remote file)
```
例如要从远程主机192.168.1.2上下载 embedexpert则应输入以下命令
```
tftp -g -r embedexpert 192.168.1.2
```