FTP,NFS,SSH服务安装和应用,遇到的问题


一、FTP是什么?

💦FTP是File Transfer Protocol(文件传输协议),顾名思义,就是专门用来传输文件的协议,简单地说,支持FTP协议的服务器就是FTP服务器
💦FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一,它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。

💦FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作,虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器,同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

二、NFS是什么?

💦NFS是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 💦NFS服务器的作用是:让不同的电脑将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程NFS服务器主机的目录就好像是自己的一个磁盘分区一样,类似与共享文件夹。

三、SSH是什么?

💦SSH是一种协议标准,其功能是实现安全远程登录以及其它安全网络服务。

四、FTP,NFS,SSH安装(Ubuntu 操作系统)

1.FTP安装

💦FTP作用:
在Linux开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件的互传,比如将在Windwos 下的文件,传输到Ubuntu 系统中,此时就可以通过FTP服务进行传输。
💦安装步骤:vsftpd是Linux下的一款FTP服务器软件
1)在 Ubuntu 系统中,输入指令安装FTP服务,指令如下

sudo apt-get install vsftpd

💦等待安装完成如下
在这里插入图片描述
2)修改Ubuntu 系统下ftp配置选项,目录如下:vsftpd.conf是vsftpd软件的配置文件。

sudo vi /etc/vsftpd.conf

💦原内容如下:
在这里插入图片描述
💦修改成:将1和2都更改成yes,开启本地访问和写的权限
在这里插入图片描述
3)重启FTP服务

sudo /etc/init.d/vsftpd restart

在这里插入图片描述
4)FTP服务验证
💦输入指令:

sudo netstat -antup | grep ftp

💦netstat指令含义:netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
💦grep指令含义:
搜索相关信息
在这里插入图片描述
💦上述图片表示ftp服务已经启动,监视端口21。

2.NFS安装

💦安装步骤:rpcbind是nfs应用不可少的服务或者叫工具
1)输入指令如下:安装nfs和rpcbind

sudo apt-get install nfs-kernel-server rpcbind

💦等待安装完成如下
在这里插入图片描述
2)在Ubuntu系统中新建个文件夹,供nfs服务使用
💦在用户根目录创建个nfs文件供nfs服务使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹。
在这里插入图片描述
3)修改Ubuntu 系统下nfs配置选项,目录如下:/etc/exports
输入指令如下:

sudo vi /etc/exports

💦添加如下内容:*(内容)给挂载目录添加相应权限
在这里插入图片描述
💦 *(rw,sync,no_root_squash)解析
(1) * 任意主机可以使用NFS服务
(2) rw 该主机对该共享目录有读写权限
(3) sync 资料会同步到硬盘
(4) no_root_squash 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限,单词squash是压缩压扁的意思。
(5) root_squash 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
4)重启NFS服务

sudo /etc/init.d/nfs-kerner-server restart

5)验证NFS服务
💦 输入以下指令查看NFS服务状态:

sudo systemctl status nfs-kernel-server //查看NFS服务器的状态
sudo systemctl status nfs-client //查看NFS客户端的状态
sudo showmount -e <nfs_server> //列出NFS服务器上所有已经导出的共享目录
sudo mount -t nfs <nfs_server>:/<remote_directory> <local_directory>//将NFS共享目录挂载到本地目录,如果成功挂载,说明NFS服务正常运行

💦 查看NFS服务器状态,active表示NFS服务正常运行
在这里插入图片描述

3.SSH服务安装

💦安装步骤:SSH服务是远程控制服务,可以在windows下通过SSH服务控制Ubuntu系统。
1)输入指令如下:

sudo apt-get install openssh-server

2)SSH配置文件,在目录/etc/ssh/sshd_config,使用默认配置即可。
3)查看SSH服务状态
💦输入如下指令

ps -e | grep ssh

💦结果如下,表示SSH服务正常
在这里插入图片描述

五、FTP,NFS,SSH应用

1.FTP应用1

💦在windows下安装FileZilla软件,此软件支持FTP服务

在这里插入图片描述

💦利用FileZilla软件从windows复制文件到Ubuntux系统中
在这里插入图片描述

2.FTP应用2

💦步骤:
在这里插入图片描述
💦创建tfpt文件夹
在这里插入图片描述
💦修改文件夹权限
在这里插入图片描述
💦配置 tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话自行 创建,然后在里面输入如下内容:
在这里插入图片描述
在这里插入图片描述
💦tftp文件内容:
在这里插入图片描述

