FTP文件传输协议详解

这篇具有很好参考价值的文章主要介绍了FTP文件传输协议详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器。
需要通过控制连接20端口来控制双方的通信
需要通过数据连接21端口来进行双方的通信
主动模式:最大的特点是数据连接由服务器的20端口主动发起连接,这种情况可能会被客户端的防火墙拒绝
被动模式,是由客户端向服务器端口发起连接

  • FTP协议:文件传输协议
    • 协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的一个标准。
    • FTP运行在OSI模型的应用层,并利用传输协议TCP在不同主机之间提供可靠的数据传输。
    • FTP在文件传输中还支持断点续传功能,可以大幅度减少CPU网络带宽的开销。
  • FTP模型
    • 用户接口:提供一个用户接口并使用客户端协议解释器的服务。
    • 客户端协议解释器:向远程服务器发送命令 并建立客户数据传输过程
    • 服务端协议解释器:响应客户协议机发出的命令并驱动服务端数据传输过程
    • 客户端数据传输协议:负责完成和服务器数据传输过程及客户端本地文件系统的通信
    • 服务端数据传输协议:负责完成和客户数据过程及服务器端文件系统的通信
  • 控制连接(端口号 21)
    • 主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应
    • 只需要很小的网络带宽
    • FTP服务端监听21端口号来等待控制连接建立
    • 建立控制连接后,还需要验证客户身份,决定是否建立数据连接
    • 当需要目录列表,传输文件时,才建立数据连接,并且每次客户端都是用不同的端口号来建立数据连接。数据 传输完毕,就中断这条临时的数据连接。
    • 在FTP连接期间,控制连接始终保持通常的连接状态。在数据连接存在期间,控制连接必须存在;一旦控制连接断开,数据连接会自动关闭。
  • 数据连接(端口号20)
    • FTP服务端监听20端口来等待数据连接
    • 数据连接依赖于控制连接
    • 建立方式
  • 参考博客:https://blog.csdn.net/ludan_xia/article/details/105705473

**主动模式:**客户端端口都是随机的

  • 通过三次握手,建立控制连接;客户端的源端口是高位随机端口,目标端口是21端口
  • 控制连接建立后,客户端进行份验证,协商数据连接采用主动模式;随后客户端会向FTP服务器发送Port报文,表明自己监听的IP+端口,并等待FTP服务器(20端口)向自己监听的IP+端口发起数据连接请求。
  • 服务端发起数据连接请求,建立数据连接。
    被动模式:
  • 通过三次握手,建立控制连接;客户端的源端口是高位随机端口,目标端口是21端口;
  • 控制连接建立后,客户端进行身份验证,协商数据连接采用被动模式;随后客户端会向
  • 服务器发送PASV报 文,表示我们用被动模式
  • 服务端收到PASV报文,于是向客户端发送Port报文,表明自己监听的IP+端口
  • 客户端发起数据连接请求,建立数据连接。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。

被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

主动模式和被动模式的区别:
总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等
待客户端连接自己的数据端口。
被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况,因为在这种情况下,防
火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。
因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
FTP文件传输协议详解- 软件包
- vsftpd
- tftp(了解)

VSFTPD服务介绍

服务包:vsftpd
服务类型:由Systemd启动的守护进程
配置单元: /usr/lib/systemd/system/vsftpd.service
守护进程: /usr/sbin/vsftpd
端口: 21(ftp) , 20(ftp‐data)
主配置文件: /etc/vsftpd/vsftpd.conf
用户访问控制配置文件: /etc/vsftpd/ftpusers /etc/vsftpd/user_list
日志文件: /etc/logrotate.d/vsftpd
配置文件参数:
FTP文件传输协议详解FTP文件传输协议详解
改主配置文件时要养成良好习惯经常备份,容易改错了恢复。
权限是由两部分控制的,一部分是Linux系统控制的一部分是服务自己控制的。

Linux中

第一种:

yum install ftp -y

