在Windows和Ubuntu上使用TFTP和NFS
零、介紹
最近在玩Linux開發板,在開發的過程中發現需要用到tftp和nfs來幫助傳輸文件,故此記錄如何使用這兩種軟件。
TFTP(Trivial File Transfer Protocol) :是一種簡化的文件傳輸協議,設計用于在客戶端和服務器之間快速傳輸文件。輕量級、協議簡單、代碼量小,適合嵌入式系統、路由器等,基于 UDP 協議,數據明文傳輸,僅支持基本的文件上傳和下載。
NFS(Network File System):是一種分布式文件系統協議,允許不同計算機通過網絡共享文件,如同訪問本地磁盤。允許用戶直接讀寫遠程文件而無需顯式下載或上傳,通常使用 TCP協議,具備權限管理功能,可在 Linux、Unix、Windows 等系統間共享文件。
壹、Ubuntu上的TFTP
1. 安裝
sudo apt-get install tftpd-hpa tftp-hpa
其中,tftpd-hpa為服務器,tftp-hpa為客戶端。
(可選)要是可以,順便安裝網絡工具,方便檢查程序使用情況:
sudo apt install net-tools
2. TFTP服務器
2.1 配置TFTP服務器
編輯
sudo vi /etc/default/tftpd-hpa
文件路徑:/etc/default/tftpd-hpa
# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"
# TFTP_DIRECTORY="/srv/tftp"
TFTP_DIRECTORY="/home/yu/share/tftp"
TFTP_ADDRESS="0.0.0.0:69"
# TFTP_OPTIONS="--secure"
TFTP_OPTIONS="-c -s -l" # -l監聽模式,-c允許創建文件,-s指定根目錄
其中,#
開頭的為注釋,TFTP_DIRECTORY
為TFTP服務器的共享目錄,我的已設置為/home/yu/share/tftp
,此目錄建議設置開放的權限避免讀寫權限問題,TFTP_ADDRESS
為TFTP服務器監聽的IP和端口,TFTP_OPTIONS
為TFTP的配置參數,建議設置為"-c -s -l"
。
共享目錄建議配置為開放權限
sudo mkdir /home/yu/share/tftp # 創建目錄
sudo chmod 777 /home/yu/share/tftp # 配置開放權限
2.2 重啟TFTP服務器
編輯配置文件之后需要重啟TFTP服務器以使配置生效
sudo systemctl restart tftpd-hpa
2.3 檢查TFTP服務器
要是報錯,很有可能是端口號被占用了,可以在配置文件中修改端口號,或者可以使用如下命令查看端口占用情況,此條命令也可以檢查TFTP服務器是否在運行
sudo netstat -a | grep tftp
正常的結果
yu@Yubuntu:~$ sudo netstat -a | grep tftp
udp 0 0 0.0.0.0:tftp 0.0.0.0:*
2.4 配置TFTP服務器開機啟動
要是想讓TFTP服務器開機自啟,可以使用如下命令
sudo systemctl enable tftpd-hpa
3. TFTP客戶端
使用TFTP客戶端連接TFTP服務器進行文件傳輸
3.1 試驗環境
建議在一個有文件的目錄下執行此試驗 ~
我的目錄
yu@Yubuntu:~/test$ ls -l
總計 4
-rw-rw-r-- 1 yu yu 11 3月 26 12:02 1.txt
3.2 使用TFPT連接到服務器
服務器在本機,故IP為127.0.0.1
tftp 127.0.0.1
運行結果
yu@Yubuntu:~$ tftp 127.0.0.1
tftp>
3.2 使用TFPT上傳文件
命令
put 文件名
舉例
yu@Yubuntu:~/test$ tftp 127.0.0.1
tftp> put 1.txt
tftp>
查看服務器上的共享目錄
yu@Yubuntu:~/share/tftp$ ls -l
總計 4
-rw-rw-rw- 1 tftp tftp 11 3月 26 15:36 1.txt
上傳成功
3.3 使用TFPT下載文件
我們在TFTP服務器上的共享目錄中創建一個文件
yu@Yubuntu:~/share/tftp$ vi 2.txt
yu@Yubuntu:~/share/tftp$ cat 2.txt
Hello Yumizie
yu@Yubuntu:~/share/tftp$
從服務器上下載文件
命令
get 文件名
舉例
yu@Yubuntu:~/test$ tftp 127.0.0.1
tftp> get 2.txt
tftp> q
yu@Yubuntu:~/test$ cat 2.txt
Hello Yumizie
yu@Yubuntu:~/test$
成功,使用q
命令退出TFTP客戶端
貳、Ubuntu上的NFS
1. 安裝
sudo apt-get install nfs-kernel-server
2. NFS服務器
2.1 配置NFS服務器
NFS 的配置文件是/etc/exports
,每一行定義一個共享目錄及其訪問權限。
編輯:
sudo vi /etc/exports
在末尾追加如下配置行:
/home/yu/share/nfs *(rw,sync,no_subtree_check,no_root_squash)
其中:
/home/yu/share/nfs
為共享目錄位置,可以根據自己的需要進行更改;
*
表示允許所有 IP/主機名 訪問;
rw
表示允許客戶端對共享目錄進行 讀寫操作(只讀ro
);
sync
表示要求所有寫入操作同步到磁盤,確保數據一致性,但會降低性能(異步模式使用async
,速度更快但存在數據丟失風險);
no_subtree_check
表示禁用子樹檢查,子樹檢查會驗證共享目錄的父目錄是否存在,若父目錄被刪除,子目錄訪問會被拒絕,禁用后可提升性能(需要父目錄穩定);
no_root_squash
表示不禁用root權限映射,一般NFS會把客戶端的root用戶映射為服務器的nobody用戶,來增強安全性,此設置允許客戶端的root用戶以真實root 權限訪問共享目錄,可能有安全風險。
創建共享目錄并分配權限
sudo mkdir -p /home/yu/share/nfs # 創建目錄
sudo chmod -R 777 /home/yu/share/nfs # 分配權限
2.2 重啟NFS服務器
重啟NFS服務器,以使配置生效
sudo systemctl restart nfs-kernel-server
-> 以后若是遇到問題,重啟NFS服務能解決大部分問題
2.3 檢查NFS服務器
可以使用如下命令查看端口占用情況,檢查NFS是否在運行
netstat -a | grep nfs
或者使用服務管理器檢查
systemctl status nfs-server
顯示active (exited)
即可
2.4 設置開機自動啟動NFS服務器
rpcbind
負責將 RPC(遠程過程調用)程序號映射到網絡端口,是 NFS 服務的基礎,故我們需要讓它跟NFS服務同時啟動。
sudo systemctl start rpcbind # 啟動rpcbind服務
sudo systemctl enable rpcbind # 設置rpcbind服務開機自啟
sudo systemctl start nfs-server # 啟動NFS服務器
sudo systemctl enable nfs-server # 設置NFS服務器開機自啟
檢查設置狀態
sudo systemctl is-enabled rpcbind # 打印enabled
sudo systemctl is-enabled nfs-server # 打印enabled
2.5 NFS服務器的其他說明
Ubuntu 17.10 之后的版本,NFS 服務默認僅支持協議 3和協議 4。,若要使用協議 2,需要在/etc/default/nfs-kernel-server
文件末尾加一句如下內容:
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
然后重啟NFS服務器即可。
3. NFS客戶端
3.1 試驗環境
在使用客戶端之前,為了方便測試,我們先在NFS服務器共享目錄中添加一點東西
yu@Yubuntu:~/share/nfs$ vi 1.txt
yu@Yubuntu:~/share/nfs$ cat 1.txt
Hello NFS
yu@Yubuntu:~/share/nfs$
3.2 列出NFS服務器
可以列出服務器上共享的目錄:
showmount -e <服務器IP地址>
示例:
yu@Yubuntu:~$ showmount -e 127.0.0.1
Export list for 127.0.0.1:
/home/yu/share/nfs *
yu@Yubuntu:~$
3.3 掛載NFS服務器
使用如下命令掛載NFS服務器的工作目錄到/mnt
(/mnt 一般是用來做臨時掛載的目錄)
sudo mount -t nfs 127.0.0.1:/home/yu/share/nfs /mnt
其中
mount
為Linux系統中用于掛載文件系統的核心命令。
-t nfs
表示指定掛載的文件系統類型為NFS。
127.0.0.1:/home/yu/share/nfs
為NFS服務器的地址和要共享的目錄路徑。
/mnt
為本地掛載點,掛載后遠程文件系統會在此路徑下被共享。
3.4 檢查掛載情況
檢查目錄中的文件是否與NFS服務器工作目錄中的一致
yu@Yubuntu:~$ ls /mnt/
1.txt
yu@Yubuntu:~$ cat /mnt/1.txt
Hello NFS
yu@Yubuntu:~$
說明掛載成功!
3.5 取消掛載
sudo umount /mnt
叁、Windows上的TFTP
1. 軟件的下載和安裝
軟件:tftpd64
網站地址:https://pjo2.github.io/tftpd64/
1.1 下載
下載地址:https://bitbucket.org/phjounin/tftpd64/downloads/
點擊tftpd64.464.zip
即可開始下載
1.2 解壓運行
解壓得到的文件,運行tftpd64.exe
2. 軟件的使用
在主界面中,Current Directory 為當前的工作目錄,文件的上傳、下載和共享都在這個目錄中,Server interfaces為TFTP服務器監聽的IP,要共享給哪個設備即選擇與共享設備所在網段一致的IP。
軟件打開即啟動了TFTP服務器,我們可以在Ubuntu上試一試。
2.1 試驗環境準備
在我的當前的工作目錄D:\y17mm\Desktop\Ubuntu\tftpd
中創建一個文本文件,寫入內容:
D:\y17mm\Desktop\Ubuntu\tftpd>tree /f
卷 井中月 的文件夾 PATH 列表
卷序列號為 FE8F-1AB3
D:.tftpd32.initftpd64.exeTFTPWindows.txt沒有子文件夾D:\y17mm\Desktop\Ubuntu\tftpd>type TFTPWindows.txt
Hello
Windows
2.2 作為TFTP服務器使用
打開tftpd64主界面后即開啟了TFTP服務器,我們到Ubuntu中使用TFTP客戶端上傳和下載文件:
2.2.1 Ubuntu客戶端
yu@Yubuntu:~/test$ cat 1.txt
Hello TFTP
yu@Yubuntu:~/test$ tftp 192.168.146.1
tftp> put 1.txt
tftp> get TFTPWindows.txt
tftp> q
yu@Yubuntu:~/test$ cat TFTPWindows.txt
Hello
Windowsyu@Yubuntu:~/test$
上傳下載都沒問題的。
2.2.2 Windows服務器
服務器這邊已收到來自客戶端的文件,而且也是可以正常查看上傳到服務器的文件的。
2.3 作為TFTP客戶端使用
開啟Ubuntu上的TFTP服務器,目前服務器上只有兩個文件:
yu@Yubuntu:~/share/tftp$ ls
1.txt 2.txt
yu@Yubuntu:~/share/tftp$ cat 2.txt
Hello Yumizie
yu@Yubuntu:~/share/tftp$ sudo systemctl restart tftpd-hpa
[sudo] yu 的密碼:
yu@Yubuntu:~/share/tftp$ sudo netstat -a | grep tftp
udp 0 0 0.0.0.0:tftp 0.0.0.0:*
yu@Yubuntu:~/share/tftp$
2.3.1 從Ubuntu的TFTP服務器上下載文件
點擊“Tftp Client”選項卡,輸入好TFTP服務器IP地址和端口號(端口號默認為 69),“Local File”為保存到本機的位置,“Remote File”為服務器上的文件名,點擊“Get”開始下載。
下載完成后,會彈出下載結果,同時把下載好的文件保存在“Local File”指定的位置,我們雙擊打開可以看到文件內容與服務器上的一致。
2.3.2 把文件上傳到Ubuntu的TFTP服務器上
與文件下載一樣,設置好服務器IP和端口,“Local File”為將要上傳的本機文件,“Remote File”為上傳到服務器上的文件名,點擊“Put”開始上傳。
上傳完成后,檢查服務器上的文件:
yu@Yubuntu:~/share/tftp$ ls -l
總計 12
-rw-rw-rw- 1 tftp tftp 11 3月 26 15:36 1.txt
-rw-rw-r-- 1 yu yu 14 3月 26 15:39 2.txt
-rw-rw-rw- 1 tftp tftp 14 3月 27 12:05 TFTPWindows.txt
yu@Yubuntu:~/share/tftp$ cat TFTPWindows.txt
Hello
Windowsyu@Yubuntu:~/share/tftp$
可以看到,服務器上多出了一個文件“TFTPWindows.txt”,上傳成功~
肆、Windows上的NFS
NFS服務器: Windows Server 2016 及以上原生支持 NFS 服務器角色,可通過 “文件和存儲服務” 中的 “NFS 服務器” 進行安裝。Windows 10/11 家庭版和專業版默認不支持 NFS 服務器角色。這些版本需要使用第三方工具(如 haneWIN NFS Server 或 Vagrant WinNFSd)來部署 NFS 服務器。
NFS客戶端: Windows Server 2008 R2 及更高版本原生支持 NFS 客戶端,需通過 “添加角色和功能” 手動安裝。Windows 10/11 專業版、企業版支持 NFS 客戶端,但家庭版不包含此功能。
總之,Windows上有幾款NFS相關的軟件,有的是系統自帶的,有的是第三方的,各個支持情況不一……
1. Windows上自帶的NFS軟件
1.1 Windows(桌面版)NFS客戶端安裝
我的Windows11專業版,在“設置”->“系統”->“可選功能”->“更多Windows功能”->“NFS服務”中有自帶的NFS客戶端和管理工具,若要啟用,勾選后點確定即可。Windows 客戶端默認支持 NFSv3,不支持 NFSv4。
其中,NFS客戶端提供基礎的NFS客戶端功能,管理工具提供圖形化的管理界面方便我們配置。
1.2 Windows NFS客戶端的使用
1.2.1 查看遠程電腦NFS共享的目錄
這條命令的用法與Linux上的用法一致,列出服務器上共享的所有目錄:
showmount -e 遠程電腦的IP
示例
C:\Users\y17mm>showmount -e 192.168.146.131
導出列表在 192.168.146.131:
/home/yu/share/nfs *C:\Users\y17mm>
1.2.2 掛載NFS服務器
命令行方式
命令格式:
mount -o anon \\<服務器IP>\<共享目錄> <盤符>:
-o anon
:匿名訪問,即無需身份驗證,Windows 客戶端默認不發送匿名請求,需顯式指定此選項以通過身份驗證。
示例:
C:\Users\y17mm>mount -o anon \\192.168.146.131\home\yu\share\nfs Z:
Z: 現已成功連接到 \\192.168.146.131\home\yu\share\nfs命令已成功完成。C:\Users\y17mm>
圖形化方式
打開“此電腦”,在工具欄中點擊“…”,選擇“映射網絡驅動器”,在彈出的窗口中輸入\\服務器\共享路徑
,點擊完成即可。
這邊我掛載的是我Ubuntu系統中的NFS服務器共享的目錄,掛載成功后會自動打開:
1.2.3 檢查掛載
執行上面的命令行掛載或圖形化掛載的操作之后,打開“此電腦”:
可以在“此電腦”中看到對應的網絡位置。
打開后,里面的文件就像本地文件一樣,可以很方便的讀寫。
1.2.4 取消掛載
命令行方式(推薦)
格式
umount <盤符>:
示例
C:\Users\y17mm>umount z:正在斷開連接 Z: \\192.168.146.131\home\yu\share\nfs
命令已成功完成。C:\Users\y17mm>
圖形化方式
在需要取消掛載的磁盤上“右鍵”,選擇“斷開連接”即可。
1.3 Windows Server NFS服務器和NFS客戶端安裝
命令行方式
命令:
Import-Module ServerManager
Add-WindowsFeature FS-NFS-Service
Import-Module NFS
圖形化方式
打開“服務器管理器”,點擊“添加角色和功能”,點擊“基于角色的安裝”,點擊“文件和存儲服務”,選擇“NFS 服務器”。
跟Windows(桌面版)一樣的,管理工具提供圖形化的管理界面方便我們配置,NFS服務器、NFS客戶端提供基礎的NFS能力。
1.4 Windows Server NFS服務器的使用
1.4.1 創建NFS服務器共享目錄
環境
在我的Windows Server 2025上,在C盤有兩個共享文件夾,內容如下:
圖形化方式
在“服務器管理器”中,找到左邊的“文件和存儲服務”,找到“共享”,點擊“若要創建文件共享,請啟動新加共享向導。”,在彈出的窗口中選擇“NFS 共享 - 快速”,下一步,選擇“鍵入自定義路徑”,輸入我的第一個文件夾路徑C:\nfs
。
共享名稱保持默認就好,當然,也可以更改成你喜歡的。
身份驗證我們依然選擇比較開放的方式,勾選“無服務器身份驗證”,勾選“啟用未映射的用戶訪問”。
共享權限這邊我們需要先點個“添加”,在彈出的面板中選擇對所有機器生效的“All Machines”,權限設置為“讀/寫”權限,點“添加”完成設置。
這樣做的好處是快速上手NFS,后面有需要再改。但是注意別在不信任的網絡上這樣操作(比如公網)。
創建NFS服務器共享目錄完成~
命令行方式
格式
New-NfsShare -Name <共享名稱> -Path <共享目錄> -Permission <權限> -AllowRootAccess <布爾值-是否允許以root權限訪問> -EnableUnmappedAccess <布爾值-是否未映射的用戶訪問>
示例
PS C:\Users\Administrator> New-NfsShare -Name "win_nfs_share" -Path "c:\ymm" -Permission "readwrite" -AllowRootAccess $true -EnableUnmappedAccess $true
警告: 共享上已啟用未映射的 Unix 用戶訪問或匿名訪問,但是 AUTH_SYS 身份驗證協議已禁用。服務器已在共享上自動啟用
AUTH_SYS。Name Availability Path
---- ------------ ----
win_nfs_share Standard (not clustered) c:\ymmPS C:\Users\Administrator>
1.4.2 驗證NFS服務器共享目錄是否設置成功
命令格式
Get-NfsShare -Name <共享名稱>
示例
PS C:\Users\Administrator> Get-NfsShare -Name "nfs"Name Availability Path
---- ------------ ----
nfs Standard (not clustered) C:\nfsPS C:\Users\Administrator> Get-NfsShare -Name "win_nfs_share"Name Availability Path
---- ------------ ----
win_nfs_share Standard (not clustered) c:\ymmPS C:\Users\Administrator>
1.4.3 使用Ubuntu掛載Windows NFS服務器
準備掛載
yu@Yubuntu:~$ showmount -e 192.168.146.136 # 顯示Windows NFS服務器上所有的共享目錄
Export list for 192.168.146.136:
/nfs (everyone)
/win_nfs_share (everyone)
yu@Yubuntu:~$ sudo mkdir /mnt/windows1 /mnt/windows2 # 創建掛載目錄,待會兒掛到這兩個文件夾上
[sudo] yu 的密碼:
yu@Yubuntu:~$
掛載第一個目錄
yu@Yubuntu:~$ sudo mount -t nfs 192.168.146.136:/nfs /mnt/windows1 # 掛載第一個共享目錄
yu@Yubuntu:~$ cd /mnt/windows1
bash: cd: /mnt/windows1: 權限不夠
yu@Yubuntu:~$ su
密碼:
root@Yubuntu:/home/yu# cd /mnt/windows1
root@Yubuntu:/mnt/windows1# ls
windows_nfs_server.txt
root@Yubuntu:/mnt/windows1# cat windows_nfs_server.txt
Windows Server 2025
root@Yubuntu:/mnt/windows1#
成功~
掛載第二個目錄
yu@Yubuntu:~$ sudo mount -t nfs 192.168.146.136:/win_nfs_share /mnt/windows2 # 掛載第二個共享目錄
[sudo] yu 的密碼:
yu@Yubuntu:~$ cd /mnt/windows2
-bash: cd: /mnt/windows2: 權限不夠
yu@Yubuntu:~$ su
密碼:
root@Yubuntu:/home/yu# cd /mnt/windows2
root@Yubuntu:/mnt/windows2# ls
yu.txt
root@Yubuntu:/mnt/windows2# cat yu.txt
yu nfs windows
root@Yubuntu:/mnt/windows2#
成功~
取消掛載
yu@Yubuntu:~$ sudo umount /mnt/windows1
yu@Yubuntu:~$ sudo umount /mnt/windows2
1.4.4 使用Windows NFS客戶端掛載Windows NFS服務器
與上文的“1.2.2 掛載NFS服務器”部分步驟一致,不一樣的是這里可能會彈出“輸入網絡憑據”的認證窗口,需要輸入一下Windows Server的賬號和密碼,例如我這里需要輸入賬號:Administrator,密碼:Qwe123++。
掛載后能正常訪問~
2. Windows上的第三方NFS軟件
客戶端在非服務器版本上有的,若是家庭版,可以改個激活碼轉換成專業版,這里就不介紹了,這里主要介紹NFS服務器軟件。
2.1 haneWIN
2.1.1 下載安裝
haneWIN 網站地址:https://www.hanewin.net/nfs-e.htm
不太喜歡安裝的,這里需要下載兩個文件,一個是程序包,一個語言包。
下載后得到這兩個文件:
其中,“nfs1268.zip”為程序包,“nfs-languages.zip”為語言包,解壓“nfs1268.zip”到當前目錄,會得到一個“nfsd”。
先使用壓縮軟件打開另外一個文件“nfs-languages.zip”,然后進入解壓得到的“nfsd”,進入到里面的“languages”文件夾內,把“nfs-languages.zip”中的“Simplified_Chinese.ini”拖入。
然后我們返回上一層,找到nfsd文件夾下的“nfssrv-64.exe”,啟動!
點擊“Edit”,選擇“Preferences”,切換到“Language”選項卡,點擊“簡體中文”,點擊“確定”,這樣界面就變成中文的了~
2.1.2 配置服務器
創建共享文件夾
我在C盤下創建了個文件夾“nfs_hane”。
配置共享文件夾
回到haneWIN,點擊“編輯”,選擇“首選項”,切換到“導出”面板,點擊“編輯輸出文件”,開始編輯共享目錄條目。
編輯框中的每一行代表一個共享目錄,“#”開頭的為注釋,可以不用管它,我們把原來的一些共享目錄條目全部刪去,寫入如下條目:
c:\nfs_hane -public -name:nfs_hw
其中,c:\nfs_hane
為共享的文件夾路徑,我的就剛剛創建的在C盤的文件夾“nfs_hane”,-public
表示為公共權限,-name:nfs_hw
為設置共享名稱為“nfs_hw”。
大家根據自己的需要進行更改,更改完成后點“保存”,點“確定”關掉“首選項”窗口。
重啟haneWIN
點“文件”,選擇“退出”,再重新雙擊“nfssrv-64.exe”,啟動!
2.1.3 檢查NFS服務器
haneWIN重啟后,設置生效,我們到Ubuntu下驗證一下。
yu@Yubuntu:~$ showmount -e 192.168.146.128
Export list for 192.168.146.128:
/nfs_hw -public
yu@Yubuntu:~$ sudo mount -t nfs -o nolock 192.168.146.128:/nfs_hw /mnt
yu@Yubuntu:~$ cd /mnt/
yu@Yubuntu:/mnt$ ls
hw.txt
yu@Yubuntu:/mnt$ cat hw.txt
hw_nfs
yu@Yubuntu:/mnt$
能正常訪問NFS服務器上的共享目錄,成功~
2.2 WinNFSd
支持NFS V3,Windows掛載測試成功,Ubuntu掛載測試提示“clnt_create: RPC: Can’t decode result”和“輸入/輸出錯誤”。
2.2.1 下載
開源地址:https://github.com/winnfsd/winnfsd/releases
點擊“WinNFSd.exe”即可開始下載。
2.2.2 配置
把“WinNFSd.exe”放到一個文件夾中,在此文件夾中新建文本文件改文件名和后綴為“start.bat”,寫入如下內容:
WinNFSd.exe -addr 0.0.0.0 %cd% /nfs
其中,-addr 0.0.0.0
為在所有的網卡上啟用監聽,%cd%
表示當前目錄,/nfs
為共享名稱。
2.2.3 運行
雙擊“start.bat”啟動NFS服務器。
2.2.4 測試掛載服務器(Windows)
命令:
mount -o anon \\127.0.0.1\nfs Z:
2.2.5 關閉服務器
在所有客戶端取消掛載后,在由“start.bat”打開的小黑窗中輸入quit
退出NFS服務器。
若是還有掛載的NFS客戶端,它會要求你確認的。
2.3 FreeNFS
官網:https://freenfs.sourceforge.net/
開源地址:https://github.com/digitalarch/FreeNFS
開源免費,支持 NFS v2/v3,已停止維護(最后版本 2012 年),不建議用于生產環境。
2.3.1 下載和運行
下載頁鏈接:http://sourceforge.net/projects/freenfs/files/latest/download
下載后得到一個文件“FreeNFS.exe”,雙擊后運行,運行后無窗口,需要點開任務欄才能看到。
2.3.2 掛載測試
Windows 掛載失敗
C:\Users\y17mm>showmount -e 192.168.146.137
RPC: 程序不可用RPC: 端口映射器故障 - RPC: 已超時。
C:\Users\y17mm>mount -o anon \\192.168.146.137\ Z:
網絡錯誤 - 53有關詳細信息,請鍵入“NET HELPMSG 53”。C:\Users\y17mm>
Ubuntu掛載失敗
yu@Yubuntu:~$ showmount -e 192.168.146.137
rpc mount export: RPC: Procedure unavailable
yu@Yubuntu:~$ sudo mount -v -t nfs -o vers=3,proto=tcp,sec=none,timeo=20,soft,intr 192.168.146.137:/ /mnt
[sudo] yu 的密碼:
mount.nfs: timeout set for Sat Mar 29 02:07:33 2025
mount.nfs: trying text-based options 'vers=3,proto=tcp,sec=none,timeo=20,soft,intr,addr=192.168.146.137'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.146.137 prog 100003 vers 3 prot TCP port 2049
mount.nfs: portmap query failed: RPC: Authentication error
mount.nfs: access denied by server while mounting 192.168.146.137:/
yu@Yubuntu:~$
2.3.4 其他版本
FreeNFS還有個專門為嵌入式做的版本,叫“FreeNFSE”
下載地址:https://sourceforge.net/projects/freenfs/files/Current%20Version/Embedded%20System%20Version/
下載完成后得到一個壓縮包“FreeNFSE Release 12-12-12.rar”,解壓后找到“FreeNFSE.exe”運行,一樣的是在狀態欄。
再次嘗試使用Windows和Ubuntu去鏈接,一樣的結果,仍然不可用,可能是版本不對或者其他原因,歡迎討論。
伍、參考資料
- 創建 NFS 共享(NFS)| Microsoft Learn — New-NfsShare (NFS) | Microsoft Learn:https://learn.microsoft.com/en-us/powershell/module/nfs/new-nfsshare?view=windowsserver2025-ps
- 部署網絡文件系統:https://learn.microsoft.com/zh-cn/windows-server/storage/nfs/deploy-nfs
- Tftpd64:https://pjo2.github.io/tftpd64/
- windows上搭建NFS服務器–haneWIN:https://blog.csdn.net/paladinzh/article/details/96162270
- WinNFSd:https://github.com/winnfsd/winnfsd
- 歡迎來到 FreeNFS!:https://freenfs.sourceforge.net/
- FreeNFS:https://sourceforge.net/projects/freenfs/
- 11.文件系統 - NFS - 《RT-Thread編程手冊》 - 書棧網 · BookStack:https://www.bookstack.cn/read/rtthread-manual-doc/11.7.md