部署nfs
問題描述
很多時候,對于一些文件管理,有很多的項目,大部分都是用磁盤進行存儲管理!!!
部署到正式環(huán)境下,可能有多臺linux服務器,那就會有這樣的一個問題:
文件上傳,上傳到服務器A,服務器A的磁盤保存了這個文件;那服務器B,就無法讀取到這個文件了!!!
那么,如何做到服務器B也能訪問到服務器A的文件呢?
那就是文件共享了!!!
NFS就是Network File System的縮寫,它最大的功能就是可以通過網(wǎng)絡,讓不同的機器、不同的操作系統(tǒng)可以共享彼此的文件。
那就是說,可以將服務器A的文件夾進行共享,服務器B就掛載服務器A的文件夾。
那就開干吧!!!裝它!!!
一、服務器資源
服務名稱:linux服務器
IP:[請查看資源分配文檔]
操作系統(tǒng):centos 6.9 x64
二、服務端安裝
2.1、NFS安裝
yum -y install nfs-utils nfs-utils-lib rpcbind
復制代碼
注意:如果服務器無法上網(wǎng),可以找一個能上網(wǎng)的服務器先下載相關依賴安裝包(服務器系統(tǒng)需要一致,centos6對應或者centos7對應即可)。
依賴下載命令如下:
yumdownloader nfs-utils nfs-utils-lib rpcbind --resolve
復制代碼
2.2、NFS配置
確定服務器的磁盤情況,再創(chuàng)建共享目錄:
df -h
復制代碼
mkdir /opt/App/uploaded-files
復制代碼
編輯 /etc/sysconfig/nfs 文件:
vi /etc/sysconfig/nfs
復制代碼
添加如下內容自定義端口:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
復制代碼
編輯 /etc/exports 文件:
vi /etc/exports
復制代碼
添加如下內容:
#設置共享的ip段
/opt/app/uploaded-files xxx.xx.xx.*(insecure,rw,sync,no_root_squash,no_all_squash)
復制代碼
下面是一些NFS共享的常用參數(shù):
ro 只讀訪問
rw 讀寫訪問
sync 資料同步寫入到內存與硬盤當中
async 資料會先暫存于內存當中,而非直接寫入硬盤
secure NFS通過1024以下的安全TCP/IP端口發(fā)送
insecure NFS通過1024以上的端口發(fā)送
wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
Hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squash root用戶具有根目錄的完全管理訪問權限
復制代碼
2.3、NFS啟動
啟動服務器:
service rpcbind restart
service nfs restart
復制代碼
設置開機啟動:
chkconfig --level 35 rpcbind on
chkconfig --level 35 nfs on
復制代碼
查看端口:
rpcinfo -p
復制代碼
服務端驗證NFS共享:
showmount -e
復制代碼
注:正常能顯示出上面設置的共享目錄,如果報如下錯誤:
clnt_create: RPC: Program not registered
說明 rpcbind服務與NFS服務 啟動順序不對,把他倆都停了,重新啟動,先啟動rpcbind服務再啟動nfs服務;
注:正常也能顯示出上面設置的共享目錄,如果報如下錯誤:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
說明防火墻沒有開啟相應需要開啟的端口,把防火墻關掉,再測試應該就可以正常了;不過防火墻比較重要,一般情況下,不會隨意關閉,在服務端可開啟如下命令列出的所有端口即可:
2.4、配置防火墻
啟動111,2049,30001,30002,30003,30004端口
vi /etc/sysconfig/iptables
復制代碼
添加以下內容:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30002 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30003 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30004 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30001 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30002 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30003 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 30004 -j ACCEPT
復制代碼
重啟防火墻
service iptables restart
復制代碼
2.5、漏洞修復
目標主機showmount -e信息泄露
在正式環(huán)境對共享服務器的hosts.allow和hosts.deny兩個文件進行配置修改。具體修改如下:
vi /etc/hosts.allow
復制代碼
添加以下內容:
mountd:ip1
mountd:ip2
mountd:xxx.xx.xx.xx #(nfs服務器ip)
復制代碼
vi /etc/hosts.deny
復制代碼
添加以下內容:
mountd:all
復制代碼
該文件修改保存后即刻生效,無需重啟任何服務,nfs服務會優(yōu)先讀取hosts.allow文件再讀取hosts.deny文件。
于是上面配置的最終結果為只有ip1和ip2段的IP可以訪問查詢共享目錄,其他IP均拒絕訪問查詢共享目錄。
nfs客戶端結果如下:
showmount -e xxx.xx.xx.xx
rpc mount export: RPC: Authentication error; why = Failed (unspecified error)
復制代碼
注意:xxx.xx.xx.xx為NFS服務器的ip地址
三、客戶端安裝
3.1、NFS安裝
yum -y install nfs-utils rpcbind
復制代碼
注意:如果服務器無法上網(wǎng),可以找一個能上網(wǎng)的服務器先下載相關依賴安裝包(服務器系統(tǒng)需要一致,centos6對應或者centos7對應即可)。
依賴下載命令如下:yumdownloader nfs-utils rpcbind --resolve
3.2、NFS啟動
啟動服務器:
service rpcbind restart
service nfs restart
復制代碼
設置開機啟動:
chkconfig rpcbind on
chkconfig nfs on
復制代碼
3.3、創(chuàng)建掛載點
mkdir /opt/app/uploaded-files
mount -t nfs xxx.xx.xx.xx:/opt/app/uploaded-files /opt/app/uploaded-files
復制代碼
注意:xxx.xx.xx.xx為NFS服務器的ip地址
3.3、刪除掛載點
unmount /opt/app/uploaded-files
復制代碼
3.4、驗證掛載點
df
復制代碼
或者創(chuàng)建文件進行驗證:
mkdir /opt/app/uploaded-files/test
復制代碼
然后到服務端 /opt/app/uploaded-files 目錄下,是否出現(xiàn)一個 test的文件夾即可;
3.5、設置系統(tǒng)啟動自動掛載
vi /etc/fstab
復制代碼
添加以下內容:
xxx.xx.xxx.xx:/opt/app/uploaded-files /opt/app/uploaded-files nfs rw,tcp,intr 0 1
復制代碼
注意:xxx.xx.xx.xx為NFS服務器的ip地址
好了,以上就是linux部署nfs的全過程了,就是這樣了!!!^_^
今天就先到這里了,溜了溜了溜了!!!^_^
作者:llsydn
鏈接:
https://juejin.cn/post/7088621154818064391