[root@server1 ~]# ftp 192.168.120.100
Connected to 192.168.120.100 (192.168.120.100).
220 (vsFTPd 3.0.2)
Name (192.168.120.100:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

第二种:

[root@server1 ~]# lftp 192.168.120.100
lftp 192.168.120.100:~> ls
-rw-r--r--    1 0        0               0 Mar 06 10:45 abc.txt
drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
lftp 192.168.120.100:/> 

只有当敲命令有结果返回时,才表示登录成功

windows中

第一种:
- 可以在浏览器、运行窗口或者资源管理器中输入 ftp://IP地址/ ,这样访问的是ftp的根位
置,如果需要访问相关
- 目录可以输入 ftp://IP地址/目录/文件名

ftp的常用命令
上传文件:put 源文件名 目的文件名
下载文件:get 源文件吗 目的文件名
重命名文件:rename 源文件名 目的文件名
创建目录:mkdir
其他系统命令可以正常使用

匿名用户的方式去访问vsftpd

[root@server1 ~]# vim /etc/vsftpd/vsftpd.conf
进去修改配置文件
anonymous_enable=YES
anon_umask=022
anon_upload_enable=Yes
anon_mkdir_write_enable=Yes
anon_other_write_enable=Yes
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

[root@server1 ~]# systemctl restart vsftpd
重启

系统用户的方式去访问vsftpd
1.创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
2. 使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件
3. 降低数据库文件的权限(避免其他人看到数据库文件的内容)
4. 把原始的明文信息文件删除。
5. 创建一个本地用户,用来做虚拟用户在本地的代理,为了安全起见,禁止这个本 地用户登录。
6. 新建一个用于虚拟用户认证的PAM文件vsftpd.vu
7. 配置文件
8.如果想要针对不同的用户设置不同的权限

NFS(网络文件系统)

简介:
Linux/Unix系统之间共享文件系统的一种协议,通过网络让不同的主机之间共享文件或目录
NFS的客户端主要为Linux
支持多节点同时挂载以及并发写入
提供文件共享服务
为集群中的web server配置后端存储
NFS协议模型:
FTP文件传输协议详解

RPC远程过度调度

  • NFS协议本身并没有网络传输功能,而是基于远程过程调用协议实现的
  • 提供一个面向过程的远程服务的接口
  • 可以通过网络从远程主机程序上请求服务,而不需要了解底层网络技术的协议
  • 工作在OSI模型的会话层,它可以为遵从RPC协议应用层协议提供端口注册功能
  • 事实上,有很多服务(NFS和NIS等)都可以向RPC注册端口
  • RPC使用网络端口111来监听客户端的请求

RPC协议模型:

  1. 基于rpc的服务(此处是指nfs服务,在别处有可能是代表其他服务)在启动时向portmapper注册
    端口
  2. 基于rpc的客户端练习服务端portmapper询问服务的端口号
  3. portmapper告知客户端某基于rpc服务使用的端口号
  4. 基于rpc的客户端访问被告知单某基于rpc服务的端口
  5. 基于rpc的服务响应客户端的请求
    FTP文件传输协议详解工作过程:

FTP文件传输协议详解
案例,基于NFS搭建web后端NAS存储

用户访问负载均衡器节点,负载均衡器会将请求负载均衡得分发给web服务器,比如请求index.html界面,每一台服务器都会去NAS存储服务器上寻找想要被读取的数据。这可以大大降低服务器成本、运维成本(修改数据会牵一发而动全身)
FTP文件传输协议详解1.准备三台服务器,其中两台模拟webserver,还有一台模拟NFS
2.分别在两台webserver上进行如下操作

[root@server1 ~]# yum install httpd -y
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# cd /var/www/html/
必须是index.html这个文件
[root@server1 html]# vim index.html
[root@server1 html]# yum search showmount -y
[root@server1 html]# yum install nfs-utils.x86_64 -y

查看挂载情况
[root@server1 html]# showmount -e 192.168.120.148
Export list for 192.168.120.148:
/webdata 192.168.120.147/24,192.168.120.100/24
将其挂载到server3上NFS
[root@server1 html]# mount -t nfs 192.168.120.148:/webdata /var/www/html
重启一下服务
[root@server1 html]# systemctl start httpd

3.在server3上进行如下操作

[root@server1 ~]# yum install -y nfs-utils
[root@server1 ~]#  mkdir /webdata
[root@server1 webdata]# vim index.html
[root@server1 webdata]# vim /etc/exports
[root@server1 webdata]# systemctl start nfs-server.service

NFS配置参数
FTP文件传输协议详解FTP文件传输协议详解

自动挂载

可使用autofs服务按需要挂载外围设备,NFS共享等,并在空闲5分钟后后自动卸载
相关包和文件

  • 软件包: autofs
  • 服务文件: /usr/lib/systemd/system/autofs.service
  • 配置文件: /etc/auto.master
    配置文件格式
    自动挂载有两种格式:
    • 相对路径法:将mount point路径分成dirname和basename分别配置,可能会影响现有的目录结构
    • 绝对路径法:直接匹配全部绝对路径名称,不会影响本地目录结构
      相对路径法:
    • /etc/auto.master 格式
挂载点的dirname 指定目录的配置文件路径
- 指定目录的配置文件格式
挂载点的basename 挂载选项 选项设备 1

例子:
将NFS的共享目录,通过autofs 发布出来,做为远程主机用户的家目录
FTP文件传输协议详解- NFS服务器创建用户和相应的目录,将用户user的家目录共享

[root@server1 webdata]# mkdir /data
[root@server1 webdata]# useradd -d /data/user user
[root@server1 webdata]# id user
uid=1000(user) gid=1000(user)=1000(user)
[root@server1 webdata]# vim /etc/exports.d/test.exports
/data/user *(rw,anonuid=1000,anongid=1000,all_squash)
  • 在nfs客户端上实现autofs
[root@server1 html]# vim /etc/auto.master
/data /etc/auto.home
[root@server1 html]# vim /etc/auto.home
* -fstype=nfs 192.168.175.144:/data/user
  • 在nfs客户端上创建用户user
[root@NFSclient ~]# mkdir /data
[root@NFSclient ~]# useradd -d /data/user -u 1000 user
  • 测试是否完成目标
[root@NFSserver ~]# su - user
[user@NFSserver ~]$ touch file
# 在NSF服务器上登录user用户,创建文件在家目录中
[root@NFSclient /]# su - user
[user@NFSclient ~]$ ll
总用量 0
-rw-rw-r--. 1 user user 0 430 10:13 file
# 在NSF客户机上登录user用户,发现文件已经被共享了

ssh免密钥登录
客户端需要准备好一对密钥对,然后将自己的公钥发送给服务端,登录的时候可以选择登录的方式为密钥登录,这时候就不用输入密码。
常用场景:临时给他人开放root权限,要求别人将它自己的公钥发送到服务器上来,等使用结束将其公钥发送到服务器上来。
NFS与RPC之间的关系:
NFS是向RPC进行注册端口,访问者需要先向RPC询问NFS端口之后才会访问NFS的端口
RPC不仅仅可以服务NFS,也可以服务很多其他端口

NFS与FTP之间的区别:
FTP通常用来做文件服务器
NFS通常是用来做网络存储
NFS通常是linux之间进行文件共享

NFS+autofs可以实现自动挂载远端文件系统,当不使用的时候则不会挂载,只有在使用时候才会自动挂载。

SAMBA

  • SMB协议
    • SMB(服务信息模块)协议是一个高层协议、它提供了在网络上的不同计算机之间共享文件,打印机和不同通 信资料的手段
    • SMB使用NetBIOS API实现面向连接的协议,该协议为Window是客户程序和服务提供了一个通过虚链路按照 请求——响应方式进行通信的机制
    • SMB的工作原理就是让NetBIOS与SMB协议运行在TCP/IP上,并且使用NetBIOS的名字解释器让Linux机器可 以在Windows的网络邻居中被看到,从而在Windows的网络邻居中被看到,从而和Windows9x/NT/200X进 行相互沟通,共享文件和打印机
      -CIFS协议
    • 通用网际文件系统是微软服务器消息块协议(SMB)的增强版
    • 提供计算机用户在企业内部网和因特网上共享文件的标准方法
    • CIFS在TCP/IP运行,利用英特网上的全球域名服务系统(DNS)增强其可扩展性,同时为因特网上普遍存在 的慢速拨号连接优化。
  • 应用环境
    • 文件和打印机共享:文件和打印机共享是samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问
  • 身份验证和权限设置:samba服务支持user mode和domain mode 等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机
  • 名称解析:samba通过NMB服务可以搭建NBNS服务器,提供域名解析,将计算机的NetBIOS名称解析为ip地址
  • 浏览服务,局域网中,samba可以成为本地主浏览服务器,保存可用资源列表,当使用客户端访问windows网上邻居时,会提供浏览列表,显示共享目录、打印机资源等
  • 端口号:139和445
    • 在早期,SMB运行于NBT协议上,使用udp协议的137和138以及TCP协议的139端口
  • NetBIOS协议
    • NetBIOS是Network Basic Input/Output System的简称,网络基本输入输出协议。协议,一般指能用于局域网通信的一套API,是由IBM公司开发的。主要作用,通过NetBIOS协议获得计算机名称,然后把计算机名称解析为对应的IP地址
  • 基于C/S模式
  • 安装
[root@server1 ~]# yum install samba -y

主配置文件:

[root@server1 ~]# cat /etc/samba/smb.conf
#默认主配置文件:
[global] #全局参数。
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本
号
log file = /var/log/samba/log.%m #定义日志文件的存放位置与名称,参数%m为来访的
主机名
max log size = 50 #定义日志文件的最大容量为50KB
security = user #安全验证的方式,总共有4种
#share:来访主机无需验证口令;比较方便,但安全性很差
#user:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam #定义用户后台的类型,共有3种
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码(最常用)
#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam:基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享信息是否在“网上邻居”中可见
writable = yes #定义是否可以执行写入操作,与“read only”相反
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)。
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数。
writable = no
printable = yes

