前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 多种方式实现文件共享

Linux 多种方式实现文件共享

作者头像
微软技术分享
发布2022-12-28 17:55:48
5.2K0
发布2022-12-28 17:55:48
举报

文件共享服务在Linux系统上有多种方式,最常用的有Samba,vsftp,iSCSI,NFS这四种方式,如下将分别配置四种不同的文件共享服务.

VSFTP 文件传输

FTP是文件传输协议.用于Internet上的控制文件的双向传输,FTP传输文件属于明文传输,不对传输过程进行任何加密处理,VSFTP服务是Linux系统下的加强版传输服务器,安全性更好.

  • VSFTP的特点
  • 1.vsftp程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性.
  • 2.任何需要执行较高权限的指令都需要上层程序许可.
  • 3.ftp所需要使用的绝大多数命令都被整合到了vsftp中,基本不需要系统额外提供命令.
  • 4.拥有chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录.
  • VSFTP的连接类型
  • 控制连接(持续连接)-> TCP21(命令信道)-> 用户收发FTP命令
  • 数据连接(按需连接)-> TCP20(数据信道)-> 用于上传下载数据
  • 主动模式与被动模式
  • 1.很多防火墙在设置的时候都是不允许接受外部发起的连接,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高位端口.
  • 2.而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作.

配置匿名FTP服务器

作用:任意用户,输入FTP服务器IP都可以访问,只需输入用户名ftp即可访问.

代码语言:javascript
复制
[匿名配置常用参数]

	anonymous_enable=YES		#启用匿名访问
	anon_umask=022			#匿名用户所上传文件的权限掩码
	anon_root=/var/ftp		#匿名用户的FTP根目录
	anon_upload_enable=YES		#允许上传文件
	anon_mkdir_write_enable=YES	#允许创建目录
	anon_other_write_enable=YES	#开放其他写入权
	anon_max_rate=0			#限制最大传输速率

1.安装VSFTP服务器.

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=YES						#允许匿名用户访问
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=YES					#允许匿名用户建立目录
anon_other_write_enable=YES					#开放其他人写入权限
anon_umask=022							#设置匿名用户umask
anon_root=/ghost						#匿名用户ftp根目录

local_enable=YES						#允许本地用户登录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
connect_from_port_20=YES					#主动模式传输接口
xferlog_std_format=YES						#使用标准ftp日志的格式

listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制


#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置本地用户FTP服务器

作用:只有正确输入用户名和密码才能访问数据.

代码语言:javascript
复制
[本地配置常用参数]

	local_enable=YES				#是否启用本地系统用户
	local_umask=022					#本地用户所上传文件的权限掩码
	local_root=/var/ftp				#设置本地用户的FTP根目录
	chroot_local_user=YES				#是否将用户禁锢在主目录
	local_max_rate=0				#限制最大传输速率
	ftpd_banner=Welcome to blah FTP service		#用户登录时显示的欢迎信息
	banner_file=/目录				#弹出一个说明,可以做哪些操作
	userlist_enable=YES &userlist_deny=YES 	#禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP
	userlist_enable=YES & userlist_deny=NO 	#仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

1.安装VSFTP服务器.

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=NO						#允许匿名用户登陆
chroot_local_user=YES						#把用户禁锢在家目录
local_enable=YES						#本地用户允许登陆
local_root=/ghost						#指定本地用户的ftp根目录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
xferlog_std_format=YES						#使用标准ftp日志的格式

listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.创建用户并指定其家目录,创建用于存储数据的目录.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark
[root@localhost ~]# passwd  lyshark

4.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置匿名与本地混合FTP

作用:匿名用户可以查看共享数据,登陆后有自己的存储池.

1.安装VSFTP服务器

代码语言:javascript
复制
[root@localhost ~]# yum install -y vsftpd

2.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口
anonymous_enable=YES						#允许匿名用户登陆
anon_umask=022							#设置匿名用户umask
anon_root=/var/ftp						#匿名用户ftp根目录
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=YES					#允许匿名用户建立目录
anon_other_write_enable=YES					#开放其他人写入权限
anon_max_rate=0							#限制最大传输速率

local_enable=YES						#允许本地用户登录
local_root=/ghost						#指定本地用户的ftp根目录
chroot_local_user=YES						#把用户禁锢在家目录
write_enable=YES						#允许本地用户上传
local_umask=022							#本地用户上传umask值
xferlog_enable=YES						#激活记录日志
xferlog_std_format=YES						#使用标准ftp日志的格式
listen=YES							#允许被侦听
pam_service_name=vsftpd						#ftp采用pam默认用户名密码验证
userlist_enable=YES						#用户登陆限制
tcp_wrappers=YES						#网络访问限制机制

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

3.创建用户并指定其家目录,创建用于存储数据的目录.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /ghost/lyshark  lyshark
[root@localhost ~]# passwd  lyshark

