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"

相关推荐
小张是铁粉1 分钟前
docker在Linux的安装遇到的问题
linux·docker·容器
weixin_7714323114 分钟前
linux系统 weblogic10.3.6(jar) 下载及安装
linux·运维·jar
绝不偷吃13 分钟前
FastDFS分布式储存
linux·nginx
IC 见路不走2 小时前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘2 小时前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵2 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
汀沿河2 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35003 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
小哥山水之间3 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
ldj20204 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos