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

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

前言


本文详细介绍了 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
• 1

软件安装成功后,终端显示如下图所示。


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 服务的终端命令如下:

当然直接重启系统也可以启动 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 服务器已经配置并测试成功,若用户操作结果与上述现象不同,则需要检查相关操作步骤是否按照文档步骤操作。

目录
相关文章
|
20天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
30 1
|
26天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
31 4
|
10天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
15 0
|
2天前
|
Ubuntu 网络安全 数据安全/隐私保护
使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地
这样,你就成功地将Ubuntu云服务器上的Jupyter Notebook端口映射到本地,使你能够通过本地浏览器访问并使用Jupyter Notebook。
14 1
|
12天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
2月前
|
弹性计算 分布式计算 DataWorks
DataWorks报错问题之ecs自建数据库连通性测试报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
2月前
|
安全 Shell 网络安全
如何通过SSH连接云服务器
当你购买云服务器后,你可以通过SSH方式安全的连接到你的云服务器,因为只有你连上云服务器后才能进行服务器相关的配置操作。这里分别介绍了MAC用户和Windows用户如何通过SSH连接云服务器。
284 1
如何通过SSH连接云服务器
|
2月前
|
弹性计算 缓存 测试技术
阿里云2核4g服务器(费用价格/性能测试/支持人数)
阿里云2核4g服务器能支持多少人访问?2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素
|
2月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
4月前
|
存储 监控 网络协议
【Linux】文件服务NFS(Network File System)
【Linux】文件服务NFS(Network File System)
35 0