ubuntu下搭建tftp服务器,使用命令,以及错误调试

1.搭建tftp服务器

TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。
在嵌入式Linux开发中,TFTP协议在很多场合都被用到,甚至是必不可少的,特别是在内核调试阶段,在U-Boot下通过TFTP协议从服务器上加载内核并运行,既方便又快捷。
一般的发行版默认都没有安装TFTP服务以及TFTP服务器。TFTP服务依赖于网络守护进程服务程序,可选择安装inetd或者升级版的xinetd,然后安装tftp和tftp-server,接着修改或者创建/etc/xinetd.d/tftp配置文件,最后重启xinetd,启动TFTP服务。无论采用什么发行版,TFTP服务器的安装都是这样的流程,只不过不同发行版的安装命令不同而已,下面以ubuntu为例进行说明。
安装xinetd:
ky@ubuntu:~$ sudo apt-get install xinetd
 安装tftp和tftpd:
ky@ubuntu:~$ sudo apt-get install tftp tftpd
或者安装tftp的增强版本tftp-hpa:
ky@ubuntu:~$ sudo apt-get install tftp-hpa tftpd-hpa
建立配置文件。建立/etc/xinetd.d/tftp文件,写入如下内容:
service tftp
{
        socket_type    = dgram
        protocol       = udp
        wait           = yes
        user           = root
        server         = /usr/sbin/in.tftpd
        server_args    = -s /var/tftpboot/ -c
        disable        = no
        per_source     = 11
        cps            = 100 2
        flags          = IPv4
}

说明:修改项server_args= -s     <path>    -c,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。


其中server_args设置的/var/tftpboot目录是tftp服务器的目录,设置其访问权限为777:
ky@ubuntu:~$ sudo mkdir -pv  /var/tftpboot/
ky@ubuntu:~$ sudo chmod 777 /var/tftpboot/

2. 启动或者重启xinetd服务:
ky@ubuntu:~$ sudo /etc/init.d/xinetd start或者restart
本机测试。在/tftpboot目录下创建一个ky文件,启动另外一个终端,输入:
ky@ubuntu:~$ tftp 127.0.0.1
tftp> get ky     #获取ky文件
tftp> q                        #退出tftp
  在终端输入ls命令,可以看到当前目录下看到ftp获取到的ky文件。

3.tftp命令用法

tftp     your-ip-address

【进入TFTP操作】
connect
:连接到远程tftp服务器
mode
:文件传输模式
put
:上传文件
get
:下载文件
quit
:退出
verbose
:显示详细的处理信息
tarce
:显示包路径
status
:显示当前状态信息
binary
:二进制传输模式
ascii
ascii 传送模式
rexmt
:设置包传输的超时时间
timeout
:设置重传的超时时间
help
:帮助信息
:帮助信息

4. Busyboxtftp命令

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。

-g 表示下载文件 (get)
-p 
表示上传文件 (put)
-l 
表示本地文件名 (local file)
-r 
表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令

tftp -g  -r embedexpert 192.168.1.2

5.报错处理

如果出现Error code 1: File not found 解决办法:

sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot " //改成你想要的那个tftpboot
TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"        //这里是选项

然后记得重启服务, sudo /etc/init.d/xinetd restart

如果还是上面的错误,把文件复制到 /var/lib/tftpboot ,再试下,如果成功,则要重启系统使上面的配置生效。

以后就可以用你改的那个tftpboot了。

4.测试tftp服务   
cd /tftpboot     echo "hello tftp service">>a.txt   
进入到其它目录执行   
echo "hello tftp service,put to tftp serive">>b.txt   

tftp localhost    
get a.txt    
put b.txt    

其中get是取得文件,put是将文件上传到TFTP服务器上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值