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 之前很多人来询问这个项目怎么做,代码跑不起来&#…

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)属性文法对于…

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

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

跨域问题的4种解决方案

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

订餐系统总结、

应用层: 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分解,另一篇傅里叶对…

vue通过for循环生成input框后双向绑定失效问题

有些时候页面上有太多的表单元素&#xff0c;一个个的写太过繁琐&#xff0c;拿 input 框举例&#xff0c;众多的 input 框&#xff0c;无非就是输入框前的说明和 input 框的 name 属性不一样 <el-form :inline"true" :model"formInline" size"mi…

01-05.Vue自定义过滤器

目录 前言过滤器的概念过滤器的基本使用给过滤器添加多个参数 前言 我们接着上一篇文章01-04.Vue的使用示例&#xff1a;列表功能 来讲。 下一篇文章 02-Vue实例的生命周期函数 过滤器的概念 概念&#xff1a;Vue.js 允许我们自定义过滤器&#xff0c;可被用作一些常见的文本…

[协议]stm32读取AHT20程序示例

AHT20温度传感器使用程序&#xff1a; 使用i2c读取温度传感器数据很简单&#xff0c;但市面上有至少两个手册&#xff0c;我这个对应的手册贴出来&#xff1a; main: #include "stm32f10x.h" // Device header #include <stdint.h> #includ…

数智赋能内涝治理,四信城市排水防涝解决方案保障城市安全运行

由强降雨、台风造成城市低洼处出现大量积水、内涝的情况时有发生&#xff0c;给人们出行带来了极大不便和安全隐患&#xff0c;甚至危及群众生命财产安全。 为降低内涝造成的损失&#xff0c;一方面我们要大力加强城市排水基础设施的建设&#xff1b;另一方面要全面掌握城市内涝…

U-Boot menu菜单分析

文章目录 前言目标环境背景U-Boot如何自动调起菜单U-Boot添加自定义命令实践 前言 在某个厂家的开发板中&#xff0c;在进入它的U-Boot后&#xff0c;会自动弹出一个菜单页面&#xff0c;输入对应的选项就会执行对应的功能。如SD卡镜像更新、显示设置等&#xff1a; 目标 本…

Unity射击游戏开发教程:(20)增加护盾强度

在本文中,我们将增强护盾,使其在受到超过 1 次攻击后才会被禁用。 Player 脚本具有 Shield PowerUp 方法,我们需要调整盾牌在被摧毁之前可以承受的数量,因此我们将声明一个 int 变量来设置盾牌可以承受的击中数量。