4.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

配置虚拟用户FTP服务器

作用:有时候创建本地用户过多,严重影响系统效率,所有我们要使用虚拟用户模式.

代码语言:javascript
复制
[虚拟配置常用参数]

	anon_world_readable_only=NO 		#允许查看和上传下载文件
	anon_upload_enable=YES			#允许上传文件
	anon_world_readable_only=NO		#允许查看和上传下载文件
	anon_mkdir_write_enable=YES		#允许创建目录
	anon_world_readable_only=NO		#允许查看和上传下载文件
	anon_other_write_enable=YES		#允许重名和删除文件

1.安装相应软件包,libdb-utls是数据库包.

代码语言:javascript
复制
写入相应账号以及密码yum install -y libdb-utils
写入相应账号以及密码yum install -y vsftpd

2.配置vlogin文件,vlogin文件名称可自定义,写入相应账号以及密码.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vlogin

Lyshark			#奇数行写账号
123456			#偶数行写密码

3.将写好的文件加密,并转换成vlogin.db数据库文件

代码语言:javascript
复制
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db

4.设置数据库文件的权限,保证安全.

代码语言:javascript
复制
[root@localhost ~]# chmod 600 /etc/vsftpd/{vlogin,vlogin.db}

5.覆盖编辑PAM文件,写入以下内容.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/pam.d/vsftpd.pam

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin

6.创建一个映射账号virtual,所有的登陆请求都是virtual.

代码语言:javascript
复制
[root@localhost ~]# useradd -s /sbin/nologin -d /home/ftp virtual

7.修改VSFTP主配置文件,覆盖写入以下内容,并去掉#号注释即可.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES							#开启被动模式
pasv_min_port=10000						#被动模式最小端口
pasv_max_port=15000						#被动模式最大端口

anonymous_enable=NO						#允许匿名用户访问
local_enable=YES						#允许本地用户登录
write_enable=YES						#允许本地用户上传
anon_upload_enable=YES						#允许匿名用户上传
anon_mkdir_write_enable=NO					#允许匿名用户建立目录
anon_other_write_enable=NO					#开放其他人写入权限
chroot_local_user=YES						#把用户禁锢在家目录
guest_enable=YES						#启动来宾用户
guest_username=virtual						#来宾默认使用的用户
listen=YES							#允许被侦听
listen_port=21							#侦听21端口
pam_service_name=vsftpd.pam					#ftp采用pam默认用户名密码验证
user_config_dir=/etc/vsftpd_user_conf				#指定虚拟用户配置文件保存位置
user_sub_token=$USER						#映射用户变量

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

8.创建对应文件(用于保存权限文件).

代码语言:javascript
复制
[root@localhost ~]# mkdir /etc/vsftpd_user_conf
[root@localhost ~]# mkdir -p /home/ftp/lyshark

9.编辑文件给指定用户分配权限,用匿名用户权限分配.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd_user_conf/lyshark

local_root=/home/ftp/$USER
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=YES

#	allow_writeable_chroot=YES	  	#可在公共目录下创建文件

10.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

OpenSSL+FTP 加密传输

1.查看是否安装OpenSSL包.

代码语言:javascript
复制
[root@localhost ~]# rpm -q openssl

2.生成SSL加密密钥对.

