【软件】在Windows和Ubuntu上使用TFTP和NFS

在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  326 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  326 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
tftpd64主界面

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  326 15:36 1.txt
-rw-rw-r-- 1 yu   yu   14  326 15:39 2.txt
-rw-rw-rw- 1 tftp tftp 14  327 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。
Windows自带NFS客户端
其中,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 检查挂载

执行上面的命令行挂载或图形化挂载的操作之后,打开“此电脑”:
已看到NFS位置
可以在“此电脑”中看到对应的网络位置。
文件能直接读取和写入
打开后,里面的文件就像本地文件一样,可以很方便的读写。

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

图形化方式
Windows Server 自带的NFS服务器和NFS客户端
打开“服务器管理器”,点击“添加角色和功能”,点击“基于角色的安装”,点击“文件和存储服务”,选择“NFS 服务器”。
安装的内容
跟Windows(桌面版)一样的,管理工具提供图形化的管理界面方便我们配置,NFS服务器、NFS客户端提供基础的NFS能力。

1.4 Windows Server NFS服务器的使用
1.4.1 创建NFS服务器共享目录

环境
在我的Windows Server 2025上,在C盘有两个共享文件夹,内容如下:
NFS服务器环境1
NFS服务器环境2

图形化方式
在“服务器管理器”中,找到左边的“文件和存储服务”,找到“共享”,点击“若要创建文件共享,请启动新加共享向导。”,在弹出的窗口中选择“NFS 共享 - 快速”,下一步,选择“键入自定义路径”,输入我的第一个文件夹路径C:\nfs
新建NFS服务器
共享名称保持默认就好,当然,也可以更改成你喜欢的。
身份验证我们依然选择比较开放的方式,勾选“无服务器身份验证”,勾选“启用未映射的用户访问”。
配置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服务器

挂载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
不太喜欢安装的,这里需要下载两个文件,一个是程序包,一个语言包。
下载haneWIN
下载后得到这两个文件:
haneWIN
其中,“nfs1268.zip”为程序包,“nfs-languages.zip”为语言包,解压“nfs1268.zip”到当前目录,会得到一个“nfsd”。
解压haneWIN
先使用压缩软件打开另外一个文件“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,点击“编辑”,选择“首选项”,切换到“导出”面板,点击“编辑输出文件”,开始编辑共享目录条目。
配置haneWIN
编辑框中的每一行代表一个共享目录,“#”开头的为注释,可以不用管它,我们把原来的一些共享目录条目全部删去,写入如下条目:

c:\nfs_hane -public -name:nfs_hw

其中,c:\nfs_hane为共享的文件夹路径,我的就刚刚创建的在C盘的文件夹“nfs_hane”,-public表示为公共权限,-name:nfs_hw为设置共享名称为“nfs_hw”。
大家根据自己的需要进行更改,更改完成后点“保存”,点“确定”关掉“首选项”窗口。
重启haneWIN
点“文件”,选择“退出”,再重新双击“nfssrv-64.exe”,启动!
重启haneWIN

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”即可开始下载。
WinNFSd.exe下载

2.2.2 配置

把“WinNFSd.exe”放到一个文件夹中,在此文件夹中新建文本文件改文件名和后缀为“start.bat”,写入如下内容:
WinNFSd.exe配置

WinNFSd.exe -addr 0.0.0.0 %cd% /nfs

其中,-addr 0.0.0.0为在所有的网卡上启用监听,%cd%表示当前目录,/nfs为共享名称。

2.2.3 运行

双击“start.bat”启动NFS服务器。
启动WinNFSd.exe

2.2.4 测试挂载服务器(Windows)

命令:

mount -o anon \\127.0.0.1\nfs Z:

测试挂载WinNFSd.exe

2.2.5 关闭服务器

在所有客户端取消挂载后,在由“start.bat”打开的小黑窗中输入quit退出NFS服务器。
退出WinNFSd.exe
若是还有挂载的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”,双击后运行,运行后无窗口,需要点开任务栏才能看到。
运行FreeNFS

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”运行,一样的是在状态栏。
运行FreeNFSE
再次尝试使用Windows和Ubuntu去链接,一样的结果,仍然不可用,可能是版本不对或者其他原因,欢迎讨论。

