不习惯windows的那个。来玩linux下的tftp

其实实质都一样 网上搜的!

 (fedora,....都是浮云)

1.下载tftp服务器、客户端tftp和守护进程xinetd三个包(在ISO里都可以找到,客户端没必要安装)

yum install xinetd tftp tftp-server
 
//xinetd.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm                   
//tftp-server-0.49-1.fc10.i386.rpm  
 rpm -ivh ****.rpm

2.配置vi /etc/xinetd.d/tftp

修改server_args = -s /tftpboot -c,这里的-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
flags                   = IPv4
}
 
3.关闭防火墙
setup 抑或 service iptables stop

 

4.建立tftp工作目录并修改属性(一般安装软件后会自动创建,核对即可。不修改属性会出现error)

cd /
mkdir tftpboot
chmod 777 -R /tftpboot/

5.开启服务,上传下载文件

 

######################################

 

我的配置过程中先后顺序和出现的问题如下:

 

下载tftp服务客户端tftp和守护进程xinetd

yum install xinetd
yum install tftp tftp-server
//xinetd.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm                   
//tftp-server-0.49-1.fc10.i386.rpm  
关闭防火墙
service xinetd  restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
cd /
mkdir tftpboot
cd tftpboot
cp /etc/inittab /tftpboot/
tftp 172.18.1.90
tftp> get inittab
Transfer timed out.
 
tftp>quit
[root@localhost tftpboot]# netstat -a|grep tftp
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# touch aaa
[root@localhost tftpboot]# ls
aaa  inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> get aaa
Transfer timed out.
 
tftp> quit
不知何故出现“Transfer timed out.”的错误提示,想想没有修改tftp配置文件:
[root@localhost tftpboot]# cd /etc/xinetd.d
[root@localhost xinetd.d]# vi tftp
修改保存:
disable=no
server_args=-s /tftpboot/ -c
[root@localhost xinetd.d]# cd /
[root@localhost /]# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
[root@localhost /]# netstat -a | grep tftp
udp        0      0 *:tftp                      *:*                                     
[root@localhost /]# tftp 172.18.1.90
tftp> get aaa
Error code 1: File not found
tftp> get inittab
Error code 1: File not found
tftp> quit
错误不一样了,以为需要安装tftpd服务器端,yum  install tftpd没有源
但这次想起来新建/tftpboot/目录时候没有对该目录权限进行修改,就一切ok了
[root@localhost /]# chmod 777 -R /tftpboot/
 
