引言
TrueNAS是业内知名的FreeNAS系统的升级版,是一款免费开源的网络存储系统,具有高性能、稳定性和易用性等优点。下面我将介绍如何利用TrueNas实现远程文件共享。
环境准备
使用VMware安装TrueNAS虚拟机

因为该镜像为最新版本,可以使用FreeBSD 12 64 位与Debian 12.x 64位 两个版本安装,可根据自身去求选择。


虚拟机具体配置

导入镜像启动虚拟机

安装TrueNAS
选择1开始安装TrueNAS

选择第一张磁盘作为安装系统的硬盘

提示我们安装系统会将选择的硬盘进行格式化导致数据丢失,由于是安装系统并且没有重要的数据,我们选择yes。

设置TrueNAS管理员用户为truenas_admin的密码

安装成功后我们会回到首页选择3,重启系统

网络恢复
开机后发现提示 “The web interface could not be accessed. Please check network configuration.”,说明 Web 管理界面无法访问,核心原因是网络配置未完成或异常。

我们进入控制面板

进入网络和共享中心,点击更改适配器设置。

禁用对应虚拟网络,重新启用。

重新启动虚拟机,发现网络恢复正常,通过URL访问TruaNAS服务。

TrueNAS基本配置
访问URL我们使用安装时创建的账户密码进行登录。

进入页面,为了方便操作与讲解我们先将语言设置为中文。

点击Localization板块的Settings

修改语言与时区

点击Save,我们的中文环境设置成功,接下来将讲解如何实现远程共享。
实现远程共享
创建池
点击存储,点击创建池。

发现警告信息Warning: There are 3 disks available that have non-unique serial numbers... 简单解释为3快磁盘序列号不唯一,原因是这些磁盘是通过VMware 中克隆 / 批量创建了虚拟磁盘,导致它们的序列号完全相同。

在实验/学习环境下,允许非唯一序列号的磁盘选择[允许](这是虚拟机场景下的常规操作)
若为真是物理服务器:不建议勾选[允许],确保每块磁盘序列号唯一,否则TrueNAS可能无法正确识别磁盘,导致数据损坏或丢失。因为我们这是在实验环境下,所以选择[允许]。

选择RAIDZ1(等价于RAID5)布局。

设置好基本信息与数据信息后即可点击创建池,其他设置可自行选择。

创建共享
Windows共享
点击共享,我们选择添加SMB共享。

添加SMB共享时,发现报错无法创建。核心原因:TrueNAS 要求在创建 SMB 共享前,系统必须加入 Active Directory 域,或者至少存在一个本地 SMB 用户,否则无法完成共享创建。

于是创建一个本地用户并启用SMB权限。

设置好用户名与密码并选择主目录权限。


重新回到SMB共享界面,发现报错消失成功创建SMB共享和数据集。


点击开启服务,验证服务是否可用。

输入ip,\\192.168.245.131,得到一个弹窗登录界面。

用创建该共享库的用户账号密码登录,登陆成功后进入共享目录。

尝试上传文件。

文件出现在目录说明上传成功。
Linux共享
创建UNIX共享库与数据集

按需求添加网络与主机

开启服务



在linux上安装NFS客户端工具
# Debian/Ubuntu
sudo apt update && sudo apt install -y nfs-common创建本地挂载点
sudo mkdir -p /mnt/truenas_nfs临时挂载共享
sudo mount -t nfs <TrueNAS_IP>:/mnt/Hollow/linux /mnt/truenas_nfs发现权限不足,可在 TrueNAS 端调整数据集权限(示例:赋予所有用户读写)

编辑权限

设置ACL,应用与用户。

或者选择自定义

因为NFS服务,单独设置了允许连接的网段与主机,所以我们可以将每个人@的权限提高,使得我们允许的网段主机能够读写。

再次尝试上传文件,发现上传成功达成Linux共享。

持久化挂载
# 编辑 fstab
sudo tee -a /etc/fstab >/dev/null <<EOF
<TrueNAS_IP>:/mnt/Hollow/linux /mnt/truenas_nfs nfs rw,bg,hard 0 0
EOF
# 测试生效
sudo mount -a
# 查看挂载点信息
df -hT /mnt/truenas_nfs
# 查看所有 NFS 挂载
mount | grep nfs

