targetcli iSCSI Target 部署的部署与使用
什么是targetcli
targetcli 是 Linux 下管理内核 iSCSI Target (LIO) 的交互式命令行工具。
它支持配置:
- iSCSI Targets
- 目标 LUN(逻辑单元)
- ACL(访问控制列表)
- 网络门户(network portals)
- 以及后端存储(block、file、RAM 等)
安装targetcli
Debian / Ubuntu 系列
1 | sudo apt update |
安装后可以运行:
1 | sudo targetcli |
看到提示符:
1 | /> |
就说明安装成功。
CentOS / Rocky / AlmaLinux / RHEL 系列
1 | sudo dnf install targetcli -y |
或者在旧系统上:
1 | sudo yum install targetcli -y |
Arch Linux / Manjaro
1 | sudo pacman -S targetcli-fb |
openSUSE
1 | sudo zypper install targetcli-fb |
配置targetcli
创建后端存储(fileio backstore)
在 targetcli shell 中:
1 | /backstores/fileio create iscsi_disk /srv/iscsi/disk01.img |
iscsi_disk:backstore 名称(在 targetcli 中引用用)。/srv/iscsi/disk01.img:后端镜像文件或设备路径。
若为块设备(例如
/dev/sdb),使用:
1 | /backstores/block create name=iscsi_block dev=/dev/sdb |
创建 iSCSI Target(IQN)与 Portal
1 | /iscsi create iqn.2025-10.com.example:storage01 |
- IQN 示例应修改为与你域名/组织对应的格式(保持唯一性)。
0.0.0.0:3260表示监听所有网卡上的 3260 端口;也可改为具体 IP。
绑定 LUN(将 backstore 暴露为 LUN)
1 | /iscsi/iqn.2025-10.com.example:storage01/tpg1/luns create /backstores/fileio/iscsi_disk |
- 该命令会创建
lun0(或下一个可用 LUN)并指向iscsi_disk。
关闭认证 / 开放访问(测试专用)
若用于内网临时测试,可在 TPG 设置打开“全网可连”模式:
1 | /iscsi/iqn.2025-10.com.example:storage01/tpg1 set attribute authentication=0 demo_mode_write_protect=0 generate_node_acls=1 cache_dynamic_acls=1 |
含义:
authentication=0:关闭 CHAP(无认证)demo_mode_write_protect=0:允许写操作generate_node_acls=1:自动处理节点 ACL(便于动态接受 initiator)cache_dynamic_acls=1:缓存动态 ACL(可选)
安全提示:上述设置会允许任何能访问你 3260 端口的主机连接并读写该 LUN,仅用于受信内网或短期调试。
保存配置与退出
在 targetcli 中执行:
1 | saveconfig |
或在 shell 外:
1 | sudo targetcli saveconfig |
配置会保存到系统默认路径(例如 /etc/target/saveconfig.json),重启后自动恢复。
启动与检查 target 服务
1 | sudo systemctl enable --now target |
注意:不同发行版或历史遗留环境可能使用
tgt/tgtd,若target无法找到,请根据实际服务名调整。
防火墙(放行端口 3260)
Ubuntu(UFW):
1 | sudo ufw allow 3260/tcp |
或使用 iptables:
1 | sudo iptables -I INPUT -p tcp --dport 3260 -j ACCEPT |
Linux 客户端(iscsiadm)发现与登录
发现:
1 | sudo iscsiadm -m discovery -t sendtargets -p <SERVER_IP> |
登录:
1 | sudo iscsiadm -m node -T iqn.2025-10.com.example:storage01 -p <SERVER_IP> --login |
设置自动重连(开机自动):
1 | sudo iscsiadm -m node --targetname iqn.2025-10.com.example:storage01 --portal <SERVER_IP>:3260 --op update -n node.startup -v automatic |
Windows 客户端(PowerShell)
删除旧 Portal / 会话:
1 | Get-IscsiSession | Disconnect-IscsiTarget -Confirm:$false |
添加 Portal、发现并连接:
1 | New-IscsiTargetPortal -TargetPortalAddress <SERVER_IP> |
风险与安全建议
绝对不要 在公网或不受信网络上使用“无认证 + 无 ACL”的配置。
生产环境至少应:
- 使用 CHAP(单向或双向);
- 仅允许指定 Initiator IQN 与受信 IP 段;
- 将 iSCSI 服务放在私有网络或通过 VPN/VLAN 隔离;
- 定期备份重要数据并设置访问审计。
CHAP 密码应为强随机字符串,并妥善保管。
- 标题: targetcli iSCSI Target 部署的部署与使用
- 作者: FengMayou冯马佑
- 创建于 : 2025-11-02 22:08:18
- 更新于 : 2025-11-02 22:27:04
- 链接: https://blog.fengmayou.top/2025/11/02/targetcli-iSCSI-Target/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论