1. 程式人生 > >nfs網路共享檔案設定

nfs網路共享檔案設定

轉自:這裡寫連結內容
mount.nfs: access denied by server while mounting 一個解決辦法

這兩天在搭建嵌入式開發環境,配置好NFS伺服器後,遇到了一個很糾結的錯誤
使用 mount -t nfs 127.0.0.1:/home/lzgonline/rootfs /mnt 和 mount -t nfs 192.168.1.9:/home/lzgonline/rootfs /mnt 本機掛載nfs則沒有問題,然而使用 mount -t nfs 192.168.3.12:/home/lzgonline/rootfs /mnt 時卻出現了問題,導致開發板無法通過nfs掛載啟動,其中192.128.3.12 和 192.128.1.9(即nfs伺服器)之間建立了對映(DMZ)關係。
mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
百度、谷歌了很久,大部分都說是許可權設定有問題,其實資料夾許可權都設為777了,許可權上都沒問題,hosts.deny和hosts.allow都保留預設設定,防火牆也關了,該設定的都設定了,但還是被拒絕,很是鬱悶,就在一籌莫展的時候,通過檢視一些linux技術論壇後逐漸找到了問題所在。
首先使用命令查看出錯日誌檔案
[root@lzgonline init.d]# cat /var/log/syslog | grep mount
Jun 29 00:49:04 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1689
Jun 29 00:51:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1710
Jun 29 01:02:17 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1916
Jun 29 01:09:51 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2157
Jun 29 01:17:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2318

從出錯日誌可以看出,mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs 被拒絕的原因是因為使用了非法埠,功夫總沒白費,終於在一個linux技術論壇上找到了答案:

I googled and found that since the port is over 1024 I needed to add the “insecure” option to the relevant line in /etc/exports on the server. Once I did that (and ran exportfs -r), the mount -a on the client worked.

//如果埠號大於1024,則需要將 insecure 選項加入到配置檔案(/etc/exports)相關選項中mount客戶端才能正常工作:

檢視 exports 手冊中關於 secure 選項說明也發現確實如此

[root@lzgonline init.d]# man exports

secure,This option requires that requests originate on an Internet port less than IPPORT_RESERVED (1024). This option is on by default. To turn it off, specify insecure.

//secure 選項要求mount客戶端請求源埠小於1024(然而在使用 NAT 網路地址轉換時埠一般總是大於1024的),預設情況下是開啟這個選項的,如果要禁止這個選項,則使用 insecure 標識

修改配置檔案/etc/exports,加入 insecure 選項

/home/lzgonline/rootfs *(insecure,rw,async,no_root_squash)

儲存退出

然後重啟nfs服務:service nfs restart

然後問題就解決了

通過讀博主的這篇部落格,我收益匪淺,以往遇到問題,就是單純的複製貼上錯誤資訊,然後在搜尋引擎上搜索,但是很多時候都找不到根本的原因,通過這篇文章,我意識到遇到問題不能總是依賴搜尋引擎,而是應該應用ubuntu的一些特性,日誌等來自己尋找問題的根源;