安全等级:

Samba安全等级:
User:由本地Samba服务器负责账户验证
使用smbpasswd 设置账号(默认的安全等级)
Domain:账户验证账户及口令的工作由其他的Windows 或Samba域控制器负责
需要使用“password server”指令指定验证服务器
Ads:验证账户及口令的工作由支持Kerberos验证的Windows活动目录服务器负责。
需要使用“realm”指令指定Kerberos领域
Share:匿名共享
Samba账户及口令数据库
1.Samba使用的账户文件/数据库是与系统账户文件分离的
2.当设置了user的安全等级后(默认),将由本地系统对问Samba共享资源的用户进行认证
3..tdb格式的口令数据库,初始情况下口令数据库文件并不存在
4.为了创建Samba的口令数据库文件,管理员可以在添加Samba账户的同时创建它
5.管理员可以使用smbpasswd命令配置Samba账号并设置其口令

配置一个共享资源(具体步骤)

  1. 设置共享名称
    1. 共享资源发布后,必须为每个共享目录或打印机设置不同的共享名称,给网络用户访问时使
      用,并且共享名可以与原目录名不同。例如,samba服务器上有个目录为/share,需要发布
      该目录为共享目录,定义共享名为public
  2. 共享资源描述
    1. 格式: comment = 备注信息
    2. 备注信息通常是用来进行解释说明的
  3. 共享路径
    1. 共享资源的原始完整路径
    2. 格式: path = 绝对路径
  4. 设置匿名访问
    1. 共享资源如果对匿名访问进行设置,可以更改public字段
    2. 格式: public = yes | no (yes代表允许匿名访问,no代表不允许)
  5. 设置访问用户
    1. 如果共享资源存在重要数据的话,需要访问用户审核,可以使用valid users字段进行设置
    2. 格式:
      1. valid users = 用户
      2. valid users = @组名
  6. 设置目录只读
    1. 共享目录如果限制用户的读写操作,可以通过readonly实现
    2. 格式: readonly = yes | no
      1. yes代表只读
      2. no代表读写
  7. 设置目录可写
    1. 如果目录允许用户写操作,可以使用writable或write list两个字段进行设置
    2. 格式:
      1. writable = yes 读写
      2. writable = no 只读
      3. write list = 用户名
      4. write list = @ 组名

