搭建tftp服务器----局域网内不同平台传输文件的桥梁

1.tftp简介

TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于 UDP 协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP 协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。这些概念是博主在网上抄来的,正确性无法确定,本博文主要是记录如何在ubuntu平台t搭建使用ftp服务器。

2.为什么要搭建tftp服务器

通常来说,我们开发ARM应用时,大多数使用x86平台编译,传输到ARM平台运行的开发模式。传输的方式有许多种:

1.使用U盘、SD卡:将文件拷贝到U盘,然后将文件从U盘拷贝进板子。(经常需要拔插,不方便)

2.将文件拷贝文件系统,重新制作文件系统,将新的镜像烧录进开发板。(频繁编译烧录,效率低)

3.使用NFS网络文件系统。(这种方式相当于共享文件夹,不过是通过网络进行共享,完成搭建环境后还是十分方便,后面博主也去尝试一下)

4.使用超级终端传输文件,这种方式通过串口传输文件需要确保串口连接且传输较慢。

5.使用tftp方式传输,这种方法配置十分简单,在window环境下甚至有直接使用的exe。

有需要的可以去网上寻找,通常来说我们需要使用linux环境进行交叉编译,所以我们此处介绍在ubuntu搭建tftp服务器。

3.搭建环境

安装xinetd, sudo apt-get install xinetd

安装tftp、tftpd,sudo apt-get install tftp tftpd

配置/etc/xinetd.d/tftp         (需要sudo),内容如下,网传需要内容需要严格对齐,但是不对其,博主也没发现什么问题。

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

我们比较关注的参数是server_args 即tftp服务器可提供下载的目录,此处是可以随意修改的,但是必须确保该目录是开放的,同时值得注意的是,tftp开放的只是一级目录,对下一级目录是不可操作的。

需要创建目录: 

mkdir /var/tftpboot/         (注意最后一个 / 不能省略)

修改权限:

chmod 777 /var/tftpboot/

4.开启、关闭服务器

开启:

sudo /etc/init.d/xinetd start

关闭:

sudo /etc/init.d/xinetd stop

重启:

sudo /etc/init.d/xinetd restart

5.x86平台linux之间传输文件

tftp传输文件双方必须都安装tftp,同时被获取方应该是服务器端。

输入tftp即可出现操作命令行,使用get xxx即可传输文件

6.ARM平台传输x86平台文件

ARM平台通常提供tftp服务,我们可以直接使用就行,但是必须确保双方处于同一局域网。

6.1 从X86获取文件

    tftp  -r/-l test -g 192.168.1.106
解释: 
    -l/-r:在不更改获取文件名的情况下,两者都可以
    test:获取的文件名
    -g :(get)下载
    192.168.1.106:tftp服务器的IP
    获取的文件存放在当前路径下。
2、更名获取
    tftp  -l hello -r test -g 192.168.1.106
解释:
    -l :(local)本地
    hello:存放到本地的文件名
    -r :(remote)远程
    test:存放到远程的文件名
    -g :(get)下载
    test :获取的文件名
    192.168.1.106 :tftp服务器的IP

6.1 发送文件到X86

    tftp  -r test -p 192.168.1.106
解释:
    -r :(remote)远程
    test:存放到远程的文件名
    -p :(push)下载
    test :获取的文件名
    192.168.1.106 :tftp服务器的IP

但是远程tftp指定的文件夹必须有对应名称的文件,并且文件具有读写操作权限:不然会出现如下错误

tftp: server error: (2) Access violation

创建文件(touch),修改权限(chmod)就可以。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值