Linux工具篇 | Ubuntu搭建TFTP服务器

一、执行以下命令安装TFTP服务器

$ sudo apt-get install tftp-hpa tftpd-hpa

二、建立TFTP传输目录

$ sudo mkdir /tftpDir
$ sudo chmod 777 /tftpDir

在目录内新建一个测试文件:

$ cd /tftpDir
$ touch test.txt

在 test.txt 文件输入内容以便区分:

$ echo test > test.txt

三、配置TFTP

$ sudo vi /etc/default/tftpd-hpa

添加以下内容:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpDir"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
  • 第 2 行设置你的tftpd-hpa服务目录(注意路径),也就是你目录实际所在的路径;
  • 第 4 行服务选项中的 -l 是以standalone/listen模式启动TFTP服务,而不是从inetd启动;-c 为可创建新文件,默认情况下,TFTP只允许覆盖原有文件,不能创建新文件;-s 为改变TFTP启动的根目录,当加了 -s 后,客户端使用TFTP时,不再需要输入指定目录、填写文件的完整路径,而是使用配置文件中写好的目录。

四、重启服务

$ sudo service tftpd-hpa restart

五、测试

$ cd /home
$ sudo tftp 127.0.0.1
tftp> get test.txt
tftp> q

退出后,在 /home 目录下会有一个 test.txt 文件!查看一下文件的内容:

$ cat test.txt 
test

内容无误,这表示TFTP服务器安装成功!


*六、关于TFTP协议

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是 TCP/IP 协议族中一种简单的文件传输协议,用来在客户端与服务器之间进行文件传输。

TFTP 基于 UDP 协议进行文件传输。与 FTP 协议不同的是,TFTP 传输文件时不需要用户进行登录。它只能从文件服务器上下载或上传文件,不能列出目录。

(1)协议模式

TFTP 协议模式类似于客户端发送请求,服务器进行响应。由于 TFTP 是基于 UDP 协议的,而 UDP 数据包本身就不是很安全,即发送端发送的数据是否能成功到达接收端是不能确定的。

因此,为了能够让发送端知道接收端已经接收到了发送端发来的数据包,接收端对接收到的每一个数据包都进行确认。

(2)报文类型

TFTP 客户端与服务器进行信息交互的过程中有 5 种报文类型。每种报文类型及含义如下:

  • Read Request(RRQ):请求读取报文,表示客户端向 TFTP 服务器发送读取请求,希望从 TFTP 服务器上读取文件,即下载文件。
  • Write Request(WRQ):请求写入报文,表示客户端向 TFTP 服务器发送写入请求,希望向 TFTP 服务器写入文件,即上传文件。
  • Data(DATA):传输数据包报文,表示客户端与 TFTP 服务器之间进行文件的数据传输。
  • Acknowledgment(ACK):确认报文,表示对请求读取、请求写入和传输数据包进行确认。
  • Error(ERROR):差错报文,在文件传输过程中,如果出现读取和写入错误,将会产生这种数据包。

猜你喜欢

转载自blog.csdn.net/Neutionwei/article/details/108298784