案例:通过用户名共享文件

实验:需要两台服务器,一台做服务端一台做客户端。
共享销售部 /xsb 这个目录,只有知道用户名和密码的同事可以看这个共享,在/xsb目录中存放销售部重要的数据。需要将security设置为user级别,这样可以启用samba身份验证机制,然后在共享目录 /xsb下设置valid user 字段,配置只允许销售部员工能访问这个共享目录。
服务器端为server1,客户端为server2
服务器端

  • 修改主配置文件相关设置
[root@server1 ~]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
# passdb backend = tdbsam
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
printing = cups
printcap name = cups
load printers = yes
cups options = raw
# 重启smb服务之后,会自动生成/etc/samba/smbpasswd该文件
  • 添加销售部用户和组
[root@server1 samba]# groupadd xsb
[root@server1 samba]# useradd -g xsb -M -s /sbin/nologin xsb01
[root@server1 samba]# useradd -g xsb -M -s /sbin/nologin xsb02
[root@server1 samba]#  useradd jsb01

  • 添加相应的samba账号
[root@server1 ~]# smbpasswd -a xsb01
New SMB password:
Retype new SMB password:
Added user xsb01.
[root@server1 ~]# smbpasswd -a xsb02
New SMB password:
Retype new SMB password:
Added user xsb02.
  • 指定共享目录
