1. 实现共享服务常用的有三种
1.)ftp: 属于应用层服务, 可以跨平台使用(Linux<-->unix<-->Windows)
2.)Nfs: 属于内核模式, 不可以跨平台(Linux<-->Linux)
3.)samba: 可以跨平台使用(Linux<-->unix<-->Windows)
2. 实现存储设备域服务器连接的方式有三种
1.)DAS: 连接的磁盘.
2.)NAS: 通过 nfs/cifs 协议实现网络文件共享 (文件存储方式) 电子邮件, 网页服务器多媒体流服务, 档案分享等就适用以 NAS 存储架构.
3.)SAS: 通过网线或光纤实现 ISCSI 和 FCSAN 将物理存储设备连接起来使用 (块存储方式比较底层, 需要格式化并挂载当本地磁盘使用) 数据库有关的应用适用于 SAN 存储架构.
3.FTP
FTP 是 File Transfer Portocol 文件传输协议的缩写, 基于网络来传输文件的应用层协议.
FTP 能够通过网络来传输文件, 主要是因为工作在应用层所以不会受到平台的限制.
FTP(File Transfer Protocol, 文件传输协议) 是 TCP/IP 协议组中的协议之一. FTP 协议包括两个组成部分, 其一为 FTP 服务器, 其二为 FTP 客户端. 其中 FTP 服务器用来存储文件, 用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源. 在开发网站的时候, 通常利用 FTP 协议把网页或程序传到 web 服务器上. 此外, 由于 FTP 传输效率非常高, 在网络上传输大的文件时, 一般也采用该协议.
默认情况下 FTP 协议使用 TCP 端口中的 20 和 21 这两个端口, 其中 20 用于传输数据, 21 用于传输控制信息. 但是, 是否使用 20 作为传输数据的端口与 FTP 使用的传输模式有关, 如果采用主动模式, 那么数据传输端口就是 20; 如果采用被动模式, 则具体最终使用哪个端口要服务器端和客户端协商决定.
4.FTP 传输模式
1FTP 的数据传输分为命令数据与文件数据, 命令传输就是客户端要执行的命令, 服务端收到后返回给客户端执行结果, 如 ls 命令的执行结果一样, 文件传输就是客户端要传输的数据, 服务端与客户端数据连接来传输.
2FTP 的服务端与客户端建立连接大体的三个步骤: 建立连接, 传输数据, 断开连接.(基于 tcp 连接方式)
3FTP 是基于 tcp 协议来传输数据的, 使用 21 号端口来建立认证通道, 20 号端口来建立数据通道.
4FTP 是明文传输的.
5FTP 的用户可分为实体用户(real user), 匿名用户(anonymous user), 访问用户(gurest user).
5.FTP 的工作模式
由于现在的网络架构中, 都会有防火墙来阻止端口与高位端口被主动连接, 特别 20 端口是被禁止主动连接的, 因为 20 端口是 FTP 的数据端口, 所以为了解决客户端或者服务器的防火墙问题, FTP 就有了主动和被动两种模式, 通过墙内的一端来主动连接外端的一方, 这样子就不会被防火墙阻挡了.
1主动模式
一般用于服务端存在防火墙的情况, 客户端无法主动连接至服务器的 20 数据端口, 需要服务端主动连接客户端的高位数据端口.
两端在建立 tcp 通道后, 客户端会发送 port 请求与服务端的 21 号端口认证连接并发送开放用来建立数据连接的高位端口号.
服务端在收到后, 会通过 20 号端口发送 ACK 响应请求.
服务端会通过 20 端口与客户端发送的高位端口建立数据连接通道.
2被动模式
一般用于客户端存在防火墙的情况, 服务端在收到连接请求后因为客户端防火墙而无法达到客户端的高位端口, 需要客户端主动连接至服务端的数据传输端口.
两端在建立 TCP 通信通道连接后, 客户端会发送 PASV 请求给服务端.
服务端在收到 PASV 请求后, 会打开一个高位端口作为数据传输端口来响应给客户端, 等待客户端连接.
客户端在收到响应后, 就会去连接服务端响应的高位端口建立数据连接通道.
3图解
6.FTP 用户的类型
1匿名用户
anonymous 或 ftp
2本地用户
账户名称, 密码等信息保存在 passwd,shadow 文件中
3虚拟用户
使用独立的账号 / 密码数据文件
举例: user_list wangwu 123456 /var/pub
7.VSFTPD
vsftpd 是基于 ftp 协议来对网络数据交换的一种实现, 是一个开源的解决方案.
1.)VSftpd 软件包
1官方站点: http://vsftpd.beasts.org/(貌似被封了)
2主程序:/usr/sbin/vsftpd
3服务名: vsftpd
4用户控制列表文件
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list
5主配置文件
/etc/vsftpd/vsftpd.conf
2.)vsftpd 基础服务搭建(这里以 NFS 服务器做测试)
- [root@NFS ~]# cat /etc/RedHat-release
- CentOS release 6.8 (Final)
- [root@NFS ~]# setenforce 0 #关闭 selinux
- setenforce: SELinux is disabled
- [root@NFS ~]# /etc/init.d/iptables status #关闭防火墙
- iptables: Firewall is not running.
- [root@NFS ~]# yum install vsftpd -y
- [root@NFS ~]# rpm -qa vsftpd
- vsftpd-2.2.2-24.el6.x86_64
- [root@NFS ~]# rpm -ql vsftpd
- /etc/logrotate.d/vsftpd
- /etc/pam.d/vsftpd #pam 认证文件
- /etc/rc.d/init.d/vsftpd #服务启动进程
- /etc/vsftpd
- /etc/vsftpd/ftpusers #限制登陆文件
- /etc/vsftpd/user_list
- /etc/vsftpd/vsftpd.conf #主配置文件
- /etc/vsftpd/vsftpd_conf_migrate.sh
- /usr/sbin/vsftpd #程序文件
- ......
- /var/ftp #ftp 家目录
- /var/ftp/pub
- [root@NFS ~]#
配置文件参数说明
- anonymous_enable=YES # 是否允许匿名用户连接服务器端.
- local_enable=YES # 是否允许系统用户连接服务器端.
- write_enable=YES # 是否允许本地系统用户上传文件.
- #anon_upload_enable=YES # 是否允许匿名用户上传文件(默认不允许).
- #anon_mkdir_write_enable=YES # 是否允许匿名用户创建目录(默认不允许).
- #anon_other_write_enable=YES # 匿名用户其他的写权限(删除文件权限).
- dirmessage_enable=YES # 进入某个目录是否显示欢迎信息.
- xferlog_enable=YES # 是否打开传输日志.
- #xferlog_file=/var/log/xferlog # 传输日志存放路径(默认没有启用).
- xferlog_std_format=YES # 日志格式是否为标准格式的参数.(没必要, 用于日志分析)
- #chown_uploads=YES # 用户上传文件后是否将其属主改为其他用户.
- #chown_username=whoever # 用户上传完成后将属主改为的用户名.
- #idle_session_timeout=600 # 超时参数, 默认会话超过 600 秒断开用户连接(控制连接相关).
- #data_connection_timeout=120 # 数据连接相关超时参数.
- #ascii_upload_enable=YES # 是否使用文本格式上传文件.
- #ascii_download_enable=YES # 是否使用文本格式下载文件.
提示: 除非只传文本格式数据, 否则上面两个 ascli 参数需要注释掉, 避免二进制数据被转换为文本格式.
- #chroot_local_user=YES # 是否让所有用户禁锢在家目录(如果想选择用户用下面两个参数).
- #chroot_list_enable=YES # 是否定义用一个文件将特定用户所在它的家目录下.
- #chroot_list_file=/etc/vsftpd/chroot_list # 指定创建用户列表文件的路径(所有该文件目录都将被禁锢在用户的家目录中), 该文件默认不存在, 需要手动创建.
- listen=YES # 表示 vsftpd 是否工作为一个独立的守护进程.
- pam_service_name=vsftpd # 定义 pam 配置文件的名字.
- userlist_enable=YES # 是否开启禁止访问 FTP 的用户列表功能.
来源: http://www.bubuko.com/infodetail-2867817.html