nfs

image.png

上圖所示問題在新版nfs 已經(jīng)不存在

将宪,服務器端軟件:安裝nfs-utils和portmap(rpcbind)
nfs-utils: 提供rpc.nfsd 及 rpc.mountd這兩個NFS DAEMONS的套件
portmap: NFS其實可以被看作是一個RPC SERVER PROGRAM,而要啟動一個RPC SERVER PROGRAM绘闷,都要做好PORT的對應工作橡庞,而且這樣的任務就是由PORTMAP來完成的。通俗的說PortMap就是用來做PORT的mapping的印蔗。
NFS需要啟動的DAEMONS:參考NFS daemons
pc.nfsd:主要復雜登陸權限檢測等 必須
portmap:處理RPC程序客戶端和服務器端的端口對應 必須
rpc.mountd:負責NFS的檔案系統(tǒng)扒最,當CLIENT端通過rpc.nfsd登陸SERVER后,對clinet存取server的文件進行一系列的管理 必須
lockd:處理通過RPC包的鎖定請求
statd:為nfs鎖定服務提供crash恢復功能
rquotad:處理當用戶通過nfsmount到遠程服務器時的配額
守護進程啟動順序:rpc.portmap, rpc.mountd, rpc.nfsd, rpc.statd, rpc.lockd (新版本會自動跟著nfsd啟動起來), rpc.rquotad

NF服務器端命令:
yum install nfs-utils portmap
chkconfig rpcbind on #chkconfig:更新和查詢各運行級別的系統(tǒng)服務
chkconfig nfs on
service rpcbind start
service nfs start

2华嘹,服務器端配置文件/etc/exports:指定要共享的目錄及權限 man exports
Html代碼 收藏代碼

:允許ip地址范圍在192.168.0.*的計算機以讀寫的權限來訪問/home/work 目錄吧趣。

/home/work 192.168.0.*(rw,sync,root_squash)
/home 192.168.1.105 (rw,sync)
/public * (rw,sync)

配置文件每行分為兩段:第一段為共享的目錄,使用絕對路徑耙厚,第二段為客戶端地址及權限强挫。
地址可以使用完整IP或網(wǎng)段,例如10.0.0.8或10.0.0.0/24薛躬,10.0.0.0/255.255.255.0當然也可以地址可以使用主機名纠拔,DNS解析的和本地/etc/hosts解析的都行,支持通配符泛豪,例如:*.chengyongxu.com

權限有:
rw:read-write稠诲,可讀寫; 注意诡曙,僅僅這里設置成讀寫客戶端還是不能正常寫入臀叙,還要正確地設置共享目錄的權限,參考問題7
ro:read-only价卤,只讀劝萤;
sync:文件同時寫入硬盤和內存;
async:文件暫存于內存慎璧,而不是直接寫入內存床嫌;
no_root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來說胸私,也擁有root權限厌处。顯然開啟這項是不安全的。
root_squash:NFS客戶端連接服務端時如果使用的是root的話岁疼,那么對服務端分享的目錄來說阔涉,擁有匿名用戶權限,通常他將使用nobody或nfsnobody身份捷绒;
all_squash:不論NFS客戶端連接服務端時使用什么用戶瑰排,對服務端分享的目錄來說都是擁有匿名用戶權限;
anonuid:匿名用戶的UID值暖侨,通常是nobody或nfsnobody椭住,可以在此處自行設定;
anongid:匿名用戶的GID值字逗。

NFS客戶端用戶映射:客戶端登陸用戶為root或者其他用戶京郑,然后根據(jù)服務器端nfs server配置显押,相應客戶端連接映射到nfs服務器端的用戶為root或者指定用戶(通過anonuid或者anongid來設定)、nfsnobody等傻挂。最后這個映射用戶和共享目錄的權限共同影響該客戶端連接是否有讀寫權限乘碑。
手動設定客戶端、服務器端用戶映射金拒,參數(shù):map_static=/etc/nfs.map
/etc/nfs.map文件映射內容如下:

remote local

gid 500 1000
uid 500 2003
參考:NFS 學習筆記中關于nfs客戶連接用戶身份的描述兽肤,沒有驗證過下述的描述:
客戶端連接時候,對普通用戶的檢查绪抛,NO.1如果明確設定了普通用戶被壓縮的身份资铡,那么此時客戶端用戶的身份轉換為指定用戶,NO.2如果NFS server上面有同名用戶幢码,那么此時客戶端登錄賬戶的身份轉換為NFS server上面的同名用戶笤休,NO.3如果沒有明確指定,也沒有同名用戶症副,那么此時 用戶身份被壓縮成nfsnobody
客戶端連接的時候店雅,對root的檢查,NO.1如果設置no_root_squash贞铣,那么此時root用戶的身份被壓縮為NFS server上面的root闹啦,NO.2如果設置了all_squash、anonuid辕坝、anongid窍奋,此時root 身份被壓縮為指定用戶,NO.3如果沒有明確指定酱畅,此時root用戶被壓縮為nfsnobody琳袄,NO.4如果同時指定no_root_squash與all_squash 用戶將被壓縮為 nfsnobody,如果設置了anonuid纺酸、anongid將被壓縮到所指定的用戶與組