上传文件成功

ISCSI共享
选择存储池,添加Zvol。

添加Zvol
自定义Zvol名称备注大小。
勾选强制大小:确保Zvol占用精确的指定空间,避免超配。
备用不勾选:仅用于热备 spare 场景,普通 iSCSI 无需开启。
其他保持默认,是否加密根据需求选择。

添加ISCSI共享:选择共享,点击ISCIS共享中的向导。

目标:选择新建,点击下一步。

区块
名称:自定义
区块类型:选择设备
设备:选择之前创建的Zvol
共享平台:根据实际情况选择,我们这里使用的是VMware/Proxmox 虚拟化平台,此优化参数适用;若为普通 Linux/Windows,也可保持默认。

协议选择。
门户:选择新建
IP地址:监听所有地址。
启动器:
留空:允许任何 iSCSI 客户端连接(不推荐,不安全)。
填写客户端 IQN:仅允许指定的客户端连接(推荐,提升安全性)。
你可以在客户端(如 Proxmox/Windows)的 iSCSI 发起程序中查看其 IQN,然后填入此处。

开启服务。

PVE虚拟服务平台
数据中心→存储→添加→ISCSI。

ID:自定义
Portal:填入TrueNAS的ip与默认端口(3260)。
目标:会自动弹出选中即可。

添加成功。

Linux客户端
安装ISCSI发起程序。
sudo apt update && sudo apt install open-iscsi发现ISCSI目标设备。
sudo iscsiadm -m discovery -t st -p 192.168.245.131
登录Target。
sudo iscsiadm -m node -l
lsblk #验证新块设备磁盘导入成功。

格式化磁盘。
sudo mkfs.ext4 /dev/sdb
创建挂载点并挂载。
sudo mkdir -p /mnt/iscsi #创建挂载目录
sudo mount /dev/sdb /mnt/iscsi #挂载磁盘到目录
df -h /mnt/iscsi #验证挂载成功
(可选)配置开机自动挂载
为了重启后自动挂载,需要修改 /etc/fstab:
# 编辑 fstab 文件
sudo nano /etc/fstab在文件末尾添加一行:
/dev/sdb /mnt/iscsi ext4 defaults 0 0保存退出后,执行以下命令验证配置:
sudo mount -a如果没有报错,下次重启后磁盘会自动挂载。
(可选)配置开机自动登录 iSCSI
如果希望重启后自动连接 iSCSI Target:
# 设置自动登录
sudo iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:truenas:iscsi-vm01 -p 192.168.245.131:3260 --op update -n node.startup -v automaticWindows系统
打开iSCSI发起程序:
按下
Win + R,输入iscsicpl.exe,回车打开「iSCSI 发起程序」如果是首次使用,会提示安装服务,点击「是」完成安装
发现并连接 iSCSI Target:
切换到「发现」选项卡,点击「发现门户」
输入 TrueNAS 的 IP 地址,端口默认
3260,点击「确定」

切换到「目标」选项卡,选中发现的 Target(
iqn.2005-10.org.freenas.ctl:truenas:iscsi-vm01)点击「连接」,在弹出窗口中保持默认,点击「确定」
状态变为「已连接」即表示成功

3. 初始化并挂载磁盘(关键步骤)
连接后,Windows 会识别出 iSCSI 磁盘,但需要初始化才能使用:
右键「此电脑」→「管理」→「存储」→「磁盘管理」

找到新出现的「未知」「未初始化」磁盘(就是你的 iSCSI 磁盘)
右键该磁盘 →「初始化磁盘」,选择
GPT分区表,点击「确定」

右键未分配空间 →「新建简单卷」
按向导下一步:
指定驱动器号(比如
F:)格式化分区(选择
NTFS,勾选「快速格式化」)完成后,iSCSI 磁盘就会出现在「此电脑」中,和本地硬盘一样使用

4. 断开连接(可选)
回到「iSCSI 发起程序」→「目标」选项卡
选中已连接的 Target → 点击「断开」
此时磁盘会从「此电脑」中消失,但数据保留在 TrueNAS 上