伍、参考资料

  1. 创建 NFS 共享(NFS)| Microsoft Learn — New-NfsShare (NFS) | Microsoft Learn:https://learn.microsoft.com/en-us/powershell/module/nfs/new-nfsshare?view=windowsserver2025-ps
  2. 部署网络文件系统:https://learn.microsoft.com/zh-cn/windows-server/storage/nfs/deploy-nfs
  3. Tftpd64:https://pjo2.github.io/tftpd64/
  4. windows上搭建NFS服务器–haneWIN:https://blog.csdn.net/paladinzh/article/details/96162270
  5. WinNFSd:https://github.com/winnfsd/winnfsd
  6. 欢迎来到 FreeNFS!:https://freenfs.sourceforge.net/
  7. FreeNFS:https://sourceforge.net/projects/freenfs/
  8. 11.文件系统 - NFS - 《RT-Thread编程手册》 - 书栈网 · BookStack:https://www.bookstack.cn/read/rtthread-manual-doc/11.7.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS判断变量是否为空的方法

在 JavaScript 中&#xff0c;判断变量是否为空需要根据不同的数据类型和具体需求来处理。以下是常见场景的解决方案&#xff1a; 1. 基础判断&#xff1a;null 或 undefined javascript if (value null || value undefined) {// 变量为空 } 或简写为&#xff1a; javasc…

Linux更换挂载nfs迁移数据流程

当前&#xff1a;原nfs&#xff08;10.16.2.1:/myData&#xff09;挂载在/myData&#xff0c;新的nfs&#xff08;10.16.2.2:/myData&#xff09;未挂载 目标&#xff1a;把旧nfs的数据迁移到新的nfs上&#xff0c;并把新nfs挂载到/myData 步骤&#xff1a; 1、新nfs挂载到一…

深入解析音频:格式、同步及封装容器

物理音频和数字音频 物理音频 定义&#xff1a;物理音频就是声音在自然界中的物理表现形式&#xff0c;本质上是一种机械波&#xff0c;通过空气或其他介质传播。例如&#xff0c;当我们说话、乐器演奏或物体碰撞时&#xff0c;都会产生振动&#xff0c;这些振动会引起周围介…

AI与.NET技术实操系列(四):使用 Semantic Kernel 和 DeepSeek 构建AI应用

1. 引言 在人工智能技术飞速发展的今天&#xff0c;大型语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为智能应用开发的核心驱动力。从智能客服到自动化内容生成&#xff0c;LLMs的应用正在深刻改变我们的工作和生活方式。 对于.NET开发者而言&#xff0c;…

导出cad实体所有信息到txt并打开(生成唯一文件名) ——c#cad二次开发

效果如下: 建议在保存时指定编码为UTF-8&#xff1a; using (StreamWriter sw new StreamWriter(filePath, false, Encoding.UTF8)) { // 写入内容 } 最终 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD…

Redis 源码硬核解析系列专题 - 第一篇:Redis源码入门与整体架构

1. 引言 Redis作为一个高性能的内存键值数据库,其源码以简洁高效著称。通过解析Redis源码,我们可以深入理解其单线程模型、事件驱动机制以及模块化设计的精髓。本篇将从Redis的源码目录结构入手,剖析其整体架构,并聚焦启动流程和事件循环的核心实现。 2. Redis源码目录结构…

异步加载+内存分析