3窖逗,防火墻設置修改
默認情況下,CentOS6服務器版安裝完成后吁峻,防火墻iptables配置中只放開了22端口滑负。
在nfs配置文件/etc/sysconfig/nfs中指定nfs服務相關端口,并修改防火墻放開相應端口
Java代碼 收藏代碼

Port rpc.mountd should listen on.

MOUNTD_PORT=892

Port rpc.statd should listen on.

STATD_PORT=662

/usr/sbin/rpc.rquotad Port rquotad should listen on.

RQUOTAD_PORT=875

TCP port rpc.lockd should listen on.

LOCKD_TCPPORT=32803

UDP port rpc.lockd should listen on.

LOCKD_UDPPORT=32769

修改iptables配置文件/etc/sysconfig/iptables用含,放開111(portmap服務端口),2049(nfs服務端口)

4帮匾,/etc/hosts.allow配置修改
/etc/hosts.allow啄骇,/etc/hosts.deny 描述哪些主機允許使用本地的INET服務。
默認這里好像可以不需要修改瘟斜,不過最好設置成只允許需要的客戶端機器連接缸夹,然后其他機器的連接都deny

服務進程名:主機列表:當規(guī)則匹配時可選的命令操作

server_name:hosts-list[:command]
在/etc/hosts.allow中添加允許客戶端訪問的規(guī)則
ALL:127.0.0.1 #允許本機訪問本機所有服務進程
ALL:192.168.0.135 #允許192.168.0.135客戶端機器訪問本機所有服務進程
smbd:192.168.0.0/255.255.255.0 #允許網(wǎng)段的IP訪問smbd服務
sshd:192.168.100.0/255.255.255.0 #允許192.168.100.網(wǎng)段的IP訪問服務器上的sshd進程
sshd:60.28.160.244 #允許外網(wǎng)的60.28.160.244訪問這個服務器上的sshd進程
在/etc/hosts.deny中 被禁制登陸的嘗試連接信息也可以設置成記錄下來并發(fā)到用戶郵箱
sshd:ALL #禁止所有

5痪寻,修改共享出去的目錄權限為760,并修改目錄所有組為nfsnobody
參考:問題7

6虽惭,客戶端掛載:執(zhí)行下面的指令就可以把NFS服務器(IP地址為192.168.1.45)共享出來的/home掛裝到本地的/mnt/nfs/home目錄下橡类。
showmount -e nfs-serverip: 查看nfs服務器共享出來的資源
mount -t nfs 192.168.1.45:/home /mnt/nfs/home

7,NFS性能測試:
根據(jù)命令time dd if=/dev/zero of=/mnt/home bs=16k count=16384 來設置合理的WSIZE,RSIZE值
根據(jù)nfs客戶端數(shù)芽唇,在/etc/sysconfig/nfs配置文件中設置合適的nfs服務器端進程數(shù)RPCNFSDCOUNT顾画,默認為8

exportfs命令:如果我們在啟動了NFS之后又修改了/etc/exports,是不是還要重新啟動nfs呢匆笤?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv] -a :全部mount或者unmount /etc/exports中的內容 -r :重新mount /etc/exports中分享出來的目錄 -u :umount 目錄 -v :在 export 的時候,將詳細的信息輸出到屏幕上领追。
showmount命令:顯示NFS服務器的掛載信息笤闯。
showmount -e [nfs-server]:顯示指定的NFS SERVER上export出來的目錄,不指定后面IP時查看的是本機作為NFS Server時咆课,對外共享的目錄末誓。。
rpcinfo -p命令:顯示RPC信息 -p參數(shù):用rpc協(xié)議來探測主機host上使用的rpcbind书蚪,并顯示所有已注冊的RPC程序基显。
nfsstat命令:查看NFS的運行狀態(tài),對于調整NFS的運行有很大幫助

過程中出現(xiàn)的問題解決:
1善炫, 通過yum或者rpm安裝完portmap后撩幽,發(fā)現(xiàn)執(zhí)行命令service portmap start時報如下錯誤:portmap: unrecognized service。
CentOS6(Linux Kernel 2.6.32)中箩艺,portmap已經(jīng)被rpcbind代替了窜醉,仔細查看安裝信息就會發(fā)現(xiàn),執(zhí)行命令yum install portmap時安裝的就是rpcbind艺谆。安裝完成后也可以通過命令:yum whatprovides portmap來查看詳細信息榨惰。

