SSH、NFS、TFTP的区别

SSH:远程连接工具,可以用来连接服务器,然后在客户端操作。可以跨系统连接,win和linux。只要你一连接到了服务器,服务器上所有的东西你都可以用。

NFS:文件共享服务。通常是linux和linux之间使用。只能共享特定的文件,不能随心所欲地去访问另一台机器上的所有东西。通常作为挂载根文件系统,具有交互性,可以两台nfs机器一起修改。

TFTP:没用交互性,只能传文件,相当于复制了一份文件到另一台机器上。

FTP

Windows 和 Ubuntu 下的文件互传需要使用 FTP 服务
总共需要三步

  1. 开启 Ubuntu 下的 FTP 服务
sudo apt-get install vsftpd
安装FTP
sudo vi /etc/vsftpd.conf
打开以后 vsftpd.conf 文件以后找到如下两行:
local_enable=YES
write_enable=YES
确保上面两行前面没有“#”,有的话就取消掉
sudo /etc/init.d/vsftpd restart
重启 FTP 服务:
  1. Windows 下 FTP 客户端安装
    下载地址如下:https://www.filezilla.cn/download

注意事项:若filezilla显示的文件是乱码,这是因为编码方式没有选对,先断开连接,点击:服务器(S)->断开连接,然后打开站点管理器,选中要设置的站点“Ubuntu”,选择“字符集”

nfs hdfs gfs tfs nfs hdfs gfs tfs区别_服务器

SSH

开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu。
例如可以用vscode远程连接linux虚拟机。
这个用处主要是,linux虚拟机一般在远程服务器上运行,使用ssh后,就可以通过笔记本电脑对服务器操作。

sudo apt-get install openssh-server  安装即可

NFS

nfs是网络文件系统,可以理解为通过网络将东西下载到DRAM中(所以如果开机时没有打开ubuntu,没有ping,开发板将不能执行nfs,也就没有相应的文件)
本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样

sudo apt-get install nfs-kernel-server rpcbind
安装nfs服务
在用户目录下新建一个目录,命令如下:
mkdir /home/glj/linux/nfs
sudo vi /etc/exports
配置 nfs,打开 nfs 配置文件/etc/exports:
在后面添加如下所示内容:
/home/glj/linux/nfs *(rw,sync,no_root_squash)

其中/home/glj/linux/nfs是自己建立的nfs文件夹,以后要传输的文件,都放在这个文件夹下
*:代表允许所有的网络段访问;
rw:是可读写权限;
sync:是资料同步写入内存和硬盘;

关于开发板uboot如何使用nfs,示例

nfs [loadAddress] [[hostIPaddr:]bootfilename]
使用 nfs 命令来将 zImage 下载到开发板 DRAM 的 0X80800000 地址处
nfs 80800000 192.168.3.21:/home/glj/linux/nfs/zImage

TFTP

使用的协议是TFTP协议
他没有交互的功能,也就是说可以通过nfs挂在根文件系统,但是不能通过tftp挂载根文件系统
交互意味着:比如我通过nfs可以在开发板里修改根文件系统,同时ubuntu中也就同时修改了。

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
在用户目录下新建一个目录,命令如下:
mkdir /home/glj/linux/tftpboot
chmod 777 /home/glj/linux/tftpboot     注意需要给文件夹读写权限
安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话自行创建,输入如下内容
 server tftp
 {
	 socket_type = dgram
	 protocol = udp
	 wait = yes
	 user = root
	 server = /usr/sbin/in.tftpd
	 server_args = -s /home/glj/linux/tftpboot/
	 disable = no
	 per_source = 11
	 cps = 100 2
	 flags = IPv4
 }
启动 tftp 服务
sudo service tftpd-hpa start
打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容

 TFTP_USERNAME="tftp"
 TFTP_DIRECTORY="/home/glj/linux/tftpboot"
 TFTP_ADDRESS=":69"
 TFTP_OPTIONS="-l -c -s"
最后输入如下命令, 重启 tftp 服务器:
sudo service tftpd-hpa restart

关于开发板uboot如何使用tftp,示例

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

但是和 nfs 命令的区别在于, tftp 命令不需要输入文件在 Ubuntu 中的完整路径和虚拟机IP地址(因为之前的文件里设置过IP),只需要输入文件名即可
例如:将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,

tftp 80800000 zImage