Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

從 Linux 命令行訪問 Windows 共享資料夾(smbclient 實戰)

編輯:Linux 教學

前言

Samba 專案讓 Linux/Unix 能與 Windows 互操作。若僅需偶爾從 Windows 共享取檔,安裝完整 Samba 服務端屬於大材小用。samba-client 套件提供的 smbclient 工具,即可像 FTP 一樣以互動式 CLI 遠端存取 Windows 共享,輕量且強大。

安裝客戶端工具

# Debian/Ubuntu
sudo apt-get update && sudo apt-get install smbclient

# RHEL/CentOS/Fedora
sudo yum install samba-client
# 或
sudo dnf install samba-client

列出遠端 Windows 共享資源

smbclient -U <用戶名> -L <主機名或IP>

實例

$ smbclient -U barlowliu -L Barlow-pc
Enter barlowliu's password:
Domain=[CKING] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      遠程管理
        C$              Disk      預設共享
        D$              Disk      預設共享
        soft            Disk
        IPC$            IPC       遠程 IPC

        Server               Comment
        ---------            -------
        BARLOW-PC

        Workgroup            Master
        ---------            -------
        CKING                BARLOW-PC

參數說明: -U 指定登入用戶名;-L 列出共享而不進入互動模式。

進入互動模式存取特定共享

smbclient -U <用戶名> //<主機>/<共享名>

實例:下載檔案

$ smbclient -U barlowliu //barlow-pc/soft
Enter barlowliu's password:
Domain=[CKING] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1]
smb: \> ls
  .                                   D        0  Wed Mar 27 10:01:01 2013
  ..                                  D        0  Wed Mar 27 10:01:01 2013
  系統工具                            D        0  Wed Apr 24 15:24:18 2013
  ...

smb: \> cd 系統工具
smb: \系統工具\> ls
  NSCP-0.4.1.90-x64.msi             A   29418492  Sun Apr 7 17:19:56 2013
  putty                             D        0  Wed Mar 27 09:27:36 2013
  ...

smb: \系統工具\> get NSCP-0.4.1.90-x64.msi
getting file \系統工具\NSCP-0.4.1.90-x64.msi of size 29418492 as NSCP-0.4.1.90-x64.msi (836.7 KiloBytes/sec)

常用互動指令速查

指令作用
ls列出當前遠端目錄內容
cd <目錄>切換遠端目錄
lcd <本地路徑>切換本地工作目錄(下載檔案將存放於此)
get <遠端檔案> [本地檔名]下載單一檔案
mget <檔案模式>批量下載(支援萬用字元)
put <本地檔案> [遠端檔名]上傳單一檔案
mput <檔案模式>批量上傳
mkdir <目錄>建立遠端目錄
rm <檔案>刪除遠端檔案
prompt切換批量操作的互動確認開關
recurse切換遞迴操作開關(配合 mget/mput)
exit / quit離開 smbclient

進階技巧

1. 非互動模式單行下載(適合腳本)

smbclient -U user%password //host/share -c "cd remote_dir; get file.txt; exit"

2. 掛載共享至本地檔案系統(持久化存取)

# 安裝 cifs-utils
sudo apt-get install cifs-utils   # Debian/Ubuntu
sudo yum install cifs-utils       # RHEL/CentOS

# 掛載
sudo mount -t cifs //192.168.1.100/share /mnt/win_share -o username=user,password=pass,iocharset=utf8,vers=3.0

掛載後即可像操作本地檔案一樣 cp、mv、vim,適合需要應用程式直接讀寫的場景。

常見問題排查

  • NT_STATUS_LOGON_FAILURE:用戶名/密碼錯誤、或 Windows 要求 NTLMv2(加 -m SMB3 或更新 smbclient)。
  • NT_STATUS_ACCESS_DENIED:共享權限或 NTFS 權限不足,檢查 Windows 共享「權限」與「安全性」頁籤。
  • 中文檔名亂碼:掛載時加 iocharset=utf8;smbclient 互動模式通常自動處理。
  • 連線逾時:防火牆阻擋 TCP 445/139,確認 Windows 防火牆允許「檔案和印表機共享」。

總結

smbclient 是 Linux 臨時存取 Windows 共享的「瑞士刀」:無需服務端配置、支援完整檔案操作、易於腳本化。若需長期、透明化存取,請改用 cifs 掛載。根據使用頻率與場景選擇適當工具,即可輕鬆跨平台取檔。

Copyright © Windows教程網 All Rights Reserved