网上关于tftp配置的文章多如牛毛,但是这么多的文章对于有些困扰人的细节并没有介绍到,这篇文章主要介绍我在配置tftp过程中遇到的问题,解决方法以及自己的思考,希望能够对大家有所帮助。
windows下tftp的配置就不多说,用tftpd32软件就可以搞定,这个软件操作也很简单,一如既往的windows亲民的风格,我在使用过程中,也是一次成功,没有碰到什么问题。下来主要介绍一下linux的配置。
具体的配置方法如下:
*******************************************
RedHat配置tftp服务
Redhat Linux下tftp服务器配置其实很容易。现以RedHat 7.3为例说明。
1. 如何启动tftp服务?1
执行ntsysv命令,选中tftp服务,再执行service xinetd restart命令。tftp服务就启动了,容易吧。
2. 如何下载文件?
先分析一下tftp的配置文件。
打开/etc/xinetd.d/tftp文件,如下所示:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
}
这就是tftp的配置文件,其中,server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot,当你执行put a.txt时,文件会被放到服务器的/tftpboot/a.txt,省去你敲put a /tftpboot/的麻烦。你也可以加其它服务器运行参数到这,具体可以执行man tftpd命令查阅。
要下载文件,执行如下命令:(下载文件的默认路径为/tftpboot)
>tftp
>get
3. 如何上传文件?
上传文件时,需要先把服务器上的/tftpboot目录和这个目录下的文件变成可读可写权限,如下命令所示:
>cd /
>chmod 777 tftpboot
>cd tftpboot
>chmod 777 *
(这里用777权限有些高,可以用666,不过无所谓)
上传文件用put命令,但是默认情况下,只能上传远程tftp服务器已有的文件,例如,在tftp服务器上有/tftpboot/a.txt这个文件,你可以执行
>put a.txt
将本地的a.txt文件上传上去并覆盖服务器上的原文件。所以这个时候要先在服务器上建一个同名文件,如下命令所示:
>cd /tftpboot
>touch a.txt
>chmod 666 *
如果想上传原来目录中没有的文件,需要修改tftp服务器的配置文件并重起服务,如下操作所示:
打开/etc/xinetd.d/tftp文件,在 server_args 增加-c参数,如下所示:
service tftp
{
disable = 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
}
存盘退出。
重起tftp服务,如下所示:
>service xinetd restart
可以了。现在就可以上传新文件了。
此小段为图省事摘抄他人文章,原文地址
http://hi.baidu.com/sun363587351/item/e9993149e646aee91281da52
*************************************
说说一些应该注意的问题
a.虚拟机应该选择桥接的方式,这样linux可以看做成一台实际的计算机存在于网络当中,其ip即为开发板中的serverip。
b.windows主机的ip不能同虚拟机linux中的ip重复,否则的话linux的ip可能有误。具体查看和修改ip的方法可以参考此文。
c.要ping通,开发板和linux系统必须在一个子网里面。例如,一般的子网掩码为255.255.255.0,这时要保证开发板ip和serverip 的前三组数据必须是相同的,这样才能有ping通的前提。
d.防火墙关掉,防火墙有可能会对网络有影响,关掉为妙。
e.ping有时候并不一定管用,如果uboot不支持ICMP协议的话,是不能ping通的,但是这不影响tftp的使用,所以不要纠结在ping上面。我在实验的时候,就出现了开发板可以ping通主机,主机ping不同开发板的情况,还纠结了好长时间
f.开发板和主机的连接方式有两种,一种是主机和开发板直接连接,需要注意的是这种连接一定要用交叉线。另外一种方法就是通过路由来进行连接。