[root@server1 ~]# mkdir /xsb
[root@server1 ~]# cp /etc/hosts /xsb
[root@server1 ~]# vim /etc/samba/smb.conf
[xsb]
comment = Xsb Data
path = /xsb
valid user = xsb01,xsb02
  • 重启服务
[root@server1 ~]# systemctl restart smb.service
[root@server1 ~]# systemctl restart nmb.service
  • 检查139和445端口号
[root@server1 ~]# ss -tanl
State Recv-Q Send-Q Local Address:Port Peer
Address:Port
LISTEN 0 50 *:139 *:*
LISTEN 0 50 *:445 *:*
LISTEN 0 50 :::139 :::*
LISTEN 0 50 :::445 :::*

客户端验证

# linux上验证
[root@server2 ~]# yum install samba-client -y
[root@server2 ~]# smbclient -L //192.168.80.151/xsb -U xsb01
Enter SAMBA\xsb02's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
xsb Disk Xsb Data
IPC$ IPC IPC Service (Samba 4.10.16)
xsb02 Disk Home Directories
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA SERVER1
# 在windows上进行验证
windows验证:
在Window运行输入地址:\\192.168.10.10
用户名:****** xsb01
密码:****** 1
可以在DOS窗口中使用命令net use * /delete 清空用户缓存信息

在linux上进行挂载

