網路檔案共享服務
儲存型別
- 直連式儲存:Direct-Attached Storage,簡稱DAS
- 網路附加儲存:Network-Attached Storage,簡稱NAS(儲存和管理空間都在遠端)
- 儲存區域網路:Storage Area Network,簡稱SAN(可以使用空間,管理也是你來管理)
DAS
DAS儲存是最常見的一種儲存方式,尤其是在中小企業應用中。PC中的硬碟或只有一個外部SCSI介面的JBOD都屬於DAS架構。DAS是指儲存裝置直接連線到伺服器匯流排上,儲存裝置只與一臺獨立的主機連線,其他主機不能使用這個儲存裝置。DAS儲存裝置與伺服器主機之間的連線通道通常採用SCSI連線,DAS儲存裝置主要是磁碟陣列(RAID: Redundant Arrays of Independent Disks)、磁碟簇JBOD:Just a Bunch Of Disks)等。
NAS
NAS儲存就是儲存裝置透過標準的網路拓撲結構(比如乙太網)新增到一群計算機上。與DAS以及SAN不同,NAS是檔案級的儲存方法。採用NAS較多的功能是用來進行檔案共享。NAS儲存也通常被稱為附加儲存,顧名思義,就是儲存裝置透過標準的網路拓撲結構(例如乙太網)新增到一群計算機上。NAS是檔案級的儲存方法,它的重點在於幫助工作組和部門級機構解決迅速增加儲存容量的需求。
SAN
儲存區域網路,這個是透過光纖通道或乙太網交換機連線儲存陣列和伺服器主機,最後成為一個專用的儲存網路。
FTP
FTP工作原理
FTP(檔案傳輸協議)的工作原理基於客戶端-伺服器架構。具體來說:
1.連線建立:
FTP客戶端與伺服器之間建立兩條連線:控制連線和資料連線。控制連線用於傳輸控制資訊(如命令和響應),而資料連線用於檔案資料的傳輸。
2.認證過程:
客戶端發起連線請求時,伺服器會要求輸入使用者名稱和密碼進行認證。如果是公開的FTP服務,通常會使用"anonymous"作為使用者名稱,使用者的電子郵件地址作為密碼。
3.檔案傳輸:
認證成功後,客戶端可以傳送檔案上傳或下載的請求。伺服器響應這些請求,並開始檔案的傳輸。
4.資料傳輸:
在資料傳輸階段,客戶端告訴伺服器準備接收檔案的大小和開始接收的指令。伺服器根據這些指令傳送檔案資料。客戶端接收並儲存這些資料,直到傳輸完成。
5.連線關閉:
資料傳輸完成後,客戶端和伺服器都會關閉各自的連線。
6.可靠性:
FTP使用TCP協議進行資料傳輸,確保了資料傳輸的可靠性。TCP透過三次握手建立連線,並透過確認和重傳機制保證資料的完整性。
7.檔案型別:
FTP支援傳輸多種型別的檔案,包括文字、二進位制、影像、聲音、資料壓縮檔案等。
8.匿名服務:
匿名FTP服務允許使用者無需登入即可訪問公開資源。這種服務通常使用"anonymous"作為使用者名稱,使用者的電子郵件地址作為密碼。
FTP工作模式
主動模式
控制連線:客戶端透過TCP埠21與伺服器建立控制連線,用於傳輸FTP協議的控制信令。
資料連線:伺服器主動開啟TCP埠20,並與客戶端的隨機埠建立資料傳輸通道。資料連線建立後,通常也由伺服器主動關閉。
被動模式
控制連線:與主動模式相同,客戶端透過TCP埠21與伺服器建立控制連線。
資料連線:伺服器選擇一個臨時埠,並告知客戶端。客戶端隨後與該臨時埠建立資料傳輸通道。在整個過程中,伺服器總是被動接收客戶端的資料連線。
常見 FTP 相關軟體
FTP伺服器端軟體:
vsftpd:Very Secure FTP Daemon,CentOS 預設FTP伺服器
高速,穩定,下載速度是WU-FTP的兩倍
ftp.redhat.com資料:單機最多可支援15000個併發
vsftpd軟體介紹
vsftpd 是 “very secure FTP daemon” 的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類作業系統上執行的伺服器的名字,它可以執行在諸如 Linux、BSD、Solaris、 HP-UNIX 等系統上面,是一個完全免費的、開發原始碼的 ftp 伺服器軟體,支援很多其他的 FTP 伺服器所不支援的特徵。比如:非常高的安全性需求、頻寬限制、良好的可伸縮性、可建立虛擬使用者、支援 IPv6、速率高等。
vsftpd服務常見配置
安裝服務端
[root@localhost ~]# yum install vsftpd -y
#安裝 ftp 伺服器
[root@localhost ~]# systemctl start vsftpd
#開啟服務
客戶端連線服務端
[root@localhost ~]#ftp 192.168.10.10
# ftp 客戶端 工具 服務端地址
onnected to 192.168.10.10 (192.168.10.10).
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root): anonymous #此處填寫使用者名稱 預設使用 ftp 或者匿名使用者
#預設沒有密碼
530 Permission denied.
Login failed.
ftp>
ftp> help
#可以使用help 檢視幫助
ftp> ls
#可以使用 ls 檢視檔案列表
ftp> get bigfile
#下載大檔案, 後可以 使用 ss -nt 看到又開啟一個通道
服務端:修改 預設命令埠號
[root@node2 pub]#vim /etc/vsftpd/vsftpd.conf
#隨便一行插入
listen_port=2121
[root@node2 pub]#systemctl restart vsftpd
#重啟服務
[root@node2 pub]#ss -ntl
#檢視埠
匿名使用者登入
anonymous_enable=YES 支援匿名使用者,CentOS8 預設不允許匿名
no_anon_password=YES 匿名使用者略過口令檢查 , 預設NO
Linux系統使用者
local_enable=YES 是否允許linux使用者登入
write_enable=YES 允許linux使用者上傳檔案
local_umask=022 指定系統使用者上傳檔案的預設許可權對應umask
禁錮系統使用者
禁錮所有系統使用者在家目錄中
chroot_local_user=YES #禁錮系統使用者,預設NO,即不禁錮
禁錮使用者開啟白名單和黑名單
chroot_list_enable=YES #預設是NO
chroot_list_file=/etc/vsftpd/chroot_list #預設值
當chroot_local_user=YES和chroot_list_enable=YES時,則chroot_list中使用者不禁錮,即白名單
當chroot_local_user=NO和chroot_list_enable=YES時, 則chroot_list中使用者禁錮,即黑名單
NFS
NFS工作原理
NFS:Network File System 網路檔案系統,基於核心的檔案系統。Sun 公司開發,透過使用 NFS,使用者和程式可以像訪問本地檔案一樣訪問遠端系統上的檔案,基於RPC(Remote Procedure Call Protocol 遠端過程呼叫)實現。
RPC採用C/S模式,客戶機請求程式呼叫程序傳送一個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在伺服器端,程序保持睡眠狀態直到呼叫資訊到達為止。當一個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下一個呼叫資訊,最後,客戶端呼叫程序接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。
NFS共享配置檔案格式
/dir 主機1(opt1,opt2) 主機2(opt1,opt2)...
NFS工具
1.exportfs
exportfs:可用於管理NFS匯出的檔案系統
常見選項:
-v #檢視本機所有NFS共享
-r #重讀配置檔案,並共享目錄
-a #輸出本機所有共享
-au #停止本機所有共享
2.showmount
常見用法:
showmount -e hostname
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *
3.mount.nfs
客戶端NFS掛載
NFS相關的掛載選項:man 5 nfs
fg #(預設)前臺掛載
bg #後臺掛載
hard #(預設)持續請求
soft #非持續請求
intr #和hard配合,請求可中斷
rsize #和wsize 一次讀和寫資料最大位元組數,rsize=32768
_netdev #無網路連線不掛載
vers #指定版本,客戶端centos8預設4.2 ,centos7預設4.1 centos6預設4.0
操作
yum install nfs-utils.x86_64 -y
#客戶端服務端兩邊都需要安裝 nfs軟體
vim /etc/exports
/share *
/share *(rw)
/share *(rw,no_root_squash)
#不壓榨root
/share *(rw,no_root_squash,all_squash
#都壓榨
/nfs1 *(rw,no_root_squash,all_squash,anonuid=1003,anongid=1003)
#指定壓榨成統一使用者
#檔案系統需要許可權
chmod 777 /share
[root@node2 mnt]#touch 456
touch: 無法建立"456": 只讀檔案系統
[root@localhost nfs1]#ll
總用量 4
-rw-r--r--. 1 root root 0 10月 17 01:34 123
-rw-r--r--. 1 nfsnobody nfsnobody 0 10月 17 01:39 456
-rw-r--r--. 1 root root 2259 10月 17 01:34 passwd
[root@localhost nfs1]#exportfs -v
/nfs1 <world>(rw,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)
注意在客戶端核服務端uid一樣的使用者,名字不同,後果如何?