异步加载 Resources和AB包的同步加载与异步加载对比代码&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class AsyncLoad : MonoBehaviour {// Start is called before the first frame updatev…

将视频m4s文件转换为mp4格式

将视频m4s文件转换为mp4格式 一般情况&#xff1a;偏大的文件为视频&#xff0c;偏小的文件为音频。 环境要求&#xff1a;下载并安装ffmpeg&#xff0c;并配置好环境变量&#xff0c;如下图&#xff1a; 转换代码&#xff1a; import subprocessdef merge_m4s_to_mp4(vide…

EXCEL报错:无法共享此工作薄,因表包含excel表或xml映射的解决方法

在分享工作薄是&#xff0c;如果出现了“无法共享此工作薄&#xff0c;因表包含excel表或xml映射”的报错&#xff0c;那么有两个原因&#xff1a; 1.包含Excel表格&#xff0c;这个也是相对比较常见的原因。 首先选中表格。如果你不知道表的位置在哪&#xff0c;那么在Excel左…

w2ui 水平滚动移动 虚拟列 数据丢失

https://w2ui.com/web/docs/1.5/w2grid.disableCVS https://github.com/vitmalina/w2ui/issues/1398 解决方案来源 问题现象: 窗口缩小 导致多列 出现水平滚动,滚动时触发本地样式重绘,导致record undefined,从而引发多列报错 解决方案: 使用 disableCVS : true 一次加载到d…

在ensp进行OSPF+RIP+静态网络架构配置

一、实验目的 1.Ospf与RIP的双向引入路由消息 2.Ospf引入静态路由信息 二、实验要求 需求&#xff1a; 路由器可以互相ping通 实验设备&#xff1a; 路由器router7台 使用ensp搭建实验坏境&#xff0c;结构如图所示 三、实验内容 1.配置R1、R2、R3路由器使用Ospf动态路由…

基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Mediapipe人体姿态检测原理 4.2 限定半径最近邻分类树算法原理 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 人工智能算法python程序运行环…

deep-sync开源程序插件导出您的 DeepSeek 与 public 聊天

一、软件介绍 文末提供下载 deep-sync开源程序插件导出您的 DeepSeek 与 public 聊天&#xff0c;这是一个浏览器扩展&#xff0c;它允许用户公开、私下分享他们的聊天对话&#xff0c;并使用密码或过期链接来增强 Deepseek Web UI。该扩展程序在 Deepseek 界面中添加了一个 “…

苹果签名是否一定安全呢?

苹果签名是一种数字签名技术&#xff0c;用于验证应用程序的来源和完整性。当开发者将应用程序提交到苹果应用商店时&#xff0c;苹果会对应用进行签名&#xff0c;这个签名包含了开发者的身份信息以及应用的相关数据。用户安装应用时&#xff0c;设备会验证签名的有效性&#…

Outlook客户端无法连接到服务器,添加账户显示“无网络连接,请检查你的网络设置,然后重试。[2603]”

1、先切换一下到手机热点或者其他网络&#xff0c;判断是不是现在所连接的网络的问题。如果有VPN代理软件&#xff0c;网银软件&#xff0c;加密软件在后台运行&#xff0c;麻烦退出一下。 2、打开电脑上的 控制面板——网络和Internet——Internet选项——高级——先点击还原…

Laravel 中使用 JWT 作用户登录,身份认证

什么是JWT&#xff1a; JWT 全名 JSON Web Token&#xff0c;是一种开放标准 (RFC 7519)。 用于在网络应用环境间安全地传输信息作为 JSON 对象。 它是一种轻量级的认证和授权机制&#xff0c;特别适合分布式系统的身份验证。 核心特点 紧凑格式&#xff1a;体积小&#x…

51. “闲转易”交易平台小程序(基于springbootvue)

目录 1.系统的受众说明 2 关键技术介绍 2.1 SSM框架 2.2 Java技术及架构介绍 2.3 MYSQL数据库 2.4微信小程序框架 2.5 B/S架构 3 需求分析与可行性分析 3.1功能需求分析 3.2 性能需求分析 3.3系统设计规则与运行环境 3.4系统流程分析 3.5 可行性分析 4 系统设计 …

【STM32】GPIO输入(按键)

目录 一、如何分辨GPIO输入使用什么电频二、输入抖动问题如何消抖三、示例代码 一、如何分辨GPIO输入使用什么电频 先看原理图 即可知道他的初始输入状态需要高电平 判断可知使用上拉输入 二、输入抖动问题如何消抖 电路图中, 按键输入有额外的电容电阻, 是为了消抖 消抖方…

【Android Studio】配置教程以及解决过程中的问题(详细版本)

目录 前言 一、下载安装 二、配置 三、简单使用 新建项目 创建默认项目 四、解决过程中的问题 前言 如果你目前不是第一次安装&#xff0c;那需要完全卸载它。 因为一般电脑卸载 Android Studio 时容易落下一堆配置文件没删&#xff0c;卸载不干净导致无用文件占用空间…

EtherNet/IP转ProfiNet协议转换网关驱动西门子PLC与流量计的毫秒级压力同步控制

一、案例背景 汽车涂装线的静电喷涂工艺对压缩空气流量稳定性要求极高。原系统中Alicat流量计与西门子PLC因协议差异无法联动&#xff0c;导致涂料浪费率高达8%。通过JM-EIPM-PN网关实现供气系统与PLC的深度集成。从而实现了EtherNet/IP转ProfiNet的通讯。 二、设备连接与配置…