[root@server2 ~]# mkdir /xsbdata
[root@server2 ~]# yum install cifs-utils -y
[root@server2 ~]# vim auth.smb
username=xsb01
password=1
[root@server2 ~]# vim /etc/fstab
//192.168.120.100/xsb /xsbdata cifs defaults,credentials=/root/auth.smb
0 0
[root@server2 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17811456 1099604 16711852 7% /
devtmpfs 922468 0 922468 0% /dev
tmpfs 933524 0 933524 0% /dev/shm
tmpfs 933524 8852 924672 1% /run
tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 1038336 145756 892580 15% /boot
tmpfs 186708 0 186708 0% /run/user/0
//192.168.120.100/xsb 17811456 1108900 16702556 7% /xsbdata
[root@server2 ~]# ls /xsbdata/
hosts

NFS与SAMBA区别:
NFS权限控制是编辑时候()在括号内指明权限
SAMBA权限是通过参 数writable来控制的

案例二:不同账户访问不同目录

[root@server1 ~]# yum install samba -y

#创建三个samba用户,并指定密码为1
useradd -s /sbin/nologin -r smb1 #加选项-r 不创建家目录
useradd -s /sbin/nologin -r smb2
useradd -s /sbin/nologin -r smb3
smbpasswd –a smb1 #创建对应账号的口令 ,不加-a表示修改已经存在的账号的口令
smbpasswd –a smb2
smbpasswd –a smb3
[root@SMB ~]#pdbedit -L #查看samba账号
smb1:995:
smb3:993:
smb2:994:
#修改samba配置文件
vim /etc/samba/smb.conf
#在workgroup下加一行
config file= /etc/samba/conf.d/%U 说明:%U表示用户名 #**这个步骤为关键步骤**
[share] #共享文件夹在最后添加
Path=/data/dir #指定分享文件夹的路径
Read only= NO #不仅仅是只读
Guest ok = yes
write list=@admin

[root@SMB ~]#mkdir /data/dir
[root@SMB ~]#mkdir /data/dir1
[root@SMB ~]#mkdir /data/dir2
[root@SMB ~]#touch /data/dir/share.txt #新建共享文件
[root@SMB ~]#touch /data/dir1/smb1.txt #新建给smb1用户访问特定文件
[root@SMB ~]#touch /data/dir2/smb2.txt #新建给smb2用户访问特定文件
[root@server1 ~]# yum install tree -y
[root@SMB ~]#tree /data/
/data/
├── dir
│ └── share.txt
├── dir1
│ └── smb1.txt
└── dir2
└── smb2.txt
3 directories, 3 files

#针对smb1和smb2用户创建单独的配置文件
[root@SMB ~]#mkdir /etc/samba/conf/smb1 -pv
vim /etc/samba/conf.d/smb1
[share]
Path=/data/dir1
Read only= NO 等价于writable = yes
Create mask=0644
#说明:默认为744
[root@SMB ~]#mkdir /etc/samba/conf/smb2 -pv
vim /etc/samba/conf.d/smb2
[share]
path=/data/dir2
systemctl restart smb nmb #重启对应的服务
#用户smb1,smb2,smb3访问share共享目录,看到目录是不同目录,smb3访问的是默认的share目录

客户端:

[root@client ~]#smbclient //192.168.120.100/share -U smb1%1
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Dec 20 13:11:40 2019
.. D 0 Fri Dec 20 13:10:56 2019
smb1.txt N 0 Fri Dec 20 13:11:40 2019
52403200 blocks of size 1024. 52004560 blocks available
smb: \> exit
[root@client ~]#smbclient //192.168.32.18/share -U smb2%centos
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Dec 20 13:12:53 2019
.. D 0 Fri Dec 20 13:10:56 2019
smb2.txt N 0 Fri Dec 20 13:12:53 2019
52403200 blocks of size 1024. 52004560 blocks available
smb: \> exit
[root@client ~]#smbclient //192.168.120.100/share -U smb3%centos
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Fri Dec 20 13:13:12 2019
.. D 0 Fri Dec 20 13:10:56 2019
share.txt N 0 Fri Dec 20 13:11:26 2019
52403200 blocks of size 1024. 52004560 blocks available
smb: \> exit
[root@client ~]#

最后应该如图显示
FTP文件传输协议详解
中途出现的小问题:
[root@server1 ~]# smbclient -L //192.168.120.147/share -U smb2
Enter SAMBA\smb2’s password:
session setup failed: NT_STATUS_LOGON_FAILURE
密码错误了,去服务端修改一下密码即可文章来源地址https://www.toymoban.com/news/detail-460397.html

[root@server1 ~]# smbpasswd -a smb3
New SMB password:
Retype new SMB password:
Added user smb3.

到了这里,关于FTP文件传输协议详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FTP与HTTP: 哪种协议更适合大文件传输?

    随着互联网技术的发展,网络传输已成为了现代社会中不可或缺的一部分。无论是文本、图像、音频、视频等各种类型的数据,相应的传输协议也在不断地发展和更新。FTP(File Transfer Protocol)和HTTP(Hyper Text Transfer Protocol)是两种被广泛应用的协议,它们都在网络上进行数据

    2024年02月16日
    浏览(41)
  • 计算机网络 应用层上 | 域名解析系统DNS 文件传输协议FTP,NFS 万维网URL HTTP HTML

    之前我们讲运输层的时候已经讲了运输层可以给不同进程之间通信,但我们还需要应用层原因是,许多 应用需要多个进程之间相互配合完成,所以应用层进程用来约束这些配合! 每个应用层协议用来解决一个问题 应用层的许多协议都是基于客户服务器方式 客户是请求方,服

    2024年01月24日
    浏览(62)
  • 基于ftp协议的文件变化主动监听

    文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的

    2024年02月07日
    浏览(45)
  • Java基于ftp协议实现文件的上传和下载

    相比其他协议,如 HTTP 协议,FTP 协议要复杂一些。与一般的 C/S 应用不同点在于一般的C/S 应用程序一般只会建立一个 Socket 连接,这个连接同时处理服务器端和客户端的连接命令和数据传输。而FTP协议中将命令与数据分开传送的方法提高了效率。 FTP 使用 2 个端口,一个数据

    2024年02月11日
    浏览(50)
  • SSH原理详解:安全远程登录和文件传输协议

    简介: SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。它提供了加密的数据传输和身份验证机制,确保了远程通信的安全性。本文将深入介绍SSH的工作原理、协议格式分析以及使用方法,帮助读者全面了解SSH协议并正确使用SSH进行远程操作和文件传输。 正

    2024年02月09日
    浏览(57)
  • 【Linux命令详解 | wget命令】 wget命令用于从网络下载文件,支持HTTP、HTTPS和FTP协议

    在编程世界中,处理网络资源是一项关键任务,而 wget 命令就是一位可靠的助手。 wget (全名为“Web Get”)是一种用于从网络下载文件的工具,它能够处理多种协议,包括HTTP、HTTPS和FTP。作为一个博主,我们可以利用 wget 命令来获取文件、备份网站内容、自动下载资源等。

    2024年02月12日
    浏览(40)
  • TCP/IP协议、HTTP协议和FTP协议等网络协议简介

    常见的网络协议主要包括TCP/IP协议、HTTP协议、FTP协议等。 TCP/IP协议(Transmission Control Protocol/Internet Protocol)是互联网最基础的协议,由网络层的IP协议和传输层的TCP协议组成。 TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准,是Internet国际互联网络

    2024年04月10日
    浏览(84)
  • Linux如何用ftp传输文件【ftp命令】

    在Windows系统中, 可以用可视化的ftp来传输文件, 或者下在文件夹路径填入 ftp://222.200.177.152:1021/ 后输入用户名和密码即可连接至 FTP 服务器(内网)。 即IP地址+端口号。 可以用ftp 命令 注意是之间是空格: 例如 即IP地址 端口号 然后就是输入用户名和密码 用 查看文件。 到

    2024年02月07日
    浏览(49)
  • FTP文件传输服务

    一、FTP协议概述 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。 工作模式为“ FTP服务器 / FTP客户端 ”。 默认使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。 主要作用为:为用户提供上传和下载文件的服务 协议/应用程

    2024年02月16日
    浏览(39)
  • FTP文件传输服务器

    目录 一、FTP协议两种工作模式 二、FTP数据两种传输模式 三、FTP用户分类 四、VSFTP配置案例 4.1匿名开放模式 4.2本地用户模式 4.3虚拟用户模式 五、实验总结 一、FTP 协议两种工作模式 主动模式: 1、客户端主动向ftp服务器发送控制连接,三次握手控制连接建立成功(密码认证

    2024年02月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包