Linux学习笔记6

TFTP 服务器搭建和测试

关于TFTP:TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于UDP 协议实现 的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大、不复杂的应用场合

搭建服务器

首先,打开ubuntu终端,输入命令“sudo apt-get install xinetd”,安装xinetd

注释:xinetd 的主要作用是监听并管理各种网络服务的连接请求。

它可以通过配置文件来定义服务及其相关参数,如监听端口、协议类型、启动脚本等。当有客户端发送连接请求时,xinetd 可以根据配置文件中的规则决定是否接受连接并将连接转发给相应的服务进程处理。这种按需启动服务的方式可以极大地减少系统资源的消耗,提高系统的安全性和效率。

输入命令“sudo apt-get install tftp tftpd”安装tftp 和tftpd,然后建立TFTP 的配置文件,使用命令“vi /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
}

注释:service tftp: 定义了服务名称为 tftp

socket_type = dgram: 指定了使用数据报(datagram)类型的套接字进行通信

server = /usr/sbin/in.tftpd: 指定了 tftp 服务器进程的可执行文件路径

server_args = -s /var/tftpboot/: 指定了 tftp 服务器进程的参数,其中 -s 表示指定 TFTP 的根目录为 /var/tftpboot/ ——————TFTP 客户端就是从这个目录里面获取服务器上的文件

之后建立mkdir /var/tftpboot 建立tftp 服务器的目录,设置访问权限777

之后输入:sudo /etc/init.d/xinetd restart 命令重启xinetd 服务

这一步就搭建好了服务器

服务器测试

在/var/tftpboot (上面提到的TFTP 的根目录)下面建立一个文件test,在里面输入hello world,之后打开另一个终端,输入tftp 127.0.0.1,之后输入get test获取test文件,输入q退出tftp

之后用ls看有没有test文件,如果有就用cat查看文件内容是不是hello world,如果是就测试成功完成。

注释:

  • tftp:表示要使用 TFTP 协议进行文件传输。
  • 127.0.0.1:表示本地回环地址,也就是指向本地计算机的 IP 地址。

通过运行这个命令,你可以在本地计算机上创建一个 TFTP 客户端,并尝试与同一台本地计算机上运行的 TFTP 服务器进行文件传输

开发板实现TFTP 文件传输
IP地址的查看

用ifconfig看的是Ubuntu系统下的IP,使用SSH 软件和Ubuntu 连通传文件,就需要先在Ubuntu 下查看IP 地址。

开发板的IP,在查看最小文件系统的etc 文件可以看到默认的IP地址

子网掩码的查看

使用ifconfig,可以查看Ubuntu 系统下的子网掩码

查看最小文件系统的etc/eth0-setting 文件可以看到默认的子网掩码

如何确认IP地址在不在一个网段:

如果大家计算发现Ubuntu 系统的IP 和开发板的IP 不在同一网段,则需要修改开发板的
IP。【因为如果Ubuntu系统的IP地址与开发板的IP地址不在同一网段,它们之间无法直接进行通信。在局域网中,不同网段的设备之间需要通过路由器或者网络设备进行数据包转发才能实现通信。如果想Ubuntu系统和开发板能够互相通信,需要将它们的IP地址设置在同一网段内。这样它们就可以直接通过局域网进行通信,而无需经过路由器。

单纯的两个IP 不能直接拿来确认是不是在同一网段,必须结合子网掩码经过计算才能得出
结论。
计算方法是:两个IP 分别和相应的子网掩码做与运算,得出的结果相等则表明在同一网段

如果要改开发板的默认的IP,子网掩码,网关,DNS,MAC,要在文件系统的etc/eth0-setting 文件里更改

客户端的测试

首先看一下TFTP 服务器的IP 地址,输入“ifconfig”

可见tftp的ip地址是192.168.1.109,开发板的默认IP 是192.168.1.230,它们在同一个网段

之后开发板连到电脑上,然后输入ping 命令确认开发板和TFTP 服务器是连通

超级终端返回“xx bytes from xx.xx.xx.xx"就是连通的

在开发板的串口输入:tftp -g -l test -r test 192.168.1.109,获取文件test

注释:

  • tftp:表示要使用TFTP协议进行文件传输。
  • -g:表示使用“get”模式,即从服务器下载文件到客户端。
  • -l test:表示将下载的文件保存为本地文件名为test。
  • -r test:表示从服务器上获取的文件名为test。
  • 192.168.1.109:表示TFTP服务器的IP地址,即文件传输的目标地址。

之后可以用cat指令去查看下载的test文件,看看是不是‘hello world”,是的话就说明测试成功

我们之前调试程序都是用U盘将某个文件挂载在开发板上,现在我们可以用TFTP去调试程序

在虚拟机的Ubuntu 上编写过一个输出helloworld 的小程序,然后通过交叉编译器编译这个程序生成了可执行文件helloworld,通过cp 命令把这个可执行程序helloworld 拷贝到了/var/tftpboot 目录下,在开发板的串口上执行“tftp -g -l helloworld -rhelloworld 192.168.1.109”

输入ls 命令查看一下当前目录,可以看到已经有helloworld 这个文件了,使用命令“./helloworld”运行程序,会发现输出”hello world“

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后量子密码的发展和应用

后量子算法,特别是后量子密码(PQC),是近年来密码学领域的一个热门话题。随着量子计算技术的快速发展,传统的公钥密码算法面临着被量子计算机破解的威胁。为了应对这一挑战,后量子密码应运而生,成为了一种能够抵抗量子计…

【论文笔记】| 蛋白质大模型ProLLaMA

【论文笔记】| 蛋白质大模型ProLLaMA ProLLaMA: A Protein Large Language Model for Multi-Task Protein Language Processing Peking University Theme: Domain Specific LLM Main work: 当前 ProLLM 的固有局限性:(i)缺乏自然…

