首页/系统/信创系统运维速查/smbclient 访问 Windows 共享
迁移适配65 条

smbclient 访问 Windows 共享

信创主机访问 Windows 共享的交互式工具:-L 列出共享、get/put 传送文件、-c 支持脚本化批量操作,适合迁移期搬运与核验。

信创系统运维速查系统更新于 2026-10-13

smbclient 是什么

smbclient 是 Samba 套件里的 SMB/CIFS 客户端,用来从 Linux 侧访问 Windows 共享或 NAS。它既能进入交互式命令行浏览目录、收发文件,也能用 -c 参数在一条命令里完成批量动作,适合脚本化搬运。信创迁移期用它把 Windows 共享上的资料拉过来,或者把系统配置反向备份到共享目录,是替代图形文件管理器的常用手段。

基本信息

适用平台全部 Linux 发行版,需装 samba-client / smbclient 包
列共享smbclient -L //主机 -U 用户
连接共享smbclient //主机/共享名 -U 用户
脚本化加 -c '动作1; 动作2' 一次执行多条命令
认证形式域账号写 DOMAIN\\user,或 -U user%口令

典型使用场景

  • 迁移期搬运:把 Windows 文件服务器上的目录批量拉到信创主机
  • 反向备份:把本机关键配置上传到 Windows 共享做异地副本
  • 无图形环境取文件:服务器上没有文件管理器,用命令行访问共享
  • 脚本化批量:用 -c 组合 mkdir、put、get 完成定时同步
  • 共享可用性核查:登录前先用 -L 确认共享名与权限是否符合预期

列出、连接与批量操作

列出、连接与批量操作
smbclient -L //10.0.0.5 -U domain\\user        # 列出该主机的共享列表
smbclient //10.0.0.5/share -U user              # 交互式进入共享
# 交互模式里的常用命令:ls、cd、lcd、get、put、mkdir、exit
smbclient //10.0.0.5/share -U user -c 'ls'      # 单条命令模式
smbclient //10.0.0.5/share -U user -c 'get report.xlsx /tmp/report.xlsx'  # 下载文件
smbclient //10.0.0.5/share -U user -c 'mkdir backup; put /etc/hosts hosts.bak'  # 上传
smbclient //10.0.0.5/share -U user -c 'recurse; prompt; mget *.csv'  # 递归批量下载

常用参数读法

参数作用注意事项
-L 主机列出共享与服务需配合 -U,匿名常被服务端拒绝
-U 用户指定认证账户域账号写成 DOMAIN\\user
-U user%口令口令随命令给出会留在 shell 历史里,生产慎用
-c '命令串'非交互执行多条用分号分隔,失败不中断后续
-m SMB3指定协议版本老 NAS 与新版客户端协议协商失败时使用
-p 445指定端口默认自动协商,特殊网络环境才需显式指定
-T 打包参数tar 模式传输适合大目录归档式拉取
域环境用 DOMAIN\\user 形式;协议协商失败报 unsupported dialect 时加 -m SMB3 或按服务端支持的最低版本调整。
命令行用 %口令 会写进 shell 历史与进程列表,生产环境改用凭据文件或交互输入。

易错点

  • 口令直接写在命令行会进入 shell 历史与进程列表,属于凭据泄露;改用 -A 凭据文件并限制文件权限。
  • 中文文件名在部分老服务端上乱码,需要配合 -m 与字符集设置,迁移后要逐一核对文件名。
  • -c 里的多条命令用分号连接,某条失败不会中断后续,静默丢文件,脚本里要加结果校验。
  • 把共享挂载成 CIFS 文件系统去写日志而不用 smbclient,链路抖动会造成 IO 阻塞,长期写入场景要评估。
  • 用匿名(-N)访问以为省事,多数服务端已禁用匿名,报 access denied 时先确认认证方式而非网络。

数据来源与参考

  • man 1 smbclient
  • Samba 官方文档(samba.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