Linux笔记--网络文件共享(TFTP,Samba,NFS)
环境CentOS7
TFTP
概述
FTP(File Transfer Protocol,文件传输协议)用于在Internet上控制文件的双向传输。FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是FTP的简化版本,当用户确切地了解想要获取的文件名及其准确位置时,可以选择使用TFTP。TFTP易用快捷,它并不能提供像FTP那样的强大功能。
FTP与TFTP的区别:
- FTP的功能只限于列表和目录操作、文件内容输入,以及在主机间进行文件复制,TFTP不提供目录浏览功能,它只能完成文件的发送和接收操作。
- FTP 是完整的、面向会话的、常规用途的文件传输协议,而 TFTP 用作特殊目的文件传输协议。FTP支持双向传输文件,而 TFTP 仅允许单向传输文件。
- FTP 提供身份验证,而TFTP 不需要。
- FTP 使用已知的TCP 端口号:端口号20对应数据,端口号21用于连接对话框。 TFTP 使用它的文件传输活动 UDP 端口号 69。
- FTP 依赖于 TCP,面向连接并提供可靠的控件。TFTP 依赖于UDP,需要减少开销,几乎不提供控件。
安装、配置
查询本机是否安装了TFTP服务
rpm -q tftp
#或者
rpm -qa|grep tftp
利用yum命令进行安装
yum install xinetd
yum install tftp
yum install tftp-server
以上命令安装了3个服务,分别是xinetd、tftp-server和tftp。
- xinet d (extended Internet services daemon)是新一代的网络守护进程服务程序,又称超级Internet服务器,经常用于管理多种轻量型Internet服务,xinetd提供类似于inetd + tcp_wrapper的功能,但是更加强大和安全。
- tftp一个应用非常广的场景是与开发板传输文件。嵌入式Linux的tftp开发环境包括两个方面:一是Linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。
查看并修改TFTP服务的配置文件/etc/xinetd.d/tftp。
# 打开
vim /etc/xinetd.d/tftp
# 修改以下两行
server_args =-c -s /tftpboot
disable =no
配置文件夹
如果根目录下存在tftpboot目录,则可以直接修改权限,以方便共享后被其他用户访问;如果没有该目录,则可以进行创建并修改其权限。
cd ~
mkdir /tftpboot
chmod 777 /tftpboot
使用
启动TFTP服务
service xinet start
查看TFTP服务状态
netstat -a|grep tftp
#或者
service xinet status
执行命令关闭SELinux
# 暂时关闭
setenforce 0
# 永久关闭
vim /etc/sysconfig/selinux
修改 SELINUX = disabled
传输文件
# 首先登陆
tftp ip地址
# 然后进入tftp命令模式
get aaa # 从服务器下载文件aaa
put bbb # 上传bbb到服务器
status # 查看状态
quit # 退出tftp
·mode:显示文件传输模式。
·put:上传文件到目标主机开放的tftpboot目录。
·get:从目标主机开放的tftpboot目录下载文件。
·quit:退出。
·tarce:显示包路径。
·binary:二进制传输模式。
·rexmt:设置包传输的超时时间。
·help:显示帮助信息。
·verbose:显示详细的处理信息。
·status:显示当前状态信息。
·ascii:ascii传送模式。
·timeout:设置重传的超时时间。
·?:帮助信息。
Samba
概述
Samba是可以应用Microsoft网络通信协议到Linux系统的软件, SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,Samba软件是将SMB通信协议应用到Linux系统上而形成的。
Samba可以实现Linux与Windows系统直接的文件共享和打印共享,该软件非常灵活,既可以实现Windows与Linux之间的文件共享,也可以实现Linux与Linux之间的资源共享。在实际应用中, Linux与Linux之间的数据共享更多地使用NFS(网络文件系统),Samba更多地应用在Linux与Windows系统之间的数据共享。
安装、配置
查询本机是否安装了Samba服务
rpm -q samba
#或者
rpm -qa|grep samba
利用yum命令进行安装
yum install samba
Samba服务器安装完毕,会生成配置文件目录/etc/samba,该目录下的smb.conf文件是Samba的核心配置文件。如下:
按照该文件中的显示格式,添加如下内容:
[smbtest]
path=/smbtest #开放目录真实路径
browseable=yes
writable=yes #允许写入
guestok=yes
security安全验证方式可以有4种选项,其对应功能如下:
share:无须验证密码。
user:需要输入有效的用户名和密码才能访问Samba服务器。
server:独立远程主机验证密码(集中管理账号)。
domain:PDC验证(password server=IP)。
根据在配置文件中的设置内容创建/smbtest目录并设置其权限
cd ~
mkdir /smbtest
chmod 777 /smbtest
使用
使用smbpasswd命令添加一个已经存在的Linux用户。
smbpasswd -a 用户名
新建用户:
useradd username
passwd username
启动Samba服务
service smb start
# 或者
systemctl start smb
以上都失败可以尝试:sudo systemctl start smbd
关闭SELinux,并关闭防火墙。
setenforce 0
systemctl stop firewalld.service
在Windows窗口上方地址栏中输入地址,访问共享的smbtest目录。需要输入添加的Samba用户名及密码进行验证。
NFS
概述
NFS(Network File System,网络文件系统),是由SUN公司研制的UNIX表示层协议,基于UDP,是当前主流异构平台共享文件系统之一。在进行文件传送或信息传送的过程中,依赖远程过程调用协议(remote procedure call,RPC)。该协议是使客户端能够执行其他系统中程序的一种机制。NFS本身不提供信息传输的协议和功能,但由于RPC提供的传输协议,NFS可以实现资料的共享。因此,可以说NFS就是使用PRC的一个程序。在实际应用中,客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。实质上是将一台机器中共享的目录挂载在另一台机器的某个目录中,从而实现文件共享。
安装、配置
查询本机是否安装了Samba服务
rpm -q nfs-utils
#或者
rpm -qa|grep nfs-utils
利用yum命令进行安装
yum install nfs-utils
创建共享目录/nfstest,并修改其权限。
cd ~
mkdir /nfstest
chmod 777 /nfstest
修改配置文件/etc/exports,添加导出目录信息。
vim /etc/exports
/nfstest *(rw,no_root_squash)
可以执行命令查看导出目录情况。
exportfs参数说明:
-a:全部挂载或卸载 /etc/exports中的内容。
-r:重新读取/etc/exports 中的信息,并同步更新/etc/exports和/var/lib/nfs/xtab。
-u:卸载单一目录(和-a一起使用,则卸载所有/etc/exports文件中的目录)。
-v:输出详细的共享参数。
使用
重启NFS服务,并关闭防火墙。
systemctl restart nfs.service
systemctl stop firewalld.service
在另一台主机上挂载该共享目录。
cd ~
mkdir test
mount ip地址:/nfstest /root/test -o nolock
cd test # 可以开始使用共享目录了
ls