代码语言:javascript
复制
[root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

[参数说明]
		req 		#标注格式
		-new 		#创建一个新的证书
		-x509		#证书内容格式
		-nodes 		#不使用密码
		-out		#生成文件名
		-keyout		#生成的秘钥文件名

#创建时依次填写:国家、省份、城市、组织、部门、个人或主机名、邮箱

3.把生成的证书放入特定目录下,并给予最低权限,保证安全.

代码语言:javascript
复制
[root@localhost ~]# cp -a vsftpd.pem /etc/ssl/certs/
[root@localhost ~]# chmod 500 /etc/ssl/certs/

4.在VSFTP主配置中文件加入以下参数.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

ssl_enable=YES							#启用ssl认证
ssl_tlsv1=YES
ssl_sslv2=YES							#开启tlsv1、sslv2、sslv3都支持
ssl_sslv3=YES
allow_anon_ssl=YES						#允许匿名用户
force_anon_logins_ssl=YES
force_anon_data_ssl=YES						#匿名登录和传输时强制使用ssl
force_local_logins_ssl=YES
force_local_data_ssl=YES					#本地登录和传输时强制使用ssl
rsa_cert_file=/etc/ssl/certs/vsftpd.pem				#证书文件所在目录

#[打开vim,输入正则 去掉警号:%s/#.*$//g 去掉空格:%s/\s//g]

5.启动FTP服务,并设置开机自动启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

Samba 文件共享

smb: 实现资源共享、权限验证 -> TCP 139 445 nmb: 实现计算机名解析 -> UDP 137

  • Samba和FTP的区别
  • Samba可以实现跨平台的文件传输,并且支持在线修改,这一点是它和FTP服务器的明显区别.
  • Linux 系统之间的资源共享,我们使用的是NFS协议.
  • Windows 系统之间的资源共享,我们使用的是NetBIOS协议.
  • Linux 和 Windows 之间资源共享我们就要使用SMB协议了.CIFS协议.

匿名验证Samba配置

匿名Samba的主要作用是,在局域网内编辑共享文件,比如你有一个word文件需要让大家填写,此时我们就可以使用Samb服务将Word文档匿名分享出去,让大家填写文档

◆配置服务端◆

1.首先通过yum,来安装samba服务程序,恰巧samba服务名也是samba

代码语言:javascript
复制
[root@localhost ~]# yum install -y samba samba-client
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package samba-4.7.1-6.el7.x86_64 already installed and latest version
Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version
Nothing to do

2.然后创建一个共享目录,这个目录主要用来存储一些文件,后期要共享出去

代码语言:javascript
复制
[root@localhost ~]# mkdir /smb_file
[root@localhost ~]#
[root@localhost ~]# chmod 755 -R /smb_file/
[root@localhost ~]#

3.编辑Samba主配置文件,在配置文件最下面创建匿名共享区域,如果有多个匿名区域可以继续往下写配置

代码语言:javascript
复制
[root@localhost ~]# vim /etc/samba/smb.conf

  6 [global]
  7         workgroup = SAMBA
  8         security = user
  9         map to guest=Bad User   #添加此项,开启免密码认证

 .....
 38
 39 [smb_file]                       #共享目录显示的名称
 40         comment=hello guest      #描述信息(可以自定义)
 41         path=/smb_file           #共享的目录
 42         browseable=yes           #共享目录是否对所有人可见
 43         guest ok=yes             #允许匿名用户访问
 44         writable=yes             #匿名用户可写
 45         public=yes               #所有人可见

4.重启SMB服务,并设置开机自启动

代码语言:javascript
复制
[root@localhost ~]# systemctl restart smb
[root@localhost ~]# systemctl enable smb

◆配置Linux客户端◆

1.首先想要使用Samba资源,需要在Linxu客户端安装一个Samba的客户端工具,下面就开始安装吧

代码语言:javascript
复制
[root@localhost ~]# yum install -y samba-client
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version
Nothing to do

2.匿名用户访问,我们可以直接使用下面的命令无需输入密码直接扫描资源,并使用

代码语言:javascript
复制
[root@localhost ~]# smbclient -L //服务器IP	             #查看smaba共享目录

Enter SAMBA root s password:

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        smb_file        Disk      hello guest
        IPC$            IPC       IPC Service (Samba 4.7.1)
Reconnecting with SMB1 for workgroup listing.

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

[root@localhost ~]# smbclient //服务器IP/共享名			#查看共享文件

Enter SAMBA root s password:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                  DR        0  Mon Nov  5 04:53:30 2018
  ..                                 DR        0  Mon Nov  5 04:45:11 2018
                17811456 blocks of size 1024. 16582792 blocks available
smb: \>

◆配置Windows客户端◆

代码语言:javascript
复制
运行CMD(Win+R) > 输入:\\服务器IP\	共享资源名			#访问目录
C:\Users\LyShark>net use * /del               #清理windows目录缓存
你有以下的远程连接:

                    \\192.168.1.20\smb_file
继续运行会取消连接。
你想继续此操作吗? (Y/N) [N]: y
命令成功完成。

密码验证Samba配置

基于密码验证的Samba的常用作用是,在局域网内,实现加密访问,只有知道相应密码的人才能访问指定资源

◆配置服务端◆

1.首先通过yum,来安装samba服务程序,恰巧samba服务名也是samba

代码语言:javascript
复制
[root@localhost ~]# yum install -y samba samba-client
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package samba-4.7.1-6.el7.x86_64 already installed and latest version
Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version
Nothing to do

2.然后创建一个共享目录,这个目录主要用来存储一些文件,后期要共享出去

代码语言:javascript
复制
[root@localhost ~]# mkdir /smb_file
[root@localhost ~]#
[root@localhost ~]# chmod 755 -R /smb_file/
[root@localhost ~]#

3.编辑Samba主配置文件,在配置文件最下面创建共享区域,如果有多个区域可以继续往下写配置

代码语言:javascript
复制
[root@localhost ~]# vim /etc/samba/smb.conf

 39 [smb_file]                       #共享目录显示的名称
 40         comment=hello admin      #描述信息(可以自定义)
 41         path=/smb_file           #共享的目录
 42         browseable=yes           #共享目录是否对所有人可见
 43         guest ok=no              #允许匿名用户访问
 44         writable=yes             #可写

4.通过命令管理,创建一个系统用户,并转换为Samba用户

代码语言:javascript
复制
[root@localhost ~]# useradd -M -s /sbin/nologin admin      #创建一个系统用户
[root@localhost ~]# smbpasswd -a admin                     #将系统用户转化成Samba用户
-----------------------------------------------------------------
[参数说明]

smbpasswd [选项] 账户名称

  -a        #添加账户并设置密码
  -x        #删除SMB账户
  -d        #禁用SMB账户
  -e        #启用SMB账户
-----------------------------------------------------------------

[root@localhost ~]# useradd -M -s /sbin/nologin guest      #创建一个系统用户
[root@localhost ~]# pdbedit -a guest                       #将系统用户转化成Samba用户
new password:
retype new password:
Unix username:        guest
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-2500030998-3215874083-1041928306-1001
Primary Group SID:    S-1-5-21-2500030998-3215874083-1041928306-513
Full Name:
Home Directory:       \\localhost\guest
HomeDir Drive:
Logon Script:
Profile Path:         \\localhost\guest\profile
Domain:               LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 10:06:39 EST
Kickoff time:         Wed, 06 Feb 2036 10:06:39 EST
Password last set:    Mon, 05 Nov 2018 06:23:37 EST
Password can change:  Mon, 05 Nov 2018 06:23:37 EST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


[root@localhost ~]# pdbedit -L                             #列出所有Samba用户
admin:1001:
guest:1002:

5.重启SMB服务,并设置开机自启动

代码语言:javascript
复制
[root@localhost ~]# systemctl restart smb
[root@localhost ~]# systemctl enable smb

◆配置Linux客户端◆

1.首先想要使用Samba资源,需要在Linxu客户端安装一个Samba的客户端工具,下面就开始安装吧

代码语言:javascript
复制
[root@localhost ~]# yum install -y samba-client
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version
Nothing to do

2.用户访问,我们可以直接使用下面的命令输入密码扫描资源,并使用

代码语言:javascript
复制
[root@localhost ~]# smbclient -U 用户名 -L //服务器IP               #查看共享目录
Enter SAMBA dmin s password:

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        smb_file        Disk      hello admin
        IPC$            IPC       IPC Service (Samba 4.7.1)
        admin           Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

[root@localhost ~]# smbclient -U 用户名 //服务器IP/共享文件名      #查看共享文件
Enter SAMBA dmins password:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Mon Nov  5 06:30:02 2018
  ..                                 DR        0  Mon Nov  5 06:17:37 2018
  lyshark                             N      988  Mon Nov  5 06:23:28 2018

                17811456 blocks of size 1024. 16584148 blocks available

◆Linux挂载Samba◆

1.将远程的smb_file共享目录,挂载到本地的/mnt下,我们可以执行以下命令

代码语言:javascript
复制
[文件格式]  [/smb_file共享目录][挂载到/mnt] [username=smb用户名][password=smb密码]

[root@localhost ~]# mount -t cifs //192.168.1.20/smb_file /mnt -o username=admin,password=123123
[root@localhost ~]#
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root     17G  1.2G   16G   7% /
//192.168.1.20/smb_file   17G  1.2G   16G   7% /mnt

NFS 实现文件共享

NFS 即网络文件系统,是一种使用于分布式文件系统的协议,NFS 功能是通过网络让不同的机器,不同的操作系统能够彼此分享各自的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法.

  • 目前NFS有三个版本,其常用的版本解析
  • NFSv2:是一个古老的版本,但却被众多的操作系统所支持,这样兼容性更好.
  • NFSv3:拥有更多的特点,包括更快的速度,更大的单个文件大小,对TCP的支持.
  • NFSv4:提供有状态连接,共容易追踪,安全性增强,RHEL7上默认4版本协议.

在启动NFS Server之前,首先要启动RPC服务否则NFS Server就无法向RPC服务区注册,另外如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失.因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册.

  • NFS系统的守护进程介绍
  • RPC:(Remote Procedure Call Protocol),远程过程调用协议
  • NFS:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
  • RPCbind:主要功能是进行端口映射工作,和端口代理分配等

客户端NFS和服务端NFS通讯过程

  • 首先服务器端启动RPC服务,并开启111端口
  • 启动NFS服务,并向RPC注册端口信息
  • 客户端启动RPC,向服务端的RPC服务请求服务端的NFS端口
  • 服务端的RPC服务,反馈NFS端口信息给客户端
  • 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

NFS服务器是通过读取/etc/exports配置文件设定那个客户端可以访问那些NFS共享文件系统,该文件书写原则有如下几条.

  • 空白行的内容将被忽略
  • 以#号开头的内容是注释
  • 可以通过\转义字符换行
  • 每个共享文件系统需要独立一行条目
  • 客户端的主机列表需要使用空格隔开

接下来我们来看一下一条完整的规则条目是如何书写的吧,需要注意的是客户端主机可以是一个网段,单台主机或者是主机名称,在使用时应该灵活运用.

代码语言:javascript
复制
[共享目录]	[允许谁来访问][权限]	[可用主机名][权限]	[其他主机权限]

/nfs		192.168.1.1(rw)		localhost(rw)		*(ro,sync)
/nfs		192.168.1.0/24(rw)	localhost(rw)		*(ro,sync)
/nfs		192.168.1.1(rw) 192.168.1.2(ro) 192.168.1.3(ro,sync)

如上所示,有个权限列表,NFS配置中可以给一个共享路径指定相关权限,NFS的默认属性为ro,sync,wdelay,root_squash,具体的NFS属性列表,我们可以参考一下列表.

NFS权限选项

功能描述信息

ro

以只读方式共享

rw

以读写方式共享

sync

同步写入磁盘

async

异步写入磁盘

wdelay

延迟写入操作

root_squash

屏蔽远程root权限

no_root_squash

不屏蔽远程root权限

all_squash

屏蔽所有远程用户权限

以上的几个说明信息,是我们最常用的几个,当然还有很多这样的配置选项,这里就不依次列举了,更多内容请百度了解.

NFS 服务端配置

1.在配置NFS共享文件之前,我们先来放行NFS的几个常用服务,并将防火墙默认设置为拒绝状态.

代码语言:javascript
复制
[root@localhost ~]# firewall-cmd --add-service=nfs
[root@localhost ~]# firewall-cmd --add-service=mountd
[root@localhost ~]# firewall-cmd --add-service=rpc-bind
[root@localhost ~]# firewall-cmd --add-service=nfs --permanent
[root@localhost ~]# firewall-cmd --add-service=mountd --permanent
[root@localhost ~]# firewall-cmd --add-service=rpc-bind --permanent

2.通过YUM仓库快速安装NFS相关的软件包.

代码语言:javascript
复制
[root@localhost ~]# yum install -y rpcbind nfs-utils*

Package rpcbind-0.2.0-47.el7.x86_64 already installed and latest version
Package 1:nfs-utils-1.3.0-0.61.el7.x86_64 already installed and latest version
Nothing to do

3.创建需要共享的文件,并拷贝相关的文件内容,并设置SeLinux规则.

代码语言:javascript
复制
[root@localhost ~]# mkdir -p /public
[root@localhost ~]# chmod o+rw /public/
[root@localhost ~]# chcon -R -t public_content_t /public/

4.修改NFS主配置文件,并写入要访问的主机列表.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/exports

/public 192.168.1.0/24(rw,sync)
#-----------------------------------------------------------------
# 其他完整写法,可参考以下配置方式
#[共享目录]	[允许谁来访问][权限]	[可用主机名][权限]	[其他主机权限]
#/nfs		192.168.1.1(rw)		localhost(rw)		*(ro,sync)
#/nfs		192.168.1.0/24(rw)	localhost(rw)		*(ro,sync)

5.重启NFS服务,和守护进程,并设置开机自启动.

代码语言:javascript
复制
[root@localhost ~]# systemctl restart nfs
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# systemctl enable nfs-server

NFS 客户端配置

1.通过YUM仓库快速安装NFS相关的软件包.

代码语言:javascript
复制
[root@localhost ~]# yum install -y rpcbind nfs-utils*

Package rpcbind-0.2.0-47.el7.x86_64 already installed and latest version
Package 1:nfs-utils-1.3.0-0.61.el7.x86_64 already installed and latest version
Nothing to do

2.创建挂载点,并设置SeLinux规则.

代码语言:javascript
复制
[root@localhost ~]# mkdir -p /mnt/nfsmount
[root@localhost ~]# chcon -R -t public_content_t /mnt/nfsmount

NFS挂载演示: 手动挂载目录,可通过mount命令来实现,具体的挂载参数如下.

代码语言:javascript
复制
#mount -t nfs -o 选项 服务主机:/服务器共享目录  /本地挂载没记录

[root@localhost ~]# mount -t nfs -o rw,sync 192.168.1.5:/public /mnt/nfsmount
[root@localhost ~]# df -hT |grep "public"

Filesystem              Type      Size  Used Avail Use% Mounted on
192.168.1.5:/public     nfs4       17G  1.9G   16G  12% /mnt/nfsmount

具体的挂载详细参数如下: ● Intr:当服务器宕机时终端NFS请求 ● nfsvers=4:指定使用那个版本的协议 ● noacl:关闭ACL,仅与老版本兼容 ● nolock:关闭文件锁机制 ● noexec:挂载时屏蔽二进制程序 ● port=num:指定NFS服务器端口号 ● rsize=num:设置最大数据块大小(读取) ● wsize=num:设置最大数据块大小(写入) ● tcp:使用TCP协议挂载 ● udp:使用UDP协议挂载

nfsstat命令: NFS提供了查看NFS共享状态功能.

代码语言:javascript
复制
[root@localhost ~]# nfsstat        #显示服务端与客户端状态
[root@localhost ~]# nfsstat -s     #只显示服务端状态
[root@localhost ~]# nfsstat -c     #只显示客户端状态
[root@localhost ~]# nfsstat -n     #仅显示NFS与RPC信息
[root@localhost ~]# nfsstat -m     #显示挂载信息
[root@localhost ~]# nfsstat -l     #以列表信息显示信息

rpcinfo命令: NFS生成RPC信息报表功能.

代码语言:javascript
复制
[root@localhost ~]# rpcinfo -m 127.0.0.1   #显示指定主机rpcbind操作列表
[root@localhost ~]# rpcinfo -p 127.0.0.1   #显示指定主机RPC注册信息 
[root@localhost ~]# rpcinfo -s             #显示所有RPC注册信息

showmount命令: NFS使用shomount命令可以查看远程主机共享列表.

代码语言:javascript
复制
[root@localhost ~]# showmount -e 127.0.0.1  #显示服务器可用资源
[root@localhost ~]# showmount -a 127.0.0.1  #查看所有客户链接信息
[root@localhost ~]# showmount -d 127.0.0.1  #只显示客户输出信息

exportfs命令: 此命令允许root在不重启NFS服务情况下,选择共享或取消共享文件.

代码语言:javascript
复制
[root@localhost ~]# exportfs -a   #全部挂载或卸载配置文件中的内容
[root@localhost ~]# exportfs -r   #重新加载配置文件中的信息
[root@localhost ~]# exportfs -u   #停止单一目录的共享
[root@localhost ~]# exportfs -au  #停止所有服务端的共享
[root@localhost ~]# exportfs -ra  #重新共享所有目录

配置固定端口: 我们可以修改配置文件来实现配置固定的共享端口号.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/sysconfig/nfs

RQUOTAD_PORT=5001               
LOCKD_TCPPORT=5002            #设置tcp的ockd程序端口号
LOCKD_UDPPORT=5002            #设置udp的lockd程序端口号
MOUNTD_PORT=5003              #设置mountd程序端口号
STATD_PORT=5004               #设置rpc.statd程序端口号

设置自动挂载: 修改自动挂载目录,写入以下内容即可实现自动挂载.

代码语言:javascript
复制
[root@localhost ~]# vim /etc/fstab

192.168.1.1:/public /mnt/nfsmount  nfs  default  0 0

iSCSI 磁盘共享服务

iSCSI技术是一种新储存技术, iSCSI 提供了在 IP 网络封装 SCSI 命令,且以TCP/IP协议传输.

配置iSCSI服务端

1.通过yum安装iSCSI服务端,此处已安装成功,略过本步骤

代码语言:javascript
复制
[root@localhost ~]# yum install -y targetd targetcli
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager.
Package targetd-0.8.6-1.el7.noarch already installed and latest version
Package targetcli-2.1.fb46-1.el7.noarch already installed and latest version
Nothing to do

2.安装成功后,手动启动iSCSI服务,并设置开机自启动 (注意:iSCSI服务程序为targetd)

代码语言:javascript
复制
[root@localhost ~]# systemctl restart targetd
[root@localhost ~]# systemctl enable targetd

3.查看iSCSI服务端共享资源,targetcli是用于管理iSCSI服务的专用命令,在执行命令是可看到交互界面.

代码语言:javascript
复制
[root@localhost ~]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> ls
o- / .................................................................... [...]
  o- backstores ......................................................... [...]
  | o- block ............................................................ [Storage Objects: 0]
  | o- fileio ........................................................... [Storage Objects: 0]
  | o- pscsi ............................................................ [Storage Objects: 0]
  | o- ramdisk .......................................................... [Storage Objects: 0]
  o- iscsi .............................................................. [Targets: 0]
  o- loopback ........................................................... [Targets: 0]
/>

4.进入/backstores/block共享设备位置,并创建共享设备名称 (注意:/backstores/block是iSCSI服务端配置共享设备的位置)

代码语言:javascript
复制
/> cd backstores/block                                   #进入共享设备位置
/backstores/block> create disk0 /dev/sdb                 #创建共享设备名称 此处将 /dev/sdb 加入到设备中命名为disk0
Created block storage object disk0 using /dev/sdb.
/backstores/block> cd /                                  #返回根
/> ls
o- / ............................................................. [...]
  o- backstores .................................................. [...]
  | o- block ..................................................... [Storage Objects: 1]
  | | o- disk0 ................................................... [/dev/sdb (20.0GiB) write-thru deactivated]
  | |   o- alua .................................................. [ALUA Groups: 1]
  | |     o- default_tg_pt_gp .................................... [ALUA state: Active/optimized]
  | o- fileio .................................................... [Storage Objects: 0]
  | o- pscsi ..................................................... [Storage Objects: 0]
  | o- ramdisk ................................................... [Storage Objects: 0]
  o- iscsi ....................................................... [Targets: 0]
  o- loopback .................................................... [Targets: 0]
/>

5.创建iSCSI target名称及配置共享资源,iSCSI target 名称是由系统自动生成的,这是一串用于描述共享资源的唯一字符串

代码语言:javascript
复制
/> cd iscsi                                                                 #进入iSCSI目录
/iscsi> create                                                              #创建target标签
Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi>
/iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/     #进入上面的标签中
/iscsi/iqn.20....8c7dcc63aea8> ls                                           #查看标签内容
o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ........ [TPGs: 1]
  o- tpg1 ............................................................. [no-gen-acls, no-auth]
    o- acls ........................................................... [ACLs: 0]
    o- luns ........................................................... [LUNs: 0]
    o- portals ........................................................ [Portals: 1]
      o- 0.0.0.0:3260 ................................................. [OK]
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/luns                                 #进入tpg目录
/iscsi/iqn.20...ea8/tpg1/luns> create /backstores/block/disk0               #标签与设备绑定
Created LUN 0.

6.配置访问控制列表(ACL),iSCSI设备无需密码进行验证,只需知道标签名称即可通过,因此需要在iSCSI服务端的配置文件中写入一串能够验证信息的名称,这里推荐在系统生成的标签后面加上标识符,:client参数,保证标签唯一性,同时方便区别和管理

代码语言:javascript
复制
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8     #进入指定标签
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/acls                                 #进入ACL配置列表

/iscsi/iqn.20...ea8/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client  #创建用于挂载的标签
Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client
Created mapped LUN 0.
/iscsi/iqn.20...ea8/tpg1/acls>

7.设置iSCSI服务器的监听IP地址和端口号,即在portals参数目录中写上服务器的IP地址,接下来系统会自动开启服务器192.168.1.20的3260号端口,为外部提供共享存储服务

代码语言:javascript
复制
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/   #进入操作的标签
/iscsi/iqn.20....8c7dcc63aea8> cd tpg1/portals/                             #进入端口配置
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ...................................................................... [Portals: 1]
  o- 0.0.0.0:3260 ............................................................... [OK]
/iscsi/iqn.20.../tpg1/portals>
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260                          #删除原有配置
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.1.20                          #创建侦听本机
Using default IP port 3260
Created network portal 192.168.1.20:3260.
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ...................................................................... [Portals: 1]
  o- 192.168.1.20:3260 .......................................................... [OK]
/iscsi/iqn.20.../tpg1/portals>

8.配置全部妥当后检查一下,没问题的话保存.

代码语言:javascript
复制
/iscsi/iqn.20.../tpg1/portals> cd /
/>
/> ls
o- / ................................................................... [...]
  o- backstores ........................................................ [...]
  | o- block ........................................................... [Storage Objects: 1]
  | | o- disk0 ......................................................... [/dev/sdb (20.0GiB) write-thru activated]   #磁盘名称
  | |   o- alua ........................................................ [ALUA Groups: 1]
  | |     o- default_tg_pt_gp .......................................... [ALUA state: Active/optimized]
  | o- fileio .......................................................... [Storage Objects: 0]
  | o- pscsi ........................................................... [Storage Objects: 0]
  | o- ramdisk ......................................................... [Storage Objects: 0]
  o- iscsi ............................................................. [Targets: 1]
  | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ..... [TPGs: 1]                                  #标签名称
  |   o- tpg1 .......................................................... [no-gen-acls, no-auth]
  |     o- acls ......................................................................... [ACLs: 1]
  |     | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client ......... [Mapped LUNs: 1]          #自定义标签
  |     |   o- mapped_lun0 .............................................................. [lun0 block/disk0 (rw)]
  |     o- luns ......................................................................... [LUNs: 1]
  |     | o- lun0 ..................................................... [block/disk0 (/dev/sdb) (default_tg_pt_gp)]
  |     o- portals ...................................................................... [Portals: 1]
  |       o- 192.168.1.20:3260 .......................................................... [OK]                      #开启端口
  o- loopback ........................................................................... [Targets: 0]
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
[root@localhost ~]#

9.重启SCSI服务,到此服务器已经配置完毕

代码语言:javascript
复制
[root@localhost ~]# systemctl restart targetd
[root@localhost ~]# systemctl enable targetd

配置Linux客户端

1.安装iSCSI客户端组件,在RHEL7系统中已经默认集成,如果没有请执行以下步骤,此处就略过

代码语言:javascript
复制
[root@localhost ~]# yum install -y iscsi-initiator-utils iscsi-initiator-utils-iscsiuio
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager .
Package iscsi-initiator-utils-6.2.0.874-7.el7.x86_64 already installed and latest version
Package iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64 already installed and latest version
Nothing to do

2.编辑iSCSI客户端中的initiator名称文件,把服务端的访问控制列表名称填写进来,然后重启iscsid服务程序,并将其加入到开机自启动列表

代码语言:javascript
复制
[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
[root@localhost ~]#
[root@localhost ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client

[root@localhost ~]# systemctl restart iscsid
[root@localhost ~]# systemctl enable iscsid

3.发现iSCSI服务端存储资源,其中:-m discovery 参数的目的是扫描并发现存储资源,-t st 参数为执行扫描操作的类型,-p 参数后为iSCSI服务端的IP地址

代码语言:javascript
复制
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.1.20            #下图显示,找到一个标签地址

192.168.1.20:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8
[root@localhost ~]#

4.接下来准备登陆iSCSI服务器,其中:-m node 参数为将客户端主机作为一台节点服务器,-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 参数为要使用的存储标签,-p 后面为iSCSI服务器的IP地址, --login 参数为登陆服务器,如果加 -u参数为卸载挂载资源

代码语言:javascript
复制
[root@localhost ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 -p 192.168.1.20 --login

Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] successful.

5.此时在iSCSI客户端上会多出一个/dev/sdb磁盘设备文件,接下来我们直接格式化挂在到/network-disk目录下

代码语言:javascript
复制
root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Nov  4 11:45 /dev/sda
brw-rw----. 1 root disk 8,  1 Nov  4 11:45 /dev/sda1
brw-rw----. 1 root disk 8,  2 Nov  4 11:45 /dev/sda2
brw-rw----. 1 root disk 8, 16 Nov  4 12:06 /dev/sdb          #此处就是远程的磁盘

[root@localhost ~]# mkfs.xfs /dev/sdb                        #格式化这个设备

meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@localhost ~]# mkdir /network-disk                     #创建挂载目录
[root@localhost ~]# mount /dev/sdb /network-disk/           #挂载设备
[root@localhost ~]#
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  1.2G   16G   7% /
devtmpfs                98M     0   98M   0% /dev
tmpfs                  110M     0  110M   0% /dev/shm
/dev/sda1             1014M  130M  885M  13% /boot
/dev/sr0               4.4G  4.4G     0 100% /mnt
/dev/sdb                20G   33M   20G   1% /network-disk

iSCSI客户端经过以上步骤之后,这个设备文件就可以像使用本地磁盘文件一样的操作啦

6.接下来配置一下自动挂载功能,需要注意的是,挂载选项必须为_netdev,写错的话系统无法开机.

由于/dev/sdb/是一个网络设备,而iSCSI是基于TCP/IP网络传输数据的,因此在配置自动挂载是应该加入_netdev参数,说明其是一个网络设备

代码语言:javascript
复制
[root@localhost /]# ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 10 Nov  4 11:45 12b3708e-7ca4-4911-bfa2-57b85960e8e5 -> ../../dm-0
lrwxrwxrwx. 1 root root  9 Nov  4 11:45 2018-03-22-19-04-59-00 -> ../../sr0
lrwxrwxrwx. 1 root root 10 Nov  4 11:45 3d4eea6b-1db9-4d30-9174-bfac6faa4cab -> ../../sda1
lrwxrwxrwx. 1 root root 10 Nov  4 11:45 e791c0bf-f6e9-4843-b18d-be40cf3964c2 -> ../../dm-1
lrwxrwxrwx. 1 root root  9 Nov  4 12:08 ff233cc4-2255-4973-a686-9d394384faf6 -> ../../sdb

[root@localhost /]# vim /etc/fstab
[root@localhost /]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Oct 13 12:32:13 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=3d4eea6b-1db9-4d30-9174-bfac6faa4cab /boot                   xfs     defaults        0 0
UUID=ff233cc4-2255-4973-a686-9d394384faf6  /network-disk xfs defaults,_netdev   0 0

[root@localhost /]# mount -a

如需配置Windows客户端只需要执行以下步骤. 1.单击控制面板 --> 管理工具 --> iSCSI发起程序 2.在目标选项卡 --> 输入服务器IP地址 --> 单击快速连接 3.选择配置选项卡 --> 单击更改 --> 在标签末尾加上自定义的字符,此处为:client --> 单击确定 4.单击目标选项卡 --> 单击下方的连接按钮 5.单击此电脑 --> 右键选择管理 --> 选择磁盘管理 --> 即可看到磁盘信息

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • VSFTP 文件传输
    • 配置匿名FTP服务器
      • 配置本地用户FTP服务器
        • 配置匿名与本地混合FTP
          • 配置虚拟用户FTP服务器
            • OpenSSL+FTP 加密传输
            • Samba 文件共享
              • 匿名验证Samba配置
                • 密码验证Samba配置
                • NFS 实现文件共享
                  • NFS 服务端配置
                    • NFS 客户端配置
                    • iSCSI 磁盘共享服务
                      • 配置iSCSI服务端
                        • 配置Linux客户端
                        相关产品与服务
                        文件存储
                        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档