1.測(cè)試環(huán)境:
a)虛擬機(jī)安裝centos
b)測(cè)試軟件:NFS和Samba
2.NFS原理
NFS(network file system 網(wǎng)絡(luò)文件系統(tǒng))主要用在unix系統(tǒng)和linux系統(tǒng)下的文件共享。采用是服務(wù)器/客戶端的模式嘁灯。
1)首先服務(wù)器端啟動(dòng)RPC服務(wù),并開(kāi)啟111端口
2)啟動(dòng)NFS服務(wù)栅哀,并向RPC注冊(cè)端口信息
3)客戶端啟動(dòng)RPC(portmap服務(wù))震肮,向服務(wù)端的RPC(portmap)服務(wù)請(qǐng)求服務(wù)端的NFS端口
4)服務(wù)端的RPC(portmap)服務(wù)反饋NFS端口信息給客戶端。
5)客戶端通過(guò)獲取的NFS端口來(lái)建立和服務(wù)端的NFS連接并進(jìn)行數(shù)據(jù)的傳輸。
3.安裝NFS軟件
查詢是否安裝yum list installed|grep nfs rpcbind
其中nfs-utils-1.2.3-75.el6.x86_64
是提供NFS服務(wù)的軟件包,rpcbind-0.2.0-13.el6.x86_64
是提供端口映射服務(wù)的工具包。
b)查詢ps -eaf|grep rpcbind netstat -anp|grep :111
rpcbind默認(rèn)是自動(dòng)執(zhí)行的 監(jiān)聽(tīng)端口是111
NFS 服務(wù)守護(hù)進(jìn)程:
rpc.nfsd
管理客戶端是否能夠登錄服務(wù)器rpc.mountd
管理NFS的文件系統(tǒng),根據(jù)所設(shè)的權(quán)限決定是否允許客戶端安裝使用指定的目錄或文件(是有nfs-utils
提供)
Nfsd的端口2049端口磕洪。Rpc.mountd端口不固定。因?yàn)檫h(yuǎn)程客戶端調(diào)用NFS服務(wù)時(shí)掷酗,需要注意防火墻開(kāi)發(fā)對(duì)應(yīng)的端口虽界。可以使用rpcinfo命令查看了解NFS進(jìn)程與端口的狀態(tài)鸿捧。
4.設(shè)置NFS服務(wù)器的共享目錄
主要方式有兩種:1)設(shè)置/etc/exports 2)使用命令exportfs增加和去除共享目錄
在/etc/exports中的格式:目錄路徑 機(jī)器(選項(xiàng)1屹篓,選項(xiàng)2.....)選項(xiàng)有各種權(quán)限
/pub *(ro,insecure,all_squash)
exportfs 參數(shù):-a導(dǎo)出所有列在/etc/exports文件中的目錄-v輸出每一個(gè)被導(dǎo)出或取消導(dǎo)出的目錄-r重新導(dǎo)入 -u取消指定目錄的導(dǎo)出-i 允許導(dǎo)出沒(méi)有在文件中目錄,-f指定一個(gè)文件代替/etc/exports -o 指定導(dǎo)出目錄的選項(xiàng)
上面錯(cuò)誤的原因是在主機(jī)上面不存這個(gè)目錄或者文件匙奴《亚桑可以在系統(tǒng)下面新建一個(gè)mkdir pub
重啟服務(wù)沒(méi)有在報(bào)錯(cuò)
mount -t nfs 192.168.197.128:/pub /mnt
就可以查看到已經(jīng)掛載到本地了。
關(guān)于掛載還可以設(shè)置動(dòng)態(tài)掛載和每次啟動(dòng)時(shí)候自動(dòng)掛載泼菌。在/etc/fstab每一行指定一個(gè)掛載文件系統(tǒng)谍肤。文件類(lèi)型:nfs
也可以使用autofs軟件
安裝軟件
配置文件
/etc/auto.master
/mnt /etc/auto.mnt
(第一個(gè)為掛載點(diǎn),掛載點(diǎn)映射文件的位置 第三個(gè)可選項(xiàng)指定掛載選項(xiàng))使用時(shí)候才會(huì)自動(dòng)掛載哗伯。
5.Samba原理
Samba是開(kāi)源的可以為SMB和CIFS客戶提供所有方式的我呢進(jìn)行和打印服務(wù)荒揣,包括各種版本的windows客戶。
SMB協(xié)議和NentBIOS協(xié)議是windows操作系統(tǒng)使用的共享文件系統(tǒng)的協(xié)議焊刹。Samba實(shí)現(xiàn)了在unix類(lèi)操作系統(tǒng)SMB協(xié)議系任。SMB一開(kāi)始的設(shè)計(jì)是在NetBIOS協(xié)議上運(yùn)行的(而NetBIOS本身則運(yùn)行在NetBEUI、IPX/SPX或TCP/IP協(xié)議上)虐块,Windows 2000引入了SMB直接在TCP/IP上運(yùn)行的功能俩滥。
步驟1:協(xié)議協(xié)商
客戶端在訪問(wèn)Samba服務(wù)器時(shí),發(fā)送negprot指令數(shù)據(jù)包贺奠,告知目標(biāo)計(jì)算機(jī)其支持的SMB類(lèi)型霜旧。Samba服務(wù)器根據(jù)客戶端的情況,選擇最優(yōu)的SMB類(lèi)型儡率,并做出回應(yīng)挂据;
步驟2:建立連接
當(dāng)SMB類(lèi)型確認(rèn)后,客戶端會(huì)發(fā)送session setup指令數(shù)據(jù)包喉悴,提交帳號(hào)和密碼棱貌,請(qǐng)求與Samba服務(wù)器建立連接,如果客戶端通過(guò)身份驗(yàn)證箕肃,Samba服務(wù)器會(huì)對(duì)session setup報(bào)文作出回應(yīng)婚脱,并為用戶分配唯一的UID,在客戶端與其通信時(shí)使用;
步驟3:訪問(wèn)共享資源
客戶端訪問(wèn)Samba共享資源時(shí)障贸,發(fā)送tree connect指令數(shù)據(jù)包错森,通知服務(wù)器需要訪問(wèn)的共享資源名,如果設(shè)置允許篮洁,Samba服務(wù)器會(huì)為每個(gè)客戶端與共享資源連接分配TID,客戶端即可訪問(wèn)需要的共享資源涩维;
步驟4:斷開(kāi)連接
共享使用完畢,客戶端向服務(wù)器發(fā)送tree disconnect報(bào)文關(guān)閉共享袁波,與服務(wù)器斷開(kāi)連接瓦阐。
6.Samba軟件安裝
查詢rpm -qa|grep samba
看到如下:samba-common
為samba服務(wù)器和客戶端提供支持的公共包。Samba-client
的samba的客戶端篷牌。samba-winbind-clients
和samba-winbind
睡蟋。samba里的winbind是samba作為windows域成員的一個(gè)中介.使用yum install -y samba
之后安裝安裝的服務(wù)器samba才是我們的服務(wù)器軟件。
rpm -ql samba
可以查看到安裝的軟件的文件測(cè)試啟動(dòng):
service smb start service nmb start
Samba默認(rèn)是啟動(dòng)了smbd負(fù)責(zé)處理對(duì)文件和打印機(jī)的服務(wù)請(qǐng)求和nmbd負(fù)責(zé)處理NetBIOS名稱服務(wù)并提供網(wǎng)絡(luò)瀏覽功能枷颊。
端口tcp139:NetBIOS協(xié)議默認(rèn)會(huì)話服務(wù)監(jiān)聽(tīng)端口 端口tcp445:TCP協(xié)議上實(shí)現(xiàn)SMB協(xié)議戳杀。
端口udp137 NetBIOS名稱服務(wù) 端口UDP138 數(shù)據(jù)包服務(wù)。
在地址欄輸入:\192.168.197.128,看到如下界面說(shuō)明服務(wù)已經(jīng)正常啟動(dòng)
7.配置文件
配置文件/etc/samba/smb.conf里面包括[global] (全局參數(shù)核心內(nèi)容夭苗,決定samaba要實(shí)現(xiàn)的功能)和[homes](主目錄的文件服務(wù)) [printers](打印機(jī)共享服務(wù))也可以添加新的用戶命名的區(qū)段表示要共享的資源信卡。
因?yàn)榕渲梦募?xiàng)目很多。本文就不在詳細(xì)說(shuō)明了题造,大部分大家都可以看的懂是什么意思
下面的是homes和printers的配置
8.測(cè)試
當(dāng)以上的配置文件根據(jù)你的需要配置結(jié)束之后傍菇,還需要在samba服務(wù)器建立系統(tǒng)賬號(hào),然后使用smbpasswd建立samba的自己的賬號(hào)用于遠(yuǎn)程登錄晌梨∏培停可以發(fā)現(xiàn)使用smbpasswd時(shí)候賬號(hào)必須是系統(tǒng)存在的賬號(hào)否則會(huì)提示錯(cuò)。
登錄\192.168.197.128時(shí)候報(bào)錯(cuò),一個(gè)是我們添加賬號(hào)是否的密碼SMB的仔蝌,如果使用系統(tǒng)賬號(hào)的密碼肯定無(wú)法登錄泛领。再就是需要設(shè)置好selinux問(wèn)題。
selinux在smb中設(shè)置
下面出現(xiàn)關(guān)于權(quán)限的問(wèn)題敛惊。就需要設(shè)置selinux的問(wèn)題了
再次進(jìn)入竟可以正常進(jìn)入了渊鞋,并且在windows下新建一個(gè)文件,然后
到此我們就構(gòu)建完了samba瞧挤。再次所有的配置文件我都是有系統(tǒng)默認(rèn)锡宋,沒(méi)有修改。本文知識(shí)個(gè)人測(cè)試功能特恬。如果在實(shí)際過(guò)程中是要按照具體需要進(jìn)行配置比如每個(gè)賬號(hào)登錄的目錄不一樣执俩,使用權(quán)限也不要等等。
如果我們?cè)趙indows系統(tǒng)下也做了共享配置癌刽。并且新建一個(gè)測(cè)試賬號(hào)役首,我們?cè)趌inux系統(tǒng)也是可以登錄尝丐。下面是使用本機(jī)SMB服務(wù)器測(cè)試的結(jié)果。
打開(kāi)后將里面所有的都啟用衡奥。Windows7的共享配置就設(shè)置好了爹袁。
這是在linux連接windows的測(cè)試結(jié)果,這個(gè)可能和我的設(shè)置有關(guān)矮固,因?yàn)槲业馁~號(hào)沒(méi)有密碼在就是windows7 沒(méi)有開(kāi)啟anonymous所以沒(méi)有共享出來(lái)的目錄失息。
最后幾個(gè)報(bào)錯(cuò)是沒(méi)有關(guān)系,這個(gè)是windows里面設(shè)置原因档址。我沒(méi)有在進(jìn)一步的研究盹兢,現(xiàn)在其實(shí)是不影響我們的共享使用的。