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服务,指令如下

c 复制代码
sudo apt-get install vsftpd

💦等待安装完成如下

2)修改Ubuntu 系统下ftp配置选项,目录如下:vsftpd.conf是vsftpd软件的配置文件。

c 复制代码
sudo vi /etc/vsftpd.conf

💦原内容如下:

💦修改成:将1和2都更改成yes,开启本地访问和写的权限

3)重启FTP服务

c 复制代码
sudo /etc/init.d/vsftpd restart

4)FTP服务验证

💦输入指令:

c 复制代码
sudo netstat -antup | grep ftp

💦netstat指令含义:netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

💦grep指令含义:

搜索相关信息

💦上述图片表示ftp服务已经启动,监视端口21。

2.NFS安装

💦安装步骤:rpcbind是nfs应用不可少的服务或者叫工具

1)输入指令如下:安装nfs和rpcbind

c 复制代码
sudo apt-get install nfs-kernel-server rpcbind

💦等待安装完成如下

2)在Ubuntu系统中新建个文件夹,供nfs服务使用

💦在用户根目录创建个nfs文件供nfs服务使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹。

3)修改Ubuntu 系统下nfs配置选项,目录如下:/etc/exports

输入指令如下:

c 复制代码
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服务

c 复制代码
sudo /etc/init.d/nfs-kerner-server restart

5)验证NFS服务

💦 输入以下指令查看NFS服务状态:

c 复制代码
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)输入指令如下:

c 复制代码
sudo apt-get install openssh-server

2)SSH配置文件,在目录/etc/ssh/sshd_config,使用默认配置即可。

3)查看SSH服务状态

💦输入如下指令

c 复制代码
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 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。

💦最后重启服务

c 复制代码
sudo service tftpd-hpa start

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

c 复制代码
tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

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

c 复制代码
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服务是否运行

c 复制代码
netstat -a | grep "nfs"

💦如下图所示表示服务正在运行

💦2)查看nfs的配置,nfs是网络文件系统,可以传送文件,所以Ubuntu系统中,肯定会有文件夹和nfs的配置文件。

💦 在系统中创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系 统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:

💦主要是查看目录是否正确,然后重启服务。


💦2).uboot和Ubuntu系统的nfs版本不一致

💦 查看nfs版本

c 复制代码
sudo cat /proc/fs/nfsd/versions



💦 可以看出我的Ubuntu系统没有+2或者-2

原因是Ubuntu的系统内核是6.5不支持版本2,所以解决办法切换内核版本。

💦 安装步骤:

💦 实际操作如下:


💦 安装头文件

💦 安装内核模块和驱动

💦 如果有问题修复,使用下面指令修复

sudo apt --fix-broken install

💦 查看安装是否成功

💦 修改启动项

💦 更新grub

💦 重启sudo reboot

💦 补充:

进入安装系统的两种方法:

1.按ESC键进入启动项选择,选择安装的系统。

2.可以配置GRUB_DEFAULT=0 修改为 GRUB_DEFAULT="1> 6",第一个选项是数字0。

注意:> 与7之间有个空格

Menuenty 就是启动顺序,比如启动6.2版本GRUB_DEFAULT="1> 5"

相关推荐
雨中rain21 分钟前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
Bessssss40 分钟前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish41 分钟前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个42 分钟前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&43 分钟前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱1 小时前
【linux】NFS实验
linux·服务器
Ven%1 小时前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip
是阿建吖!1 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库
张暮笛1 小时前
蓝牙协议——音量控制
linux
陈君豪1 小时前
OpenCV的FAST和goodFeaturesToTrack的區別
linux