TFTP服务器搭建和测试

基本知识: TFTP简单文件传输协议,是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合开销不大,不复杂的应用场合。
TFTP协议专门为小文件传输而设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。

一、搭建服务器

1.安装xinetd

 sudo apt-get install xinetd

在这里插入图片描述

2.安装tftp和tftpd

sudo apt-get install tftp tftpd

在这里插入图片描述

3.配置/etc/xinetd.d/tftp文件(一定要对齐,严格按照格式输入)

在Ubuntu下新建这个文件

vim /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/
	disable = no
	per_source= 11
	cps = 100 2
	flags = IPv4
}

粘贴之后
严格按照下面的格式对齐
在这里插入图片描述
实践:
在这里插入图片描述

4.服务器目录

tftp文件中的/var/tftpboot是服务器的目录
新建tftp服务器目录

mkdir /var/tftpboot

修改权限为777

chmod 777 /var/tftpboot

5.重启xinetd服务

sudo /etc/init.d/xinetd restart

在这里插入图片描述

二、 TFTP服务器测试

参数说明

参数说明:-l  是local的缩写,后跟存在于Client的源文件名,或下载Client后  重命名的文件名。 
          -r   是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文 件名,或上传Server后重命名后的文件名。 
          -g  是get的缩写,下载文件时用, 
          -p  是put的缩写,上传文件时用, 
          tftp 默认占用的是69端口。 

1.本机测试:

在/var/tftpboot 下面建立一个文件test 输入任意内容

vim /var/tftpboot/test

在这里插入图片描述
启动另一个终端
输入命令tftp 127.0.0.1
输入get test
输入q可以退出
在这里插入图片描述
退出后,使用ls命令可以发现当前目录下有test文件,如果这文件和服务器中的test文件内容一模一样,表明服务器搭建成功
在这里插入图片描述

vim test

在这里插入图片描述

2.开发板测试

下载和上传文件更名
下载:
tftp –g –l 目标文件名 –r 源文件名 服务器地址
例如:

 tftp –g –l B.txt –r A.txt 192.168.1.3
 的作用是从server中的tftp根目录下,下载文件A.txt到Client并更名为B.txt;若不更名,B.txt就改为A.txt. 

上传:
tftp –p –r 目标文件名 -l 源文件名 服务器地址

tftp –p –r D.txt –l C.txt 192.168.1.3 
的作用是从Client上传文件C.txt到Server的tftp根目标下,并更名为D.txt;若不更名,D.txt就改为C.txt. 

下载和上传不更名
下载:
tftp –g –l/-r 源文件名 服务器地址
(此时参数-l与-r等效,使用时只使用其中一个);

如tftp –g –l A.txt 192.168.1.3或 tftp –g –r A.txt 192.168.1.3 
  
作用相同,都表示Client从Server下载文件A.txt,且不更名。 

上传:
tftp –p –l/-r 源文件名 服务器地址
(此时参数-l与-r等效,使用时只使用其中一个);

如tftp –p –l B.txt 192.168.1.3或 tftp  -p –r B.txt 192.168.1.3 
  
作用相同,都表示从Client上传文件B.txt到Server,且不更名。

开发板测试:
在这里插入图片描述

