SCP_NFS_TFTP的服务器简单搭建实例

本文详细介绍了在Ubuntu系统中搭建SCP、NFS和TFTP服务器的步骤。首先,通过SCP演示了如何在虚拟机之间安全地传输文件,包括安装SSH服务、获取IP地址、上传和下载文件。接着,介绍了NFS服务器的配置,包括设置共享目录、启动服务以及本地和远程的文件挂载。最后,讲解了TFTP服务的安装和配置,实现了简单的小文件传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SCP_NFS_TFTP

1 SCP

1.1 认识SCP

scp是secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

因为scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

1. 2 SCP的准备

因为scp是用于加密传输的,所以这里我们用两个虚拟机进行演示。

1.2.1 创建新的虚拟机

这里你可以选择在你原有虚拟机的基础上克隆一个新的虚拟机,如果你的计算机配置较高也可以选择创建一个新的完全独立的虚拟机。
我这里选择的是更不会占用内存的克隆的方式创建一个虚拟机。
具体操作如下图:

请添加图片描述
过程按它默认的选项就可以。
这里我选择是链接克隆。
请添加图片描述
之后选择你的克隆虚拟机名称和位置。
请添加图片描述
这样你就完成安装了。

1.2.2 获取IP地址

为了使我们的文件可以远程传输,我们需要获取我们虚拟机的IP地址。
具体操作如下:(要先确保你的虚拟机已打开)

请添加图片描述
这里你虚拟器输入你的用户名,这里ssh的端口默认为22。选项不用填,然后连接。
请添加图片描述
这样我们会看见:
请添加图片描述
你就可以看到自己的IP地址了。

1.2.3 scp的安装

经我的实验,有两种安装ssh服务的命令可使用:

$ sudo apt install openssh-server
$ sduo apt-get install ssh

1.3 ssh服务器的搭建

输入

$ sudo service ssh start

启动ssh服务。

// PS: 如果无法识别 SSH 服务, 命令前面须加 sudo,
//     一般安装完成后会自动启动 SSH 服务。

sudo service ssh start          // 启动 SSH 服务
sudo service ssh stop           // 停止 SSH 服务
sudo service ssh restart        // 重启 SSH 服务

sudo service ssh status         // 查询 SSH 服务状态
ps -A | grep "ssh"              // 查询 SSH 服务进程

输入

$ ssh [email protected]

连接主机。
这里的用户名使用的是你当前虚拟机的用户名,IP地址的获取方法在上面已经提到了。

// 连接远程主机(默认 SSH 端口为 22), 连接上后需要输入用户的密码
ssh 用户名@IP

// 指定端口连接
ssh 用户名@IP -p <port>

### Linux 下将 `.o` 文件传输到开发板的方法 在 Linux 系统中,可以通过多种方式将 `.o` 文件或其他类型的文件传输至开发板。以下是几种常见的方法及其具体操作: #### 1. 使用 `scp` 命令 `scp` 是一种基于 SSH 协议的安全文件传输工具,适用于远程主机之间的文件拷贝。 ```bash scp /path/to/local/file.o username@development_board_ip:/destination/path/ ``` 其中: - `/path/to/local/file.o` 表示本地计算机上 `.o` 文件的路径。 - `username` 替换为开发板上的用户名。 - `development_board_ip` 替换为开发板的实际 IP 地址。 - `/destination/path/` 表示目标存储位置。 此方法简单高效,适合单次或少量文件传输[^3]。 --- #### 2. 利用 NFS 挂载共享目录 NFS(Network File System)是一种分布式文件系统协议,允许网络中的不同设备访问彼此的文件资源。 执行以下命令,在 Ubuntu 主机和 NUC980 开发板之间建立 NFS 共享关系: ```bash sudo mount -t nfs -o nolock,nfsvers=3 <Ubuntu_IP>:<共享文件夹> <开发板挂载点> ``` 例如: ```bash sudo mount -t nfs -o nolock,nfsvers=3 192.168.0.1:/home/ubuntu/files /mnt/nfs_share ``` 完成挂载后,可以直接将 `.o` 文件复制到指定的共享目录中,从而实现实时同步[^5]。 --- #### 3. 配置并使用串口通信工具(lrzsz) 如果需要通过串口实现文件传输,则可以借助 lrzsz 工具完成该过程。首先确保已安装 lrzsz 软件包,并将其编译部署于开发环境之中[^1]。 在宿主机侧运行如下指令发送文件: ```bash sz /path/to/local/file.o ``` 而在开发板一侧接收数据流时需调用对应程序: ```bash rz ``` 上述流程依赖于 Minicom 或其他类似的终端仿真软件提供交互界面支持。 --- #### 4. FTP/TFTP 方式 对于某些特定场景下的需求来说,也可以考虑采用 TFTP 来简化小型嵌入式系统的固件更新或者调试阶段的数据交换工作;不过需要注意的是由于其缺乏认证机制所以安全性较低不推荐用于生产环境中长期稳定运作的服务当中去。 --- ### 总结 以上介绍了四种主要途径来达成从 PC 至 ARM 架构处理器所构成的目标平台间传递二进制对象的任务处理办法——无论是便捷快速型别的 scp 解决方案还是功能强大灵活性更高的 NFS 设置选项亦或是传统经典的 XMODEM/YMODEM/ZMODEM 类型协议应用实例均各有千秋可根据实际项目情况灵活选用最为合适的那一款技术手段加以实施运用即可满足日常研发过程中遇到的各种挑战难题啦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值