SSH 服务器、NFS 服务器、TFTP 服务器详解及测试

news2024/11/26 9:31:40

文章目录

  • 前言
  • 一、SSH 服务器
    • 1、SSH 能做什么?
    • 2、安装 SSH 服务器
    • 3、测试 SSH 服务
    • 4、用 SecureCRT 测试
  • 二、NFS 服务器
    • 1、NFS 能做什么?
    • 2、安装 NFS 软件包
    • 3、添加 NFS 共享目录
    • 4、启动 NFS 服务
    • 5、测试 NFS 服务器
  • 三、TFTP 服务器
    • 1、TFTP 能做什么?
    • 2、安装配置 TFTP 软件
    • 3、配置 TFTP 服务器
    • 4、启动 TFTP 服务
    • 5、测试 TFTP 服务器


前言

本文详细介绍了 SSH、NFS、TFTP服务器,从用途、安装步骤、测试三个方面进行了讲解。


一、SSH 服务器

1、SSH 能做什么?

SSH 是 Secure Shell 的缩写,是建立在应用层和传输层基础上的安全协议,能够有效防止远程管理过程中的信息泄露问题。

SSH 实际上是一个 Shell,可以通过网络登录远程系统,当然,前提是远程系统已经开启了 SSH 服务。经常会遇到下列情形:

  • Linux 主机不在本地,但又要使用或者维护这台计算机;
  • 一个嵌入式 Linux 产品不方便接调试串口,需要进行维护;
  • 在远程机器和本地机器之间进行文件传输

如果远程目标系统已经开启了 SSH 服务,通过 SSH 可以轻松解决以上问题。
使用 SSH 服务,一方面需要在远程系统上安装 SSH 服务,另一方面要在本地系统上安装 SSH 客户端,常见的 SSH 客户端有 putty、 SSH Secure Shell Client 等。下面分别介绍。

注意,在本机安装了虚拟机,也可以将虚拟机的 Linux 认为是远程系统。若使用 SSH 客户端软件登录虚拟机中的 Linux 系统,必须配臵虚拟机的以太网连接方式为 Bridged(桥接)模式,同时电脑的物理网卡必须接到网络,否则客户端将无法连接 SSH 服务器。

2、安装 SSH 服务器

在 Linux 主机输入下面命令安装 ssh 服务器:

sudo apt-get install openssh-server

在这里插入图片描述

3、测试 SSH 服务

在虚拟机里, VMware 虚拟网卡设置为 NAT 模式的话, Linux 系统网卡设置为动态 IP即可;如果虚拟网卡设置为桥接模式,则需要为 Linux 设置一个与 Windows 系统同一个网段的静态 IP 地址。

静态 IP 设置方法,可以在图形界面进入系统设置,选择网卡设置, IPV4 设置为“手动”,并在地址栏填写 IP 地址、掩码等信息,参考下图。
在这里插入图片描述
当然,也可以在终端使用 ifconfig 命令进行设置

只有知道了 Linux 主机的 IP 地址后,才能进行 SSH 连接。如果不能确定 IP 地址,可以打开终端,用 ifconfig 命令进行查看和确认:

ifconfig

在这里插入图片描述
进行 SSH 连接之前, 最好先用 ping 命令测试 Windows 和 Linux 之间能否正常通信。可以在Windows,打开 cmd 命令行,输入 ping 命令进行测试,例如测试 IP 为 192.168.137.128 的 Linux 主机,能收到回应帧表示通信正常,如下图所示。
在这里插入图片描述
也可以在 Linux 下打开终端,用 ping 命令 ping Windows 主机,收到回应帧表示测试正常,如下图所示。
在这里插入图片描述
在这里插入图片描述
注意: Windows 默认打开了系统防火墙,会过滤掉 ping 请求。 如果在 Linux 下 ping Windows ,需要先关闭 Windows 的防火墙。另外, Windows 也需要设臵静态的 IP 地址。

4、用 SecureCRT 测试

①、新建一个 Session,选择 SSH2
在这里插入图片描述
②、输入虚拟机的 ip 地址
在这里插入图片描述
③、选择 Accept & Save
在这里插入图片描述
④、输入用户名和密码
在这里插入图片描述
⑤、ls 查看
在这里插入图片描述

二、NFS 服务器

1、NFS 能做什么?

  • 在嵌入式 Linux 开发中,需要在 Linux 主机为目标机编写程序代码,然后编译程序,生成的程序是要传输到目标机上才能调试、运行。那么如何更快、更便捷地传输文件,将影响到开发工作的效率。 NFS 无疑是最好的选择。通过 NFS 服务,主机可以将自己系统中某个指定目录通过网络共享给目标机(和 Windows 的文件网络共享类似)。目标机可以直接运行存放于 Linux 主机共享目录下的程序。这样调试程序时十分方便。

  • NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。 NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用) 协议实现的,采用 C/S 架构。接下来将介绍如何在 ubuntu 系统中开启 NFS 服务器功能,使得开发套件能共享 ubuntu 系统的指定目录。