简单说明 工具支持:串口通讯、串口代理、TCP、UDP、Telnet、Ping、TFtp等通讯测试 1、本工具支持固定预定义命令,命令可以进行分组,由树形控件管理。点击“命令编辑”即可编辑预定义命令, 编辑保存后点击“命令更新”按钮,新命令即显示在左侧“命令树”中,预定义命令支持ASCII码字符串格式 、十六进制格式与转义(混合)命令格式(如"abc\r\n12345\xAB \x45"); 2、支持动态命令,如命令中含有帧长度、校验等数据项目,命令可以进行分组,由树形控件管理。方法上采用 Lua脚本语言进行扩展,扩展的界面内容包含终端窗口的右键菜单、脚本窗口的按钮事件、扩展的树命令; 3、支持命令终端模式,功能类似Windows下的超级终端,可以进行复制、粘贴等操作,可以上下翻页滚动; 在终端窗口可以通过鼠标滚轮上下滚动,可以通过“Ctrl+箭头”、“Ctrl+翻页键”上下翻页操作; 4、工具支持ZModem协议进行文件下载、上传,方便与Linux终端间交换数据; 5、支持用Lua脚本对接收到的数据进行解析,支持用脚本语言直接进行发送操作; 6、支持数据触发模式,当串口(Socket)接收到预定义格式的数据时,可以直接触发脚本内指定的函数事件; 7、支持串口回环模式,发出的数据自动返回,便于脚本调试; 8、支持常用工具嵌入到本界面内部,由脚本定制具体程序名称,如计算器、Dnw、记事本、命令行等,在操作上 形同一个整体; 9、具有串口数据记录功能,每天记录一个文件,可以加上时间标记,方便查看历史操作、历史数据; 10、可以采用脚本进行定时发送、循环发送、总线循访等操作流程; 11、Lua脚本支持发送字节到串口(Socket)、发送字符串到串口(Socket)、延时、定时器、事件触发、界面定制等操作; 12、支持命令行内容自动滚动记录功能,方便使用历史命令; 13、支持窗口总在最前模式(top on most),方便在进行其它任务,监通讯操作; 14、支持脚本扩展的语音提示功能(播放指定的Wav文件),可以用在接收到指定数据、帧错误、校验错、定时 操作完毕、超时等场合,方便提醒调试人员; 15、支持发送文件操作,包含每次发送的长度、间隔时间等,也可以通过脚本语言读取文件进行自定义格式发送, 如包含同步、长度、校验等信息。 ... ------------lua 可调用的服务函数--------------------------------- SendByte 向串口(Socket)发送一个字节 SendString 向串口(Socket)发送字符串 SendHexString 向串口(Socket)发送字符串,例子:SendHexString("12 34 56 AB 5F"); GetString 通过录入窗口获取字符串 Sleep 休眠 Wait 等待,事件继续触发 GetDateTimeStr 取得当前时间字符串 Print 打印输出信息到输出窗口 print 打印输出信息到输出窗口 PrintToCommWin 打印输出信息到串口信息窗口 PrintAsChar 打印输出信息到输出窗口(数据类型转换为字符型) ClearOutput 清除输出窗口内容 IntToChar 数据类型转换为字符型 SetButtonText 设置按钮文本 WinExec 运行外部应用程序 WinExecInWindow 运行外部应用程序(嵌入到窗口内部) GetExeDir 取得应用程序的路径 SetMenuItemText 设置终端模式下的串口(Socket)信息窗口的弹出菜单内容 GetClipboardText 获取剪贴板数据 CopyToClipboard 复制数据到剪贴板 AddLuaTreeNode 在扩展命令树中增加一个节点 PlayWave 播放语音文件 SetCmdLineText 设置命令输入行内容 GetCmdLineText 获取命令输入行内容 IntToHex 数据转换为十六进制字符串 IntToStr 数据转换为字符串 StrToInt 字符串转换为整形 bit_not 数据取反 bit_and 数据相与 bit_or 数据相或 bit_xor 数据相异或 bit_shl 数据左移 bit_shr 数据右移 GetFileName 获取文件名 inet_addr ip地址转换 SubString 取得子字符串 SetLuaTreeNodeText 设置树节点文字 SetLuaTreeNodeParam 设置树节点参数 ShowVclForm 显示扩展界面 ShowOutputForm 显示输出界面 ShowCodeForm 关闭代码窗口 HideCodeForm 关闭代码窗口 HideSendForm 关闭发送窗口 ShowSendForm 显示发送窗口 GetPathName 通过GUID获取设备名称 FileOpen 打开文件 FileSeek 移动文件指针 FileRead 读取文件 FileWrite 写文件 FileClose 关闭文件 AllocMem 分配内存 FillMem 填充1个字节到内容 GetMem 获取1字节内容内容 FreeMem 是否内存 SaveParam 保存参数到UserParam.ini GetParam 读取参数,从UserParam.ini AddBufDat 对内存内容按字节累加求和,通常用于计算校验 Update 界面刷新 ShowMessage 消息窗口 ShowLeftTools 显示左边工具栏 ShowRightTools 显示右边工具栏 ShowTerminal 显示终端窗口 HideLeftTools 隐藏左边工具栏 HideRightTools 隐藏右边工具栏 HideTerminal 隐藏终端窗口 ClearCommWin 清除通讯窗口内容 GotoCommWin 设置坐标 PrintToTerminal 打印信息到终端窗口 GetSendWinSelText 取得发送窗口中选中的数据 ClearVclControls 清除脚本语言创建的控件 ------------lua 事件----------------------------------- ReceivedByte 串口(Socket)接收到一个字节数据 ReceivedTrigData 串口(Socket)接收到特定格式数据 ProcessTrigData 串口(Socket)接收完特定格式数据后进行一次性处理 Timer100ms 100毫秒定时器事件 Timer500ms 1500毫秒定时器事件 Timer1000ms 1000毫秒定时器事件 Button1Clicked 按钮1单击事件 Button2Clicked 按钮2单击事件 Button3Clicked 按钮3单击事件 Button4Clicked 按钮4单击事件 Button5Clicked 按钮5单击事件 Button6Clicked 按钮6单击事件 Button7Clicked 按钮7单击事件 Button8Clicked 按钮8单击事件 MenuItem0Clicked 弹出菜单项0单击事件 MenuItem1Clicked 弹出菜单项1单击事件 MenuItem2Clicked 弹出菜单项2单击事件 MenuItem3Clicked 弹出菜单项3单击事件 MenuItem4Clicked 弹出菜单项4单击事件 MenuItem5Clicked 弹出菜单项5单击事件 MenuItem6Clicked 弹出菜单项6单击事件 MenuItem7Clicked 弹出菜单项7单击事件 MenuItem8Clicked 弹出菜单项8单击事件 MenuItem9Clicked 弹出菜单项9单击事件 MenuItem10Clicked 弹出菜单项10单击事件 MenuItem11Clicked 弹出菜单项11单击事件 MenuItem12Clicked 弹出菜单项12单击事件 MenuItem13Clicked 弹出菜单项13单击事件 MenuItem14Clicked 弹出菜单项14单击事件 MenuItem15Clicked 弹出菜单项15单击事件 MenuItem16Clicked 弹出菜单项16单击事件 MenuItem17Clicked 弹出菜单项17单击事件 MenuItem18Clicked 弹出菜单项18单击事件 MenuItem19Clicked 弹出菜单项18单击事件 转义字符 含义 ASCII码(16/10进制) \n 换行符(LF) 0AH/10 \r 回车符(CR) 0DH/13 \\ 反斜杠 5CH/92 \ddd 任意字符 1~3位十进制 \xhh 任意字符 1~2位十六进制 继续完善中,欢迎提出宝贵意见。 本软件版本:V1.25 作者:baohongjie@126.com
### 回答1: 在Linux下搭建TFTP服务器,可以按照以下步骤进行: 1. 安装TFTP服务器软件。可以使用命令行工具安装,如在Ubuntu下使用apt-get命令:sudo apt-get install tftpd-hpa 2. 配置TFTP服务器。可以编辑/etc/default/tftpd-hpa文件,设置TFTP服务器的根目录、IP地址等参数。 3. 启动TFTP服务器。可以使用命令行工具启动TFTP服务器,如在Ubuntu下使用命令:sudo service tftpd-hpa start 4. 测试TFTP服务器。可以使用TFTP客户端工具测试TFTP服务器是否正常工作,如在Ubuntu下使用命令:tftp localhost 以上是简单的TFTP服务器搭建步骤,具体操作可以根据不同的Linux发行版和TFTP服务器软件进行调整。 ### 回答2: tftp(Trivial File Transfer Protocol)是一种简单的文件传输协议,在linux系统中,可以使用tftp服务器来进行文件传输。搭建tftp服务器需要以下步骤: 1.安装tftp服务器软件。 在linux系统中,可以使用yum命令安装tftp服务器软件,命令如下: sudo yum install tftp-server 2.配置tftp服务器。 tftp服务器的配置文件位于/etc/xinetd.d/tftp,需要修改这个文件来进行配置。修改前需要备份,命令如下: sudo cp /etc/xinetd.d/tftp /etc/xinetd.d/tftp.bak 然后使用编辑器打开tftp配置文件,修改以下内容: service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 其中server_args = -s /var/lib/tftpboot指定tftp服务器的根目录。如果需要修改根目录,可以在修改server_args。 3.创建tftp服务器根目录。 使用以下命令创建tftp服务器的根目录: sudo mkdir /var/lib/tftpboot 然后使用chmod命令设置权限: sudo chmod -R 777 /var/lib/tftpboot 4.添加需要传输的文件。 将需要传输的文件放入tftp服务器的根目录中,例如: sudo cp testfile /var/lib/tftpboot 5.启动tftp服务器。 使用以下命令启动tftp服务器: sudo systemctl start tftp.socket 6.测试tftp传输。 使用以下命令测试tftp传输: tftp 127.0.0.1 tftp> get testfile 执行get命令后,testfile文件会被传输到当前目录。 7.开机启动tftp服务器。 使用以下命令设置tftp服务器开机启动: sudo systemctl enable tftp.socket 至此,tftp服务器搭建完成。 总结: 通过以上步骤,可以很方便地在linux系统中搭建tftp服务器,进行文件传输。在使用tftp服务器时需要注意,该协议具有安全性低,传输速度慢等缺点,因此在传输敏感信息时需要谨慎使用。 ### 回答3: TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一个非常轻量级的文件传输协议,用于在计算机之间传输文件。Linux系统自带了TFTP服务器和客户端,这意味着您可以很容易地在Linux系统上搭建TFTP服务器。 以下是在Linux系统上搭建TFTP服务器的步骤: 第一步:安装TFTP服务器 在Linux的命令行界面下,输入以下命令安装TFTP服务器: sudo apt-get install tftpd-hpa 如果你的Linux版本不是Ubuntu,你需要切换到适当的Linux包管理器,并下载安装tftpd-hpa。 第二步:配置TFTP服务器 在Linux系统上,TFTP服务器的默认目录为“/tftpboot”。您可以在这个目录下创建任意子目录来存储您要传输的文件。要创建新的目录,可以使用以下命令: sudo mkdir /tftpboot/new_directory 接下来,为了确保TFTP服务器具有对这个目录的完全访问,您需要在/etc/xinetd.d/tftp中编辑以下标题: service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no } 请确保将路径“/tftpboot”更新为您要用作TFTP服务器的目录的实际路径。 第三步:启动TFTP服务器 在您完成配置后,您需要重新启动TFTP服务器,才能应用新的配置。输入以下命令,以重新加载TFTP服务器从而生效配置。 sudo /etc/init.d/xinetd restart 现在,您的TFTP服务器已经成功地安装并启动,您可以开始在计算机之间安全地传输文件。在使用TFTP客户端时,请确保您的客户端也在同一个局域网中,不然可能需要配置路由器端口转发以获得远程访问。 总结 正如您所看到的,使用Linux系统在计算机之间安全地传输文件是一件非常简单的事情。现在您可以轻松地使用TFTP服务器,根据需要将文件从一个计算机传输到另一个计算机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值