1 | tftp
|
2 | ===
|
3 |
|
4 | 在本机和tftp服务器之间使用TFTP协议传输文件
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **tftp命令** 用在本机和tftp服务器之间使用TFTP协议传输文件。
|
9 |
|
10 | TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。
|
11 |
|
12 | ### 语法
|
13 |
|
14 | ```shell
|
15 | tftp(选项)(参数)
|
16 | ```
|
17 |
|
18 | ### 选项
|
19 |
|
20 | ```shell
|
21 | -c:指定与tftp服务器连接成功后,立即要执行的指令;
|
22 | -m:指定文件传输模式。可以是ASCII或者Binary;
|
23 | -v:显示指令详细执行过程;
|
24 | -V:显示指令版本信息。
|
25 | ```
|
26 |
|
27 | ### 参数
|
28 |
|
29 | 主机:指定tftp要联机的tftp服务器的ip地址或主机名。
|
30 |
|
31 | ### 实例
|
32 |
|
33 | **1、安装tftp服务器**
|
34 |
|
35 | 需要安装xinetd、tftp和tftp-server 3个软件
|
36 |
|
37 | 如果能上网,通过yum安装:
|
38 |
|
39 | ```shell
|
40 | yum install xinetd
|
41 | yum install tftp
|
42 | yum install tftp-server
|
43 | ```
|
44 |
|
45 | 如果不能上网,可以直接安装提供的rpm包:
|
46 |
|
47 | ```shell
|
48 | rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
|
49 | rpm -ivh tftp-0.48-3.fc9.i386.rpm
|
50 | rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
|
51 | ```
|
52 |
|
53 | **2、配置tftp服务器**
|
54 |
|
55 | 修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:
|
56 |
|
57 | ```shell
|
58 | service tftp
|
59 | {
|
60 | socket_type =dgram
|
61 | protocol =udp
|
62 | wait =yes
|
63 | user =root
|
64 | server =/usr/sbin/in.tftpd
|
65 | server_args =-s /home/mike/tftpboot -c
|
66 | disable =no
|
67 | per_source =11
|
68 | cps =100 2
|
69 | flags =IPv4
|
70 | }
|
71 | ```
|
72 |
|
73 | 说明:修改项`server_args= -s <path> -c`,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。
|
74 |
|
75 | **3、启动tftp服务器并关闭防火墙**
|
76 |
|
77 | ```shell
|
78 | /etc/init.d/iptables stop # 关闭防火墙
|
79 | sudo /sbin/service xinetd start
|
80 | 或
|
81 | service xinetd restart
|
82 | /etc/init.d/xinetd start
|
83 | ```
|
84 |
|
85 | 看到启动[OK]就可以了
|
86 |
|
87 | 4、查看tftp服务是否开启
|
88 |
|
89 | ```shell
|
90 | netstat -a | grep tftp
|
91 | ```
|
92 |
|
93 | 显示结果为`udp 0 0 *:tftp *:*`表明服务已经开启,就表明tftp配置成功了。
|
94 |
|
95 | **5、tftp使用**
|
96 |
|
97 | 复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。
|
98 |
|
99 | ```shell
|
100 | tftp 192.168.1.2
|
101 | tftp>get <download file>
|
102 |
|
103 | tftp>put <upload file>
|
104 | tftp>q
|
105 | ```
|
106 |
|
107 | **6、tftp命令用法如下**
|
108 |
|
109 | ```shell
|
110 | tftp your-ip-address
|
111 | ```
|
112 |
|
113 | 进入TFTP操作:
|
114 |
|
115 | * connect:连接到远程tftp服务器
|
116 | * mode:文件传输模式
|
117 | * put:上传文件
|
118 | * get:下载文件
|
119 | * quit:退出
|
120 | * verbose:显示详细的处理信息
|
121 | * tarce:显示包路径
|
122 | * status:显示当前状态信息
|
123 | * binary:二进制传输模式
|
124 | * ascii:ascii 传送模式
|
125 | * rexmt:设置包传输的超时时间
|
126 | * timeout:设置重传的超时时间
|
127 | * help:帮助信息
|
128 | * ? :帮助信息
|
129 |
|
130 | **7、如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改**
|
131 |
|
132 | 修改`/etc/sysconfig/selinux`,将SELINUX设定为disable,使用命令`setenforce 0`让selinux配置文件生效。
|
133 |
|
134 | **8、Busybox中tftp命令的用法**
|
135 |
|
136 | 命令格式为:
|
137 |
|
138 | ```shell
|
139 | tftp [option] ... host [port]
|
140 | ```
|
141 |
|
142 | 如果要下载或上传文件的话是一定要用这些option的。
|
143 |
|
144 | ```shell
|
145 | -g 表示下载文件 (get)
|
146 | -p 表示上传文件 (put)
|
147 | -l 表示本地文件名 (local file)
|
148 | -r 表示远程主机的文件名 (remote file)
|
149 | ```
|
150 |
|
151 | 例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令
|
152 |
|
153 | ```shell
|
154 | tftp -g -r embedexpert 192.168.1.2
|
155 | ```
|
156 |
|
157 |
|