2、安装 NFS 软件包

在 ubuntu 终端输入下面命令安装 NFS 服务器:

sudo apt-get install nfs-kernel-server #安装 NFS 服务器端
sudo apt-get install nfs-common #安装 NFS 客户端

在这里插入图片描述

3、添加 NFS 共享目录

安装完 NFS 服务器等相关软件后,需要指定用于共享的 NFS 目录,其方法是在 “/etc/exports” 文件里面设置对应的目录及相应的访问权限,每一行对应一个设置。下面介绍如何添加 NFS 共享目录。

在终端输入“sudo vi /etc/exports”指令,如下所示:

sudo vi /etc/exports

“/etc/exports” 文件打开后, 文件内容如下所示。

# /etc/exports: the access control list for filesystems which may be exported
#       to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

若需要把“/nfsroot”目录设置为 NFS 共享目录,请在该文件末尾添加下面的一行:

/nfsroot *(rw,sync,no_root_squash)

其中“*”表示允许任何网段 IP 的系统访问该 NFS 目录。添加完成后,文件内容如下所示。

# /etc/exports: the access control list for filesystems which may be exported
#       to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/nfsroot *(rw,sync,no_root_squash)

修改完成后, 保存并退出“/etc/exports” 文件。然后新建“/nfsroot”目录,并为该目录设置最宽松的权限:

sudo mkdir /nfsroot
sudo chmod -R 777 /nfsroot
sudo chown –R nobody /nfsroot

为了方便测试 NFS 是否挂载成功,可以在“/nfsroot”目录下创建 NFS_Test 目录用于测试。
在这里插入图片描述

4、启动 NFS 服务

在终端中执行如下命令,可以启动 NFS 服务:

sudo /etc/init.d/nfs-kernel-server start

在这里插入图片描述
执行如下命令则可以重新启动 NFS 服务,也可以通过重启 ubuntu 来实现:

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

在这里插入图片描述
在 NFS 服务已经启动的情况下,如果修改了“/etc/exports” 文件,需要重启 NFS 服务,以刷新 NFS 的共享目录。
当然在下一次启动系统时, NFS 服务是自动启动的。

5、测试 NFS 服务器

NFS 服务启动后,可以在 Linux 主机上进行自测。自测的基本方法为:将已经设定好的 NFS 共享目录 mount(挂载) 到另外一个目录下,看能否成功。Linux 主机 IP 为 192.168.25.25,其 NFS 共享目录为/nfsroot, 可使用如下命令进行测试:

sudo mount -t nfs 192.168.25.25:/nfsroot /mnt -o nolock

在这里插入图片描述
如果指令运行没有出错,则 NFS 挂载成功,在主机的 /mnt 目录下应该可以看到 /nfsroot 目录下的内容(即之前创建的 NFS_Test 目录)。
此外,也可以使用开发板进行挂载测试,此时需要在开发套件上输入如下指令:

mount -t nfs 192.168.25.25:/nfsroot /mnt -o nolock
cd /mnt
ls

在这里插入图片描述
若挂载成功,在开发套件的/mnt 目录下也可以看见 NFS_Test 目录。之后,开发套件就可以像操作本地目录一样去操作主机的/nfsroot 目录。注意,要想成功地挂载 NFS 目录,开发套件必须要先确保与主机之间的网路是畅通的,可以使用 ping 命令进行测试:

ping 192.168.25.25

在这里插入图片描述
如果无法 ping 通主机,则需要先仔细检查网络连接与设定。 此外,在 mount 与 umount(解除挂载)操作时,用户的当前路径不能是操作的目标路径。 例如下面两条指令就是错误的,用户当前所处的路径与要 mount(或 umount)的目标路径相同:

pwd
mount -t nfs 192.168.25.25:/nfsroot /mnt -o nolock		# 错误 
umount /mnt												# 错误

在这里插入图片描述

三、TFTP 服务器

1、TFTP 能做什么?

*TFTP(Trivial File Transfer Protocol,简单文件传输协议),是 TCP/IP 协议族中用来在客户机和服务器之间进行简单文件传输的协议,开销很小。

这时候有人可能会纳闷,既然前面已经介绍了功能强大的 SSH 和 NFS 服务,还有必要介绍 TFTP 吗? TFTP 尽管简单,但在很多地方还是不可替代的,正如俗话说的“尺有所短,寸有所长”。