2, 客戶端掛載時静汤,報錯誤mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive琅催。
1,通過命令rpcinfo -p來查看portmap服務時候正常啟動以及相應的端口(默認111)
2虫给,檢查/etc/sysconfig/iptables防火墻設置藤抡,允許tcp,udp的111端口訪問抹估,然后service iptables restart
3缠黍,檢查/etc/hosts.deny,/etc/hosts.allow看客戶端連接是否被阻止了

3药蜻, 客戶端執(zhí)行命令showmount -e nfs-server時瓷式,報錯誤:mount clntudp_create: RPC: Program not registered替饿。
nfs、rpcbind服務沒有啟動贸典,使用chkconfig把nfs视卢、rpcbind加到系統(tǒng)服務中并用service來啟動
或者在/etc/hosts.allow中添加允許客戶端訪問的規(guī)則 ALL:192.168.0.135

4, 客戶端執(zhí)行命令showmount -e nfs-server時廊驼,報錯誤:rpc mount export: RPC: Unable to receive; errno = No route to host
配置文件:/etc/sysconfig/nfs
找到nfs服務相關端口設置的地方据过,并移除注釋后,在iptables防火墻設置中指定允許相應端口的Udp蔬充,tcp流通過蝶俱。

MOUNTD_PORT=892

STATD_PORT=662

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

iptables -A INPUT -p TCP --dport 662 -m state --state NEW -j ACCEPT
iptables -A INPUT -p UDP --dport 661 -m state --state NEW -j ACCEPT

5, showmount -e nfs-server成功,正式掛載時報錯:mount: mount to NFS server '192.168.1.5' failed: System Error: No route to host.這是由于nfs服務的默認端口2049被防火墻阻塞了饥漫,和上面類似修改iptables允許2049端口通過

6, showmount -e nfs-server成功榨呆,正式掛載時報錯:mount: mount to NFS server '192.168.1.5' failed: timed out (retrying).
編輯/etc/sysconfig/iptables時,相關端口的tcp端口允許通過庸队,而udp不允許积蜻。其他可能的原因參考:mount command fails with NFS server failed error.
Disable name lookup requests from NFS server to a DNS server.
or NFS version used by the NFS client is other than version 3.

7,exports配置文件中目錄權限屬性設置為rw(默認為root_squash)彻消,但是在客戶端mount目錄執(zhí)行touch命令時報錯誤:touch: cannot touch `a': Permission denied竿拆。解決:
服務器端共享目錄權限查看ll -d /home
修改服務器端共享目錄權限chown 760 /home(文件所有者root有全權限、文件所有組用戶有讀寫權限宾尚、其他用戶無權限丙笋,然后把目錄的組設置為nfsnobody)
修改服務器端共享目錄權限組擁有者為nfsnobody(cat /etc/passwd | grep nob)
chgrp nfsnobody /home
成功在客戶端創(chuàng)建新的文件!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末煌贴,一起剝皮案震驚了整個濱河市御板,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牛郑,老刑警劉巖怠肋,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淹朋,居然都是意外死亡笙各,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門础芍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杈抢,“玉大人,你說我怎么就攤上這事者甲〈焊校” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵虏缸,是天一觀的道長鲫懒。 經(jīng)常有香客問我,道長窥岩,這世上最難降的妖魔是什么宰缤? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮慨灭,結果婚禮上,老公的妹妹穿的比我還像新娘呻疹。我一直安慰自己筹陵,他們只是感情好朦佩,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布语稠。 她就那樣靜靜地躺著,像睡著了一般输涕。 火紅的嫁衣襯著肌膚如雪议泵。 梳的紋絲不亂的頭發(fā)上先口,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音碉京,去河邊找鬼谐宙。 笑死,一個胖子當著我的面吹牛搭综,可吹牛的內容都是我干的兑巾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堂油!你這毒婦竟也來了府框?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撕予,沒想到半個月后实抡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欢策,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡踩寇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年辣卒,在試婚紗的時候發(fā)現(xiàn)自己被綠了睛榄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡港准,死狀恐怖咧欣,靈堂內的尸體忽然破棺而出该押,到底是詐尸還是另有隱情阵谚,我是刑警寧澤梢什,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布嗡午,位于F島的核電站,受9級特大地震影響狸演,放射性物質發(fā)生泄漏宵距。R本人自食惡果不足惜吨拗,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一劝篷、第九天 我趴在偏房一處隱蔽的房頂上張望娇妓。 院中可真熱鬧,春花似錦只估、人聲如沸仅乓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至讲衫,卻和暖如春涉兽,著一層夾襖步出監(jiān)牢的瞬間篙程,已是汗流浹背虱饿。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工氮发, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仇祭。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像华弓,于是被迫代替她去往敵國和親困乒。 傳聞我的和親對象是個殘疾皇子娜搂,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容