Redis篇 在linux系统上安装Redis

安装Redis 在Ubuntu上安装Redis 在Ubuntu上安装Redis 在linux系统中,我们安装Redis,必须先使它有root权限. 那么在linux中,如何切换到root用户权限呢? sudo su 就可切换到用户权限了. 在切换到用户权限后,我们需要用一条命令来搜索Redis相关的软件包 apt search redis 会出现非…

ROS2学习——节点话题通信(2)

目录 一、ROS2节点 1.概念 2.实例 (1)ros2 run (2)ros2 node list (3)remapping重映射 (4)ros2 node info 二、话题 (1) ros2 topic list &#xf…

头歌openGauss-存储过程第1关:创建存储过程

编程要求 1、创建第1个存储过程,并调用; 1)创建存储过程,查询emp表数据; 2)调用存储过程; --创建存储过程,获得计算机(cs)系学生选课情况并将结果写入临时表t…

人脸识别:基于卷积神经网络(CNN)分类思想的人脸识别系统

本文来自公众号 “AI大道理” —————— 项目配套视频课程: 平台:荔枝微课 链接:十方教育 项目地址:https://github.com/AIBigTruth/CNN_faces_recognition 之前很多人来询问这个项目怎么做,代码跑不起来&#…

数据库读写分离

实现 MySQL 的读写分离主要可以通过以下几种方式: 一主多从架构: 设置一个主数据库(Master)来处理写操作(如 INSERT、UPDATE、DELETE)。 设置多个从数据库(Slave)来处理读操作&…

USB数据恢复软件:轻松找回U盘重要数据!

USB数据丢失的原因 USB数据丢失有一些常见原因,了解这些原因有利于恢复数据。 文件意外删除病毒攻击软件错误未安全弹出USB设备格式化USB设备 顺便一提,如果你通过快捷键“Ctrl D”删除了数据,那你可以从回收站中还原它们。如果你永久删除…

Isaac Sim仿真平台学习(1)认识Isaac Sim

0.前言 上一个教程中我们下载好了Isaac Sim,这一章我们将来简单了解一下Isaac Sim平台。 isaac Sim仿真平台安装-CSDN博客 1.Isaac Sim是啥? What Is Isaac Sim? — Omniverse IsaacSim latest documentation Isaac Sim是NVDIA Omniverse平台的机器…

【编译原理复习笔记】属性文法

属性文法 也称为属性翻译文法,由 Knuth 提出,以上下文无关文法为基础 (1)为每个文法符号(终结符与非终结符)配备相关的属性,代表与该文法符号相关的信息 (2)属性文法对于…

【LSTM】基于Matlab的LSTM模型建模(代码)

训练目标:用LSTM训练数据 数据:随时间递增,患者患病的概率(横坐标1个单位代表1个时间单位) 以下代码可直接运行 clc clear close all warning off % 关闭报警信息 %% 1.数据操作 % 1.1.导入数据&#x…

数据链路层协议——以太网协议

1. 数据链路层 网络层用于将数据从一台主机发送到另一台主机。传输层用于将数据可靠的从一台主机发送到另一台主机。(网络层没有保证可靠性的策略,传输过程中可能会出现各种意外,例如:丢包,网络拥塞等。通过传输层可以…

跨域问题的4种解决方案

文章导读 前言 跨域问题指的是在Web开发中,由于浏览器的同源策略限制,当一个网页尝试访问与它不同源(协议、域名或端口不同)的资源时,可能会遇到安全限制导致无法正常访问的问题。这种策略旨在防止恶意网站读取或修改其…

yarn的基本命令和用法

Yarn通过并行安装、离线模式、确定性安装以及更好的依赖解析算法,为开发者提供了更快、更稳定、更安全的包管理体验。它保留了npm的大部分功能,并在此基础上做了大量优化,下面我们就来详述Yarn的核心命令和实用技巧。📚 安装Yarn…

【MySQL精通之路】InnoDB(7)-锁和事务模型(2)-事务模型

主博客: 【MySQL精通之路】InnoDB(7)-锁和事务模型-CSDN博客 上一篇: 【MySQL精通之路】InnoDB(7)-锁和事务模型(1)-锁-CSDN博客 下一篇: 目录 1.事务隔离级别 2.1 可重复读 2.2 读已提交 2.3 读取未提交 2.4 序列化读 2.自动提交、…

订餐系统总结、

应用层: SpringBoot:快速构建Spring项目,采用“约定大于配置”的思想,简化Spring项目的配置开发。 SpringMvc:Spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合,可以无缝集成。 Sprin…

完整的数据可视化方法集

在当前的大数据时代,了解如何可视化数据是UI/UX设计师技能的重要组成部分。如今,几乎所有的公司都需要良好的数据可视化作为确定业务方向和决策的参考。数据的可视化结果越好,用户的决策就越科学。 1、什么是数据可视化 数据可视化是将信息…

张量 t-product 积(matlab代码)

参考文献:Tensor Robust Principal Component Analysis with a New Tensor Nuclear Norm 首先是文章2.3节中 t-product 的定义: 块循环矩阵: 参考知乎博主的例子及代码:(t-product与t-QR分解,另一篇傅里叶对…

HTML5 设备访问及输入输出设备交互

目录 设备访问输入设备交互输出设备交互设备访问 设备信息访问 navigator.userAgent:获取浏览器的用户代理字符串,从中可以解析出设备类型、操作系统、浏览器版本等信息。 const userAgent = navigator.userAgent; console.log(userAgent); // 输出类似 "Mozilla/5.0…

算法(Algorithm)

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。也就是说,算法能够对一定规范的输入,在有限时间内获得所要求的输出。算法应该具有…