[root@localhost /]# tftp 172.18.1.90
tftp> get aaa
tftp> get inittab
tftp> q
[root@localhost /]# ls
aaa  boot  etc   inittab  lost+found  mnt  proc  sbin     srv  tftpboot  usr
bin  dev   home  lib      media       opt  root  selinux  sys  tmp       var
//根目录出现了aaa和inittab文件,下载成功!
再来试试上传文件:
[root@localhost /]# cd /tftpboot
[root@localhost tftpboot]# ls
aaa  inittab
[root@localhost tftpboot]# rm aaa
rm: remove regular empty file `aaa'? y
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> put aaa
tftp: aaa: No such file or directory
tftp> put aaa
tftp: aaa: No such file or directory
tftp> q
[root@localhost tftpboot]# cd /
[root@localhost /]# ls
aaa  boot  etc   inittab  lost+found  mnt  proc  sbin     srv  tftpboot  usr
bin  dev   home  lib      media       opt  root  selinux  sys  tmp       var
[root@localhost /]# tftp 172.18.1.90
tftp> put aaa
tftp> q
[root@localhost /]# cd /tftpboot
[root@localhost tftpboot]# ls
aaa  inittab
上传成功!

上面错误原因就是tftp的执行目录要再根目录下进行,因为默认根目录为当前操作的目录

 



在Linux(fedora 8)下利用tftp服务器烧录内核映像zImage和文件系统root.cramfs


 


摘要


本文具体讲了tftp的含义,tftp在Linux(fedora 8)上是如何配置的,以及怎么利用tftp在Linux环境下烧录内核映像zImage和文件系统root.cramfs。


 


一、  什么是tftp


TFTP(Trivial File Transfer Protocol,简单文件传输协议或一般文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。


大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这一点请注意!


TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP 协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的,因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:

       netascii,这是8位的ASCII码形式,


      octet,这是8位源数据类型;


      最后一种mail已经不再支持,它将返回的数据直接返回给用户而不是保存为文件。

       


二、在Linux(fedora 8)下安装和配置tftp服务器


1、安装


先安装xinetd 服务:yum install xinetd(xinetd是管理所有服务的服务)

安装tftp协议,tftp-sever:yum install tftp tftp-sever

可以在这个网站搜索下载rpm包直接安装http://www.rpmfind.com

2、配置:

更改tftp配置文件 /etc/xinetd.d/tftp

vim /etc/xinetd.d/tftp,文件内容如下:

 

# default: off    //tftp服务默认是关闭的

# description: The tftp server serves files using the trivial file transfer \

# protocol. The tftp protocol is often used to boot diskless \

# workstations, download configuration files to network-aware printers, \

# and to start the installation process for some operating systems.

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot -c

disable = yes ——>disable = no

per_source = 11

cps = 100 2

flags = IPv4

}


注意:


l          把disable = yes修改成disable = no,或用chkconfig tftp on 也可以打开xinetd代理的tftp服务器

l          server_args = -s /home/yeling/tftpboot -c 中的“-s” 后面的目录是tftp服务器传输文件的目录,“-c”表示允许上传文件,如果没有这个目录,必须新建一个mkdir /tftpboot。

l          最好把该目录权限改为可读、可写、可执行——chmod 777 /tftpboot ,用户也可以设置成普通用户

l          命令下输入setup看一下 tftp服务是否开启,最好关闭防火墙(# /etc/init.d/iptables stop //关闭防火墙),关闭selinux(# setenforce 0)。

l          # service xinetd restart   //重启 xinetd 服务


3、测试


在终端上输入如下命令:

# tftp your-ip-address

tftp>get  <download file>

tftp>put  <upload file>

或者验证TFTP是否已经启动:

# netstat -nlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 3122/rpc.statd

tcp 0 0 127.0.0.1:32781 0.0.0.0:* LISTEN 4035/xinetd

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3103/portmap

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3324/httpd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3255/sshd

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3213/cupsd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3295/sendmail: acce

tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3415/0

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3324/httpd

udp 0 0 0.0.0.0:32768 0.0.0.0:* 3122/rpc.statd

udp 0 0 0.0.0.0:69 0.0.0.0:* 4035/xinetd

udp 0 0 0.0.0.0:69 0.0.0.0:* 4012/in.tftpd

udp 0 0 0.0.0.0:111 0.0.0.0:* 3103/portmap

udp 0 0 0.0.0.0:754 0.0.0.0:* 3122/rpc.statd

udp 0 0 0.0.0.0:631 0.0.0.0:* 3213/cupsd

4、烧写

(1)将zImage、root.cramfs这三个文件拷到主机/tftpboot目录下

(2)启动开发板,按ESC键调出vivi控制台(minicom的配置请自己查资料)

(3)设置开发板IP(内核启动后将失效)

vivi> set c 192.168.0.31

Set IP to 192.168.0.31

(4)设置tftp服务器IP(启动tftp服务器的linux主机):

vivi> set s 192.168.0.43

Set IP to 192.168.0.43

(5)烧写vivi

vivi> tftp flash vivi vivi

TFTPing vivi*..... OK.

received 146 blocks (74216 bytes)

Downloaded file via TFTP to 0x30000000, size = 74216 bytes

Found block size = 0x00014000

Erasing...    ... done

Writing...    ... done

Written 74216 bytes

(6)烧写内核:

vivi> tftp flash kernel zImage

TFTPing zImage*..................................................... OK.

received 1682 blocks (860176 bytes)

Downloaded file via TFTP to 0x30000000, size = 860176 bytes

Found block size = 0x000d4000

Erasing...    ... done

Writing...    ... done

Written 860176 bytes

(7)烧写根文件系统:

vivi> tftp flash root root.cramfs

TFTPing root.cramfs*.................................................................................................. OK.

received 3730 blocks (1908736 bytes)

Downloaded file via TFTP to 0x30000000, size = 1908736 bytes

Found block size = 0x001d4000

Writing...   size = 1908736

bad_block = 0

 ... done

Written 1908736 bytes

Congratulations!

 


 在fedora 8 中建立tftp 服务
2011-05-03 11:31 101人阅读 评论(0) 收藏 举报
1.安装xinetd
rpm -ivh   xinetd-2.3.14-15.fc8.i386.rpm
2.安装tftp client
rpm -ivh tftp-0.42-5.i386.rpm
3.安装tftp server
rpm -ivh tftp-server-0.42-5.i386.rpm
4.更改tftp配置文件 /etc/xinetd.d/tftp
vi /etc/xinetd.d/tftp,打开tftp文件,设置tftp的跟目录,开启服务。(没有安装tftp-server之前,不存在tftp文件)
service tftp
{
socket_type             = dgram
protocol                = udp
wait                    = yes
user                    = root
server                  = /usr/sbin/in.tftpd
server_args             = -s /tftpboot                  //tftpboot为你需要传输文件的目录;
#       disable                 = yes
per_source              = 11
cps                     = 100 2
flags                   = IPv4
}

在上述server_args设置tftp的工作目录,并且注释掉disable选项。

5. cd /

chmod 777 tftpboot/

6.启动tftp服务器

service xinetd restart

关闭system-config-securitylevel里面的SElinux:Disabled;Firewall:Disabled;