Ubuntu 建立tftp服务器

在嵌入式linux开发过程中需要使用tftp方式从Linux主机下载文件到板子中,因此需要在主机linux系统中安装tftp服务器。

Ubuntu-9.10中安装tftp服务器的方法如下:

4.2.1 安装程序

通过软件管理安装 tftp tftpd,前者是客户端,后者是服务程序。系统根据依赖会选上openbsd-inetd。在Ubuntu的终端下输入命令如下:

sudo apt-get install tftp tftpd

sudo apt-get install xinetd

注:sudo命令意思是:使用管理权限。如果已经进入了管理员模式,那么上面命令就不用加sudo了。直接使用 apt-get install tftp tftpd即可

进入管理模式方法是:

1.       输入命令:sudo –i 随后输入密码即可(密码是不显示的,不要认为有问题哦O(_)O~)。

2.       输入命令:sudo su 随后输入密码即可。

上面两个命令的不同,在linux下试下就明白啦,或者使用百度哦。给个参考图:

                              使用sudo –i命令

                             使用sudo su命令

4.2.2 配置相关服务文件xinetd.conf

在输入命令前,需要说明一下键盘上Tab键的使用,这是一个小技巧。例如你要想修改下面的xinetd.conf文件,你只需要输入cd /e然后按一下Tab键,系统会帮您自动补全文件或者文件夹名字。当然这是建立在文件名是唯一的基础上的,这个方法在开发板的linux下同样适用,详细的使用,大家百度下吧。

配置相关服务文件。进入根目录下的etc文件夹(命令是cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:
# Simple configuration file for xinetd   
#   
# Some defaults, and include /etc/xinetd.d/   
defaults

{

# Please note that you need a log_type line to be able to uselog_on_success

# and log_on_failure. The default is the following :

# log_type = SYSLOG daemon info

}   
includedir /etc/xinetd.d

注:打开xinetd.conf文件(其他文件都是类似)的方法介绍两种。

1、使用vimxinetd.conf(或者vi xinetd.conf)。打开后处于不能编辑状态,这时按下键盘的字母’I’键,即可进入编辑模式。可以使用copy方式,不过最好使用鼠标右键copy的方式,不要使用Ctrl+ c的方式。编辑完成后,按下键盘的Esc键进入vim的命令模式,这时输入冒号’:’(注意是英文冒号),然后输入wq即可保存退出。对于vim的详细介绍请参考vim的命令大全,百度即可。

2、使用geditxinetd.conf。打开后跟windows的记事本操作类似,保存也是使用Ctrl+S,其他就不多说了。初学者推荐使用该方式。

注意如果出现xinetd.conf修改完成后无法保存的问题,提示无权限。那么使用sudo chmod 777 xinetd.conf命令修改一下操作权限即可。

4.2.3 配置tftp服务器

输入命令:sudo vim /etc/default/tftpd-hpa 或者sudo gedit /etc/default/tftpd-hpa打开tftpd-hpa文件,把内容修改成:

TFTP_USERNAME="tftp"
      TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="0.0.0.0:69"
      TFTP_OPTIONS="-l -c -s" 

/tftpboot是你tftp服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为777,命令sudo chmod777 /tftpboot。建立方法稍后介绍。

4.2.4 修改tftp文件

使用命令:cd /etc/xinetd.d 进入xinetd.d文件夹。查看是否有tftp文件,如果没有就新建一个,如果有的话修改成下面的内容。

输入命令vim tftp(或者gedit tftp),然后查看修改:

service tftp
     {
       socket_type = dgram
       wait = yes
       disable = no
       user = root
       protocol = udp
       server = /usr/sbin/in.tftpd
       server_args = -s /tftpboot
       #log_on_success += PID HOST DURATION
       #log_on_failure += HOST
       per_source = 11
       cps =100 2
       flags =IPv4
     }

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。

4.2.5 建立tftpboot文件夹及修改其权限

输入命令:sudo mkdir /tftpboot

然后修改成最宽松的权限:sudo chmod 777 /tftpboot

4.2.6 重新启动服务

先输入命令:sudo /etc/init.d/xinetd reload重新加载一下进程。

然后输入命令:sudo /etc/init.d/xinetd restart重启服务。

注意,每次修改完配置文件后,都需要重新启动一下服务。

4.2.7 测试tftp服务器

检查tftp是否打开:chkconfig--list 如果没有打开,则用这个命令也可以打开:sudo chkconfig tftp on。

通过以上步骤就可以建立好tftp服务器了,可以在本地先进行一下测试。

一、先在tftpboot建立一个文件,随意建立,然后在文件里随意输入信息。命令是:

       1.输入:cd /tftpboot进入tftpboot文件夹。

       2.输入:touch realarm.txt建立一个realarm.txt文件。

3.输入:vim realarm.txt 然后输入”tftp test”编辑方法见4.2.2的“注”。或者使用gedit realarm.txt进行编辑。我使用的是gedit进行的编辑,如下图所示。

二、进入另一个文件夹进行测试(是非tftpboot文件夹,统一一下,我们选择在根目录的mnt文件夹下测试)

       1.先进入mnt文件夹:cd /mnt

       2.输入命令:sudo tftp 127.0.0.1(或者sudo tftp localhost也就是本机ip地址)

       3.输入命令:get realarm.txt 如果received提示,就说明传输成功了

       4.输入命令:q退出tftp模式

       5.输入命令:ls查看mnt目录是否有realarm.txt文件。

先来看看mnt文件夹下有哪些文件

可以看到只有hgfs文件夹,其他没有任何文件。

tftp测试操作演示如下:

可以看到操作成功。那么打开来看看内容是否一样。输入gedit realarm.txt或者使用vim realarm.txt。看下图所示可知,tftp建立与测试已经成功了,呵呵。又向成功迈进一步啦!

上面测试的是接收文件,发送文件也是可以的,使用put命令。在mnt文件夹随意建立一个文件,随意输入信息。然后使用“put 文件名“即可。

若在使用put时出现如下错误

Access violation

原因在于:tftp服务器默认可以下载,但是上传就必须在tftpboot目录下有一个同名文件,并且要有可读写的权限!

解决方法如下:

首先tftpboot目录要有读写权限,为了确保可使用命令sudo chmod 777 /tftpboot进行修改。

tftpboot目录下建立一个要上传的同名文件,并改变权限为777(或者666),就可以了正常put了。

 

       busybox的tftp用法简要说明

tftp [OPTION]...HOST [PORT]

OPTION:

-l FILE  本地文件

-r FILE  远程文件

-g 下载

-p 上传

例子:

下载:tftp -r test.txt -g 192.168.1.100

上传:tftp -l test.txt -rtest.txt -p 192.168.1.100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值