搜尋
首頁運維linux運維linux下NFS安裝配置的方法是什麼

linux下NFS安裝配置的方法是什麼

May 19, 2023 pm 07:46 PM
linuxnfs

1,伺服器端軟體:安裝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

  • pc.nfsd:主要複雜登陸權限偵測等必須

  • ##portmap:處理rpc程式客戶端和伺服器端的連接埠對應必須

  • rpc.mountd:負責nfs的檔案系統,當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:更新與查詢各運作等級的系統服務
•chkconfig nfs on
•service rpcbind start
•service nfs start

2,伺服器端設定檔/etc/exports:指定要共享的目錄及權限man exports


複製程式碼 程式碼如下:

#:允許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或網段,例如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或其他用戶,然後根據伺服器端nfs server配置,對應客戶端連線對應到nfs伺服器端的用戶為root或指定使用者(透過anonuid或anongid來設定)、nfsnobody等。最後這個映射使用者和共享目錄的權限共同影響該客戶端連線是否有讀寫權限。 手動設定客戶端、伺服器端使用者映射,參數:map_static=/etc/nfs.map/etc/nfs.map檔案映射內容如下:
# remote local
gid 500 1000
uid 500 2003


參考:關於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服務相關端口,並修改防火牆放開對應埠

複製程式碼 程式碼如下:


#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.lockdwul listen listen list。
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
#服務進程名:主機列表:當規則匹配時可選的指令操作
server_name:hosts-list[:command]
在/etc/hosts.allow中新增允許客戶端存取的規則
all:127.0.0.1         #允許本機存取機所有服務流程
all:192.168.0.135     #允許192.168.0.135客戶機器存取本機所有服務進程
smbd:192.168.0.0/255.255.255.0   #允許192.0.0/255.255.255.0  100.0/255.255.255.0        #允許192.168.100.網段的ip存取伺服器上的sshd進程
ss:60.28.160.244,            #允許外網的60.28.160.244存取此伺服器上的sshd進程
在/etc /hosts.deny中被禁制登陸的嘗試連線訊息也可以設定成記錄下來並發到使用者信箱
sshd:all    #禁止所有

5,修改共用出去的目錄權限為760 ,並修改目錄所有群組為nfsnobody
參考:問題7

#6,客戶端掛載:執行下面的指令就可以把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效能測試:

•根據指令time dd if=/dev/zero of=/mnt/home bs=16k count=16384 來設定合理的wsize,rsize值

•根據nfs客戶端數,在/etc/sysconfig/nfs設定檔中設定適當的nfs伺服器端行程數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參數:用rpc協定來偵測主機host上使用的rpcbind,並顯示所有已註冊的rpc程式。
nfsstat指令:查看nfs的運作狀態,對於調整nfs的運作有很大幫助

過程中出現的問題解決:

1,透過yum或是rpm安裝完portmap後,發現執行指令service portmap start時報如下錯誤:portmap: unrecognized service。

centos6(linux kernel 2.6.32)中,portmap已經被rpcbind取代了,仔細查看安裝資訊就會發現,執行指令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, 客戶端執行指令showmount - e nfs-server時,報錯誤:mount clntudp_create: rpc: program not registered。

nfs、rpcbind服務沒有啟動,使用chkconfig把nfs、rpcbind加到系統服務中並用service來啟動
或在/etc/hosts.allow中加入允許客戶端存取的規則all:192.168.0.135

