TFTP服务器
1、概述
什么是TFTP服务器:
TFTP(Trivial File Transfer Protocol)即简单文件传输协议是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69
介绍中可以得到的信息:
- 简单文件传输:代表传输的文件不能过大,过于复杂
- 文件传输:代表它的作用是双方进行文件的下载和上传
- 端口号69:通过69号可以访问TFTP服务器,这个端口号是固定的。
端口号:
每一个服务器有一个唯一的端口号,端口号用于标识当前使用的是哪一个服务器
TFTP文件传输的特点:
- tftp使用客户服务器方式和使用UDP数据报,因此tftp需要有自己的差错改正措施。
- tftp支持小文件传输。
- tftp没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
客户服务器方式:客户端与服务器是分开的。
UDP数据报:UDP是TCP/IP协议族中的一个,它本身不会去验证身份信息,不会验证传输错误
没有列目录的功能:客户端不能查看服务器中有什么,必须提前知道有什么并下载
TFTP服务器的使用场景:
可以在Ubuntu上编写代码,之后将生成的bin文件通过TFTP传输到开发板上进行代码测试。
2、服务器的使用
2.1 服务器下载与配置
1、保证Ubuntu网络通畅,在终端上输入ping www.baidu.com查看是否ping通。
2、更新软件源,在终端上输入sudo apt-get update
3、安装TFTP服务器和客户端,sudo apt-get install tftpd-hpa tftp-hpa
tftpd-hpa:TFTP服务器 tftp-hpa:TFTP客户端
4、配置TFTP:
- TFTP配置文件路径:sudo vi /etc/default/tftpd-hpa
- 创建tftpboot目录,查询该目录的绝对路径
- 将tftpd-hpa文件中的TFTP_DIRECTORY修改为查道的绝对路径,代表TFTP的工作目录
- 将tftpd-hpa文件中的TFTP_ADDRESS修改为0.0.0.0:69,代表任意ip都可下载,69为端口号
- 将tftpd-hpa文件中的TFTP_OPTIONS修改为-c -l -s -l:TFTP不依赖于其他进程,以自己独立的方式去启动 -c:TFTP可以创建新文件。默认情况下TFTP只能覆盖原文件,不能创建新文件 -s:改变TFTP启动根目录,即目录变为配置文件中的目录,下图中的/home/linux/tftpboot
5、重启TFTP:sudo service tftpd-hpa restart
2.2 服务器传输文件
相关指令:
1、将tftpboot目录设置为最高权限:chomod 0777 /home/linux/tftpboot
2、连接到服务器:tftp <IP> 测试时IP传入localhost,代表本地地址
3、下载文件:get <文件名>
4、上传文件:put <文件名>
5、退出TFTP:q
传输测试:
1、传输之前文件查看,tftpboot下有一个tftp_test文件,需要进行交互的目录下有一个my_test文件
2、在需要进行交互的文件下,输入tftp localhost与tftp建立连接
3、上传、下载代码。把my_test上传到tftpboot目录,把tftp_test下载到当前目录。
4、查看文件是否传输成功
NFS服务器
1、概述
什么是NFS服务器:
nfs(Network File System)即网络文件系统,其基于UDP/IP使用nfs能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其它计算机中的文件就像在访问自己的计算机一样。
介绍中可以得到的信息:
- 网络文件系统:文件系统不像/home那样存在于本机,而是存在于网络中
- 像自己的文件系统一样访问:访问文件的指令、方法完全一样
NFS文件传输的特点:
- 提供透明文件访问以及文件传输;
- 容易扩充新的资源或软件,不需要改变现有的工作环境;
- 高性能,可灵活配置。
NFS服务器的使用场景:
Ubuntu与开发板通过NFS进行连接,之后Ubantu像在本机一样操作开发板的文件。
2、服务器的使用
2.1 服务器下载与配置
1、保证Ubuntu网络通畅,在终端上输入ping www.baidu.com查看是否ping通。
2、更新软件源,在终端上输入sudo apt-get update
3、安装NFS服务器和客户端,sudo apt-get install nfs-kernel-server
4、配置NFS:
- NFS配置文件路径:sudo vi /etc/exports
- 在根目录下创建nfs目录,在nfs下创建rootfs目录
- 查询rootfs目录的绝对路径,这作为NFS的工作目录
- 在exports文件中写入:/nfs/rootfs/ *(rw,sync,no_subtree_check,no_root_squash) /nfs/rootfs/:查询到的绝对路径 *:代表不限定客户端 rw:共享目录可读可写 sync: 将数据同步写进内存缓冲区和磁盘。效率低,但可保证数据一致性 no_subtree_check:不去看权限,直接可以操作即可 no_root_squash:如果访问者是root,那么依旧保留root用户的权限
5、重启NFS:sudo service nfs-kernel-server restart
2.2 服务器传输文件
1、将共享目录挂载到/mnt目录:sudo mount -t nfs <IP>:<NFS工作目录> <挂载点>
测试时:IP传入localhost,NFS工作目录传入/nfs/rootfs,挂载点传入/mnt
2、客户端进入/mnt即可访问服务器提供的/nfs/rootfs网络文件系统
3、解除挂载,退出NFS文件传输:sudo umount <挂载点>
注意:解挂时,客户端不能在挂载点目录下,需要去其他目录去解挂