linux下NFS安裝配置的方法是什麼
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
#:允許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)
##設定檔案每行分為兩段:第一段為共享的目錄,使用絕對路徑,第二段為客戶端位址及權限。
權限有:
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值。
客戶端登陸用戶為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將被壓縮到指定的使用者與群組預設情況下,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 [-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,檢查/etc/sysconfig/iptables防火牆設置,允許tcp,udp的111埠訪問,然後service iptables restart
•3,檢查/etc/hosts.deny,/etc/hosts.allow看客戶端連線是否被阻止了
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.
•修改伺服器端共用目錄權限chown 760 /home(檔案擁有者root有全權限、檔案所有群組使用者有讀寫權限、其他使用者無權限,然後把目錄的群組設定為nfsnobody)
•修改伺服器端共用目錄權限群組擁有者為nfsnobody(cat /etc/passwd | grep nob)
•chgrp nfsnobody /home
•成功在客戶端建立新的檔案!
以上是linux下NFS安裝配置的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

在 Oracle 中查看實例名的方法有三種:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通過操作系統的任務管理器、Oracle Enterprise Manager 或檢查環境變量 (Linux 上的 ORACLE_SID)。

要卸載 Oracle 數據庫:停止 Oracle 服務,移除 Oracle 實例,刪除 Oracle 主目錄,清除註冊表項(僅限 Windows),刪除環境變量(僅限 Windows)。卸載前請備份數據。

在Linux上使用Docker可以提高開發和部署效率。 1.安裝Docker:使用腳本在Ubuntu上安裝Docker。 2.驗證安裝:運行sudodockerrunhello-world。 3.基本用法:創建Nginx容器dockerrun--namemy-nginx-p8080:80-dnginx。 4.高級用法:創建自定義鏡像,使用Dockerfile構建並運行。 5.優化與最佳實踐:使用多階段構建和DockerCompose,遵循編寫Dockerfile的最佳實踐。

安裝 Oracle 後,可通過以下步驟使用:創建數據庫實例。連接到數據庫。創建用戶。創建表。插入數據。查詢數據。導出數據。導入數據。

當 Apache 80 端口被佔用時,解決方法如下:找出佔用該端口的進程並關閉它。檢查防火牆設置以確保 Apache 未被阻止。如果以上方法無效,請重新配置 Apache 使用不同的端口。重啟 Apache 服務。

啟動 Apache 的步驟如下:安裝 Apache(命令:sudo apt-get install apache2 或從官網下載)啟動 Apache(Linux:sudo systemctl start apache2;Windows:右鍵“Apache2.4”服務並選擇“啟動”)檢查是否已啟動(Linux:sudo systemctl status apache2;Windows:查看服務管理器中“Apache2.4”服務的狀態)啟用開機自動啟動(可選,Linux:sudo systemctl

本文介紹如何在Debian系統上有效監控Nginx服務器的SSL性能。我們將使用NginxExporter將Nginx狀態數據導出到Prometheus,再通過Grafana進行可視化展示。第一步:配置Nginx首先,我們需要在Nginx配置文件中啟用stub_status模塊來獲取Nginx的狀態信息。在你的Nginx配置文件(通常位於/etc/nginx/nginx.conf或其包含文件中)中添加以下代碼段:location/nginx_status{stub_status
