lv3 嵌入式开发-9 linux TFTP服务器搭建及使用

目录

[1 TFTP服务器的介绍](#1 TFTP服务器的介绍)

[2 TFTP文件传输的特点](#2 TFTP文件传输的特点)

[3 TFTP服务器的适用场景](#3 TFTP服务器的适用场景)

[4 配置介绍](#4 配置介绍)

[4.1 配置步骤](#4.1 配置步骤)

[4.2 使用](#4.2 使用)

[5 常见错误](#5 常见错误)


1 TFTP服务器的介绍

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

2 TFTP文件传输的特点

tftp使用客户服务器方式和使用UDP数据报,因此tftp需要有自己的差错改正措施。(如丢包)

tftp支持小文件传输。(FTP)

tftp没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。(必须提前知道目录)

3 TFTP服务器的适用场景

场景需求:频繁修改内容

如需要下载开发板xx.bin文件,电脑上不断调整下载到开发板

4 配置介绍

4.1 配置步骤

测试ubuntu网络情况

复制代码
 ping www.baidu.com

检测软件源更新

复制代码
sudo apt-get update

安装客户端(tftp)和服务器(tftpd)

复制代码
sudo apt-get install tftpd-hpa tftp-hpa

编辑配置

复制代码
sudo vi /etc/default/tftpd-hpa

内容 如下

复制代码
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/linux/tftpboot"     //我们设定的TFTP根目录;mkdir创建
TFTP_ADDRESS="0.0.0.0:69"       //ip和端口号 0.0.0.0代表任意ip都可以
TFTP_OPTIONS="-c -l -s"              //TFTP启动参数

#-l:以standalone/listen模式启动TFTP服务,而不是从xinetd启动。(不需要依赖其他进程)

#-c:可创建新文件。默认情况下,TFTP只允许覆盖原有文件,不能创建新文件。

#-s:改变TFTP启动的根目录。不用手动指定目录,默认使用配置文件中的目录。 

给文件目录一个权限

复制代码
chmod 777 tftpboot

启动服务

复制代码
sudo service tftpd-hpa restart

4.2 使用

连接服务器 localhost代表本地。

get filename 获取文件

put filename 上传文件

q 退出

复制代码
linux@linux:~$ tftp localhost
tftp> get test
tftp> q                       
linux@linux:~$ cat test 
hello
linux@linux:~$ 

5 常见错误

错误现象: Transfer timed out

原因:tftpd服务没有启动

解决方法:启动服务 sudo service tftpd-hpa restart

错误现象:Error code 2:Only absolute filenames allowed

原因:在/etc/default/tftp-hpa中配置出错

解决方法:参考手册重新配置

错误现象:Error code 1:File not found

原因:指定的文件不存在; tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下

错误现象: tftp:Permission denied

原因:权限不足

解决方法:检查文件的权限(要考虑是本用户、同组、其他用户)chmod 777

相关推荐
数智工坊3 小时前
Zotero自建Ubuntu WebDAV附件同步方案(完美解决存储空间不足)
linux·运维·ubuntu
江畔柳前堤4 小时前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
ltl5 小时前
HTTP/3 实战:从 QUIC 到 H3 的完整请求链路
linux
ltl5 小时前
POSIX 文件锁:flock、fcntl 与 NFS 上的工程陷阱
linux
ltl5 小时前
CUDA 生态:cuBLAS、cuDNN、NCCL、Triton、CUTLASS
linux
饺子大魔王的男人5 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
不会就选b5 小时前
Linux之信号(二)
linux·运维·服务器
我是小灰灰吖6 小时前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
GlueNa2SiO36 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
寺中人7 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门