TFTP 通常用于内核调试。在嵌入式 Linux 开发过程中,内核调试是其中一个基础、重要的环节。调试内核通常是与 Bootloader 配合使用,只需在嵌入式系统的 Bootloader 中实现网卡驱动和 TFTP 客户端,就可以使用 TFTP 服务从主机上下载内核。

主机要开启 TFTP 服务,必须要先安装 TFTP 服务器软件,可以在 Linux 下实现,也可以在 Windows 下实现。

2、安装配置 TFTP 软件

用户可以在主机系统联网的情况下,在终端输入下面命令进行安装:

sudo apt-get install tftpd-hpa tftp-hpa

软件安装成功后,终端显示如下图所示。
在这里插入图片描述

3、配置 TFTP 服务器

TFTP 软件安装后,默认是关闭 TFTP 服务的,需要更改 TFTP 配置文件 “/etc/default/tftp-hpa”,可通过终端输入如下命令进行修改:

sudo vi /etc/default/tftpd-hpa

用户需要指定一个目录为 TFTP 根目录。若用户需要把 /tftpboot 目录设置为 TFTP 根目录,请在 /etc/default/tftp-hpa 文件中的“ TFTP_DIRECTORY” 变量指定, 如下所示:
在这里插入图片描述
如果用户的 Linux 系统下尚未创建/tftpboot 目录, 需要创建该目录,并需要使用 chmod 命令为该目录设置最宽松的权限。目录创建及权限设置命令如下所示:

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot

在这里插入图片描述
说明: 在 Windows 下, 通过 tftpd32.exe(下载地址: [http://tftpd32.jounin.net](http://tftpd32.jounin.net)) 可以很便捷的实现一个 TFTP 服务器, 只需将 tftpd32.exe 放在某个文件夹下并运行即可。

4、启动 TFTP 服务

①、TFTP 服务器安装配置完成后, 启动 TFTP 服务的终端命令如下:

sudo service tftpd-hpa start

在这里插入图片描述
当然直接重启系统也可以启动 TFTP 服务。

②、重启 TFTP 服务的终端命令如下:

sudo service tftpd-hpa restart

5、测试 TFTP 服务器

①、在 TFTP 服务器目录/tftpboot 下创建一个测试文件 tftpTestFile:

touch /tftpboot/tftpTestFile
echo "Hello,can you see me?" > /tftpboot/tftpTestFile
cat /tftpboot/tftpTestFile

在这里插入图片描述
②、测试文件准备好了之后,打开终端,输入以下测试命令(在 Linux 系统中 localhost 表示本地主机):

tftp localhost
get tftpTestFile	# 如果测试失败会打印出错信息
q
cat /tftpboot/tftpTestFile

在这里插入图片描述
至此, TFTP 服务器已经配置并测试成功,若用户操作结果与上述现象不同,则需要检查相关操作步骤是否按照文档步骤操作。


我的qq:2442391036,欢迎交流!

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

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

相关文章

轻松掌握mysql事务的四大特性ACID及实现原理

1、介绍 要实现这四大特性,我们先了解下mysql中的缓冲池和数据页 2、保证原子性和一致性 1、通过undo log保证数据的原子性和一致性 undo log保证了事务的原子性和一致性。 3、保证隔离性 1、并发事务产生时容易产生的隔离性问题 脏读 不可重复读 幻读…

【数据库复习】第四章数据库保护 1

数据库安全性: 数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享 用户标识与鉴别 用户名和口令易被窃取,每个用户预先约定好一个计算过程或者函数 存取控制 常用存取控制方法 自主存…

电子电气架构——车辆E/E架构常识

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 人只有在举棋不定,无从把握的时候才感到疲惫。只有去行动就能获得解放,哪怕做的不好也比无所作为强! 本文主要介绍车辆E/E架构常识,主要涉及E/E架构面临…

LNMP、Tomca

构建Nginx服务器 使用源码包安装nginx软件包 [rootproxy ~]# yum -y install gcc pcre-devel openssl-devel #安装依赖包 [rootproxy ~]# useradd -s /sbin/nologin nginx [rootproxy ~]# tar -xf nginx-1.17.6.tar.gz [rootproxy ~]# cd nginx-1.17.6 [rootproxy …

【Shell编程之循环语句与函数】

目录 一、for循环语句示例:示例1示例2 示例3 二、跳出循环举例 转义符三、while 语句的结构示例: 四、until语句的结构1、基本格式 五、seq命令 一、for循环语句 读取不同的变量值&#xff0c;用来逐个执行同一组命令 #!/bin/bash for(( i0;i<5;i ))i0 定义for循环i变量初…

【逻辑位移和算数位移】

<< 运算符 && >> 运算符 正数位移 当 x>>n 中 x 为正数时&#xff0c;会将x的所有位右移x位&#xff0c;同时左边高位补0 显而易见&#xff0c;运算结束后&#xff0c;值为1 。 可知右移n位&#xff0c;结果就是 x / 2^n&#xff1a;7 / 2 ^2 1;…

运行vue项目报DONE Build complete. The dist directory is ready to be deployed.解决办法

一、问题描述 今天在运行一个vue项目时发现运行途中报这样一个错误&#xff0c;经过查阅相关资料可知&#xff0c;这是dist文件夹下 二、解决办法 根据官方文档&#xff0c;目录需要启动一个 HTTP 服务器来访问 (除非你已经将 publicPath 配置为了一个相对的值)&#xff0c;所…

flex垂直方向布局与overflow结合使用

主要是需要留意 flex布局和overflow 之间的关系&#xff0c; 最外面的container 和 里面的main-box 之间分别使用了flex布局 和 overflow:hiddenmain-box 和 里面的main-body 之间分别使用了 flex布局 和 overflow:auto 有点类似于聊天的窗口布局 <!DOCTYPE html> <h…

zabbix监控远程主机

zabbix监控远程主机 在Zabbix服务器上安装Zabbix代理程序 在远程主机上安装Zabbix代理程序。安装方式取决于操作系统&#xff0c;可以从Zabbix官网上下载相应的安装包进行安装。 监控agent1 在agent1上安装agent yum install zabbix-agent另外在zabbix server上要关闭防火…

【前端知识】内存泄漏与垃圾回收机制 (上)

【前端知识相关分享】内存泄漏与垃圾回收机制 &#xff08;上&#xff09; 1. 内存的生命周期1.1 内存生命周期的一般流程1.2 C&#xff0c;JS和python内存分配和释放的区别 2. JS中的内存管理2.1 两种数据类型与两种内存一个思考2.2 两种内存空间的区别对比 3. 内存泄漏的定义…

HMM理论学习笔记-隐马尔可夫模型的三个元素、假设和问题

文章目录 概率论基础条件概率全概公式边缘概率联合概率联合概率与边缘概率的关系贝叶斯公式&#xff08;条件联合概率&#xff09;马尔科夫链的概念 HMM简述HMM的三个元素符号定义1、状态转移概率矩阵A2、观测概率矩阵B3、初始状态概率向量π HMM的三个假设1、齐次马尔可夫假设…

netstat命令解析

一、linux系统中netstat命令的帮助信息 └──╼ $netstat -h usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }-r, --route …

VMware12安装图解

目录 一、介绍VMware虚拟机 二、安装VMware12虚拟机 三、VMware虚拟机内部新建虚拟机 清理磁盘 一、介绍VMware虚拟机 VMware是一个虚拟机。 什么是虚拟机&#xff1f;字面意思‘虚拟’&#xff0c;那就不算是真的&#xff1b;‘机’可以理解为一台电脑或者一个电脑系统。…

SimpleDateFormat以及Date的使用

Date Date currentTime new Date(); 获取当前的时间 输出&#xff1a; System.out.println(currentTime); 就会以这样的格式输出 那我们不想要这样的格式&#xff0c;而是输出格式怎么办呢&#xff1f; SimpleDateFormat闪亮登场 食用方法&#xff1a; SimpleDateForma…

前端埋点采集到的数据怎么发送到服务端?

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 目录 1. Image请求 2. Ajax请求 3. WebSocket 连接 1. Image请求 1. 通过 Image请求将采集的数据发送到服务器。这种方式比较适合少量数据的采集&#xff0c;因为 lmage请求不需要返回任何数据…

【Python】中文乱码问题与解决方案 深入分析

一直以来&#xff0c;python中的中文编码就是一个极为头大的问题&#xff0c;经常抛出编码转换的异常&#xff0c;python中的str和unicode到底是一个什么东西呢&#xff1f; 在本文中&#xff0c;以哈来解释作示例解释所有的问题&#xff0c;“哈”的各种编码如下&#xff1a; …

数据库单实例升级

一、单实例环境,全时长二个半钟多。详细图文说明到这下载 1、停止所有oracle相关进程。 Emctlstop dbconsole Isqlplusctl stop Lsnrctl stop sqlplus /nolog sql>conn /as sysdba Connectedtoanidleinstance. sql>shutdown 然后&#xff0c;冷备份下数据库cp…

c++学习之运算符重载详解

目录 1.运算符重载的基本概念 2.重载加法运算符 3.重载运算符<<(全局函数实现) 4.重载>>&#xff08;输入&#xff09;运算符&#xff08;全局函数实现&#xff09; 5. 重载/--运算符 6.重载运算符 7.可以重载的运算符 1.运算符重载的基本概念 运算符重载&…