4, 客戶端執行指令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目錄執行touch指令時報錯誤:touch: cannot touch `a': permission denied。解決:

•伺服器端共用目錄權限查看ll -d /home

•修改伺服器端共用目錄權限chown 760 /home(檔案擁有者root有全權限、檔案所有群組使用者有讀寫權限、其他使用者無權限,然後把目錄的群組設定為nfsnobody)
•修改伺服器端共用目錄權限群組擁有者為nfsnobody(cat /etc/passwd | grep nob)
•chgrp nfsnobody /home
•成功在客戶端建立新的檔案!

以上是linux下NFS安裝配置的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
如何在Debian上使用OpenSSL命令行如何在Debian上使用OpenSSL命令行Apr 13, 2025 am 06:27 AM

Debian系統下的OpenSSL命令行工具功能強大,可用於密鑰對生成、證書創建與管理、數據加密解密等多種任務。本文將引導您快速上手OpenSSL。一、OpenSSL安裝首先,確認您的Debian系統已安裝OpenSSL。若未安裝,請執行以下命令:sudoaptupdatesudoaptinstallopenssl二、密鑰對生成1.生成RSA私鑰:opensslgenrsa-outprivate.key2048此命令生成2048位RSA私鑰,並保存至private.k

Debian如何集成Hadoop與其他工具Debian如何集成Hadoop與其他工具Apr 13, 2025 am 06:24 AM

本指南詳細介紹如何在Debian系統上集成Hadoop及其他工具,涵蓋Java環境搭建、Hadoop配置、集群啟動及管理等關鍵步驟。一、Java環境準備首先,確保系統已安裝Java8或更高版本。使用以下命令安裝OpenJDK8:sudoaptupdatesudoaptinstallopenjdk-8-jdk驗證安裝:java-version二、Hadoop下載與解壓從ApacheHadoop官網下載最新版Hadoop安裝包(例如Hadoop3.3.1),並解壓至指定目

GitLab在Debian上的故障排查有哪些技巧GitLab在Debian上的故障排查有哪些技巧Apr 13, 2025 am 06:21 AM

本文提供在Debian系統上高效排查GitLab問題的實用指南。一、日誌文件檢查首先,檢查GitLab的日誌文件,通常位於/var/log/gitlab目錄下。 unicorn、nginx和sidekiq日誌尤為重要,它們能提供服務崩潰或錯誤的線索。二、系統資源監控使用top或htop等工具監控服務器的CPU、內存和磁盤使用情況。高資源佔用可能導致GitLab不穩定。命令psaux|grepgitlab可以查看GitLab進程的資源使用情況。三、網絡連接測試確認服務器網絡連接正

debian郵件服務器故障怎麼辦debian郵件服務器故障怎麼辦Apr 13, 2025 am 06:18 AM

您的Debian郵件服務器遇到問題?別擔心,本文提供逐步指南幫助您診斷並解決常見故障。第一步:檢查服務狀態首先,確認Postfix和Dovecot郵件服務是否正常運行:sudosystemctlstatuspostfixsudosystemctlstatusdovecot若服務停止,請使用以下命令啟動:sudosystemctlstartpostfixsudosystemctlstartdovecot第二步:日誌文件分析查看日誌文件以查找錯誤信息:Postf

debian郵件服務器能承載多少用戶debian郵件服務器能承載多少用戶Apr 13, 2025 am 06:15 AM

Debian郵件服務器可承載的用戶數量並非固定值,而是取決於諸多因素的綜合作用。這些因素包括服務器硬件配置、網絡帶寬、郵件服務器軟件及其配置,以及用戶的使用習慣。關鍵影響因素:郵件服務器軟件及配置:常用的郵件服務器軟件包括Postfix(快速、可靠、輕量級)、Exim(高度可定制)和Dovecot(流行的IMAP/POP3服務器)。它們的配置選項(例如郵件隊列大小、連接數限制等)直接影響服務器性能。硬件及網絡環境:服務器的CPU、內存、存儲空間和網絡帶寬,以及網絡連接的穩定性和速

Debian系統OpenSSL漏洞修復Debian系統OpenSSL漏洞修復Apr 13, 2025 am 06:12 AM

確保Debian系統的OpenSSL安全,請遵循以下步驟:一、系統更新:首先,更新您的Debian系統至最新版本。使用以下命令更新軟件包列表併升級所有已安裝軟件:sudoaptupdatesudoaptupgrade二、版本確認:檢查當前OpenSSL版本:opensslversion三、OpenSSL升級:若版本過舊,請升級。方法一:直接升級(推薦):使用以下命令直接升級到最新穩定版OpenSSL:sudoaptinstall--only-upgrade

如何在Debian上排查OpenSSL問題如何在Debian上排查OpenSSL問題Apr 13, 2025 am 06:09 AM

本文指導您如何在Debian系統上有效排查和解決OpenSSL問題。一、系統及軟件包更新首先,確保您的Debian系統已更新到最新版本:sudoaptupdatesudoaptupgrade二、安裝OpenSSL及開發庫安裝OpenSSL及其必要的開發庫:sudoaptinstallopenssllibssl-dev安裝完成後,驗證安裝是否成功:opensslversion三、手動編譯安裝(可選)如果apt安裝失敗,您可以嘗試手動編譯安裝OpenSSL:從Op

OpenSSL在Debian上的配置文件位置OpenSSL在Debian上的配置文件位置Apr 13, 2025 am 06:06 AM

在Debian系統中,OpenSSL的配置文件通常位於/etc/ssl目錄下。然而,確切的文件位置可能會因安裝方法和OpenSSL版本而異。以下是一些常見的文件:SSL證書和密鑰:通常存儲在/etc/ssl/certs和/etc/ssl/private目錄中。主配置文件:openssl.cnf文件是OpenSSL的主要配置文件,通常位於/etc/ssl/openssl.cnf。如果您使用apt等包管理器安裝OpenSSL,這些文件應該會自動創建並放置在相應的目錄中。請注

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具