MacOS實(shí)現(xiàn)連接Linux NFS服務(wù)器過(guò)程
以 Ubuntu 為例。
Ubuntu 服務(wù)器端設(shè)置
1. 進(jìn)入 root 權(quán)限,安裝 NFS 服務(wù)
apt-get update apt-get install nfs-kernel-server
2. 創(chuàng)建共享目錄
mkdir /data chown nobody:nogroup /data chmod 777 /data
3. 配置 /etc/exports 文件
vi /etc/exports
添加:
/data 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
rw:讀寫(xiě)權(quán)限。sync:確保數(shù)據(jù)實(shí)時(shí)同步寫(xiě)入到磁盤(pán),防止數(shù)據(jù)丟失。insecure:允許從非特權(quán)端口發(fā)起的連接。no_subtree_check:關(guān)閉子目錄檢查,提高性能。no_root_squash:允許客戶端以 root 身份訪問(wèn)(適用特定需求)。
4. 重新加載 NFS 配置
exportfs -rav
5. 啟動(dòng)并檢查 NFS 服務(wù)
systemctl restart nfs-kernel-server systemctl enable nfs-kernel-server systemctl status nfs-kernel-server
6. 檢查共享目錄
exportfs -v
Mac 客戶端設(shè)置
在 Mac 中可以通過(guò)命令行和圖形界面連接到 NFS 服務(wù)器。
1. 通過(guò)命令行 mount 掛載
mkdir ~/NFS mount -t nfs 192.168.1.111:/data ~/NFS
2. 通過(guò)圖形界面連接到 NFS 服務(wù)器
在 Mac 上,點(diǎn)擊桌面菜單欄中的 前往 > 連接服務(wù)器。
在彈出的窗口中,在服務(wù)器地址欄輸入以下內(nèi)容:

3. 自動(dòng)掛載
打開(kāi) /etc/fstab:
vi /etc/fstab
添加:
192.168.1.100:/data /Users/your_username/NFS nfs rw,auto,nofail 0 0
即可!
常見(jiàn)問(wèn)題排查
1. 權(quán)限不足
- 確保共享目錄的權(quán)限適配你的需求(如 777 開(kāi)放權(quán)限)。
- 檢查 Mac 客戶端用戶是否有寫(xiě)權(quán)限。
2. 防火墻問(wèn)題
在 Ubuntu 上允許 NFS 服務(wù)通過(guò)防火墻:
ufw allow from 192.168.1.0/24 to any port nfs ufw allow from 192.168.2.0/24 to any port nfs
3. 掛載失敗
- 確保 Mac 可以 ping 通 Ubuntu。
- 確認(rèn) /etc/exports 文件中配置無(wú)誤。
4. 多個(gè)子網(wǎng)
如果客戶端所屬多個(gè)子網(wǎng)網(wǎng)段,需將每個(gè)網(wǎng)段都寫(xiě)上.
/data 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash) /data 192.168.2.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
5. insecure 參數(shù)未配置
如果 MacOS 訪問(wèn)不到,切記需要將 insecure 參數(shù)加上。這個(gè)問(wèn)題很多同學(xué)都遇到過(guò),可以展開(kāi)詳細(xì)的說(shuō)說(shuō)。
insecure 的作用
insecure 是 macOS 掛載 NFS 時(shí)的關(guān)鍵配置,特別是使用 Finder 掛載。如果沒(méi)有這個(gè)選項(xiàng),macOS 使用的高端口會(huì)被服務(wù)器拒絕,從而導(dǎo)致掛載失敗。
默認(rèn)情況下,NFS 服務(wù)器只接受從 特權(quán)端口(小于1024) 發(fā)起的連接。這是因?yàn)橹挥?root 用戶能夠使用特權(quán)端口,從而防止普通用戶模擬特權(quán)連接。
添加 insecure 后,NFS 服務(wù)器會(huì)接受來(lái)自 非特權(quán)端口(大于1024) 的連接。這是為了兼容一些客戶端(例如 macOS Finder)在非特權(quán)端口發(fā)起的請(qǐng)求。
insecure 的潛在安全問(wèn)題
繞過(guò)端口限制:
- 默認(rèn)情況下,要求客戶端使用特權(quán)端口是一種簡(jiǎn)單的安全措施,可以減少普通用戶偽裝成受信任客戶端的風(fēng)險(xiǎn)。
- 啟用 insecure 后,攻擊者可以從非特權(quán)端口發(fā)起請(qǐng)求,更容易偽造連接。
暴露于惡意客戶端:
- 如果你的網(wǎng)絡(luò)環(huán)境不安全(如公網(wǎng)或存在不受信任的設(shè)備),啟用 insecure 可能會(huì)允許未經(jīng)授權(quán)的客戶端連接并訪問(wèn)數(shù)據(jù)。
結(jié)合其他不安全配置的風(fēng)險(xiǎn):
- 如果同時(shí)啟用了 no_root_squash,惡意客戶端可能以 root 身份訪問(wèn)共享目錄,導(dǎo)致數(shù)據(jù)被修改或刪除。
何時(shí)使用 insecure 是可以接受的?
在以下場(chǎng)景中,insecure 是可以接受的:
內(nèi)部網(wǎng)絡(luò)環(huán)境:
- 如果你的 NFS 服務(wù)器和客戶端在一個(gè)受信任的局域網(wǎng)中,且沒(méi)有外部訪問(wèn)(如防火墻限制),使用insecure 是可以接受的。
兼容特定客戶端:
- 一些客戶端(如 macOS Finder)需要使用非特權(quán)端口才能掛載 NFS,因此 insecure 是必需的。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux中Curl參數(shù)詳解實(shí)踐應(yīng)用
在現(xiàn)代網(wǎng)絡(luò)開(kāi)發(fā)和運(yùn)維工作中,curl 命令是一個(gè)不可或缺的工具,它是一個(gè)利用 URL 語(yǔ)法在命令行下工作的文件傳輸工具,支持多種協(xié)議,如 HTTP、HTTPS、FTP 等,本文給大家介紹了Linux中Curl參數(shù)詳解實(shí)踐應(yīng)用,需要的朋友可以參考下2025-01-01
詳解Centos/Linux下調(diào)整分區(qū)大小(以home和根分區(qū)為例)
本篇文章主要介紹了Centos/Linux下調(diào)整分區(qū)大?。ㄒ詇ome和根分區(qū)為例),具有一定的參加價(jià)值,有需要的同學(xué)可以了解一下2017-06-06
Linux系統(tǒng)下Tomcat8啟動(dòng)速度很慢的解決方法
這篇文章主要給大家介紹了關(guān)于在Linux系統(tǒng)下Tomcat8啟動(dòng)速度很慢的解決方法,需要的朋友可以參考下2017-08-08
Ubuntu 16.04與Apache虛擬主機(jī)配置的步驟詳解
這篇文章主要給大家介紹了關(guān)于Ubuntu 16.04與Apache虛擬主機(jī)配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ubuntu16.04系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們來(lái)一起看看吧。2018-04-04