💦打开/etc/default/tftpd-hpa 文件
在这里插入图片描述
💦TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
💦最后重启服务

sudo service tftpd-hpa start

💦uboot 中的 tftp 命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

💦看 起来 和 nfs 命令格 式一 样的 , loadAddress 是文 件在 DRAM 中的 存放 地址 ,[[hostIPaddr:]bootfilename]是要从 Ubuntu 中下载的文件。但是和 nfs 命令的区别在于,tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。比如我们现在将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下:

tftp 80800000 zImage

在这里插入图片描述

3.NFS应用

💦比如我们将 linux 镜像和设备树文件放到 Ubuntu 中,然后在 uboot 中使用 nfs 命令将 Ubuntu 中的 linux 镜像和设备树下载到开发板的 DRAM 中。这样做的目的是为了方便调试 linux 镜像和设备树,也就是网络调试,通过网络调试是Linux 开发中最常用的调试方法。
💦原因是如下:
💦嵌入式 linux开发不像单片机开发,可以直接通过 JLINK 或 STLink 等仿真器将代码直接烧写到单片机内部的 flash 中,嵌入式 Linux 通常是烧写到 EMMC、NAND Flash、SPI Flash 等外置 flash 中,但是嵌入式 Linux 开发也没有 MDK,IAR 这样的 IDE,更没有烧写算法,因此不可能通过点击一个“download”按钮就将固件烧写到外部 flash 中。虽然半导体厂商一般都会提供一个烧写固件的软件,但是这个软件使用起来比较复杂,这个烧写软件一般用于量产的。其远没有 MDK、IAR的一键下载方便,在 Linux 内核调试阶段,如果用这个烧写软件的话将会非常浪费时间,而这个时候网络调试的优势就显现出来了,可以通过网络将编译好的== linux 镜像和设备树文件下载到 DRAM 中==,然后就可以直接运行。
在这里插入图片描述

4.SSH应用

💦在windows环境下,使用VScode下载remote组件,通过找个组件可以远程控制ubunt系统。
在这里插入图片描述

六、NFS使用报错

1.报错

在这里插入图片描述
在这里插入图片描述

2.问题定位

💦1)nsf服务查看,确定服务是否安装。
可以使用上述查看nfs的状态或者下方指令查看nfs服务是否运行

netstat -a | grep "nfs"

💦如下图所示表示服务正在运行
在这里插入图片描述
💦2)查看nfs的配置,nfs是网络文件系统,可以传送文件,所以Ubuntu系统中,肯定会有文件夹和nfs的配置文件。
💦 在系统中创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系 统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:
💦主要是查看目录是否正确,然后重启服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
💦2).uboot和Ubuntu系统的nfs版本不一致
💦 查看nfs版本

sudo cat /proc/fs/nfsd/versions

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
💦 可以看出我的Ubuntu系统没有+2或者-2
原因是Ubuntu的系统内核是6.5不支持版本2,所以解决办法切换内核版本。
💦 安装步骤:
在这里插入图片描述
💦 实际操作如下:

在这里插入图片描述
在这里插入图片描述
💦 安装头文件
在这里插入图片描述
💦 安装内核模块和驱动
在这里插入图片描述
💦 如果有问题修复,使用下面指令修复
sudo apt --fix-broken install
💦 查看安装是否成功
在这里插入图片描述
💦 修改启动项
输入如下指令:查看内核版本的启动顺序,Advanced options是子目录的意思

sudo vi /boot/grub/grub.cfg

在这里插入图片描述
💦但修改启动项,不在这个文件里修改,在 /etc/default/grub文件中,输入如下指令。

sudo vim /etc/default/grub

在这里插入图片描述

💦 更新grub

sudo update-grub

💦 重启sudo reboot
💦 补充:
进入安装系统的两种方法:
1.按ESC键进入启动项选择,选择安装的系统。
2.可以配置GRUB_DEFAULT=0 修改为 GRUB_DEFAULT=“1> 6”,第一个选项是数字0。
注意:> 与7之间有个空格

grep menuentry /boot/grub/grub.cfg

Menuenty 就是启动顺序,比如启动6.2版本GRUB_DEFAULT=“1> 5”
在这里插入图片描述

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值