SMB(Server Message Block)通訊協議是微軟(Microsoft)和英特爾(Intel)在1987年制定的協議,主要是做爲Microsoft網絡的通信協議。SMB 是在會話層(session layer)和表示層(presentation layer)以及小部分應用層(application layer)的協議。SMB使用了NetBIOS的應用程序接口 (Application Program Interface,簡稱API)。另外,它是一個開放性的協議,容許了協議擴展——使得它變得更大並且複雜;大約有65個最上層的做業,而每一個做業都超過120個函數,甚至Windows NT也沒有所有支持到,最近微軟又把 SMB 更名爲 CIFS(Common Internet File System),而且加入了許多新的特點。windows
在僅有 Windows 系統的網絡中,一般使用 SMB 協議來共享打印機.服務器
用smb協議在Linux和Windows進行數據共享是局域網內常常遇到的事,話說這個smb協議絕對是個兩面派,無論是Linux仍是Windows,兩頭都能說上幾句話,頗似當年的「翻譯官」.網絡
在windows下訪問Linux上的共享數據很容易,最菜也是最方便的辦法是直接在網上鄰居里搜索,輸入Linux系統的IP、用戶名、密碼就搞定。但反過來就不是特別方便了(與windows相比而言,誰讓windows就是那麼方便呢),好比你首先得確認windows系統上的共享資源,這須要用下面這個命令:
smbclinet -L 對方的IP地址 -U 用戶名
確認後系統會要你輸入密碼,而後你才能看到windows上的共享資源。但如今只是能看而已,你接下來還得把這個共享資源掛載到本身的機器上,因此你會用到下面這種複雜到BT的命令,更糟糕的是這個命令在不一樣的Linux上名字也不一樣,事實上,就算是同一家公司的Linux,因版本不一樣,這個命令也不一樣,麻煩!session
在Linux下用Smbmount命令掛載 app
Linux客戶端要鏈接samba/windows文件服務器時,需使用smbmount或mount指令:
smbmount //sambaserver/d /mnt/d -o username=aaa,password=bbb
smbmount //sambaserver/d /mnt/d -o username=aaa%bbb
mount -t smbfs -o username=aaa,password=bbb //sambaserver/d /mnt/d
mount -t smbfs -o username=aaa%bbb //sambaserver/d /mnt/d
smbclient //sambaserver/d -U username%passwordide
若是出現ERRDOS - ERRnosuchshare.....函數
請注意IP地址跟的文件夾不是服務器上的 而是網絡上看到的ui
好比服務器上看到的是/home/abcspa
那麼命令應該是命令行
mount -o username=aaa,password=bbb //xxx.xxx.xxx.xxx/abc /mnt
注意: 1. 指定uid或gid參數,也能指定用戶的身份(uid=後面可接uid號或用戶名),如: smbmount //test/d /mnt/d -o uid=grind 2. smbmount也能寫做mount.smbfs,這是個符號連接; 3. smbmount的參數必須寫在最後,而mount的參數位置能變化; 4. 因爲//sambaserver/d格式能代表是要mount上smbfs,因此mount的-t smbfs參數能省掉; 5. 若是命令行中不加入密碼,下一行中系統會提示你輸入; 6. smbclient成功後,會出現ftp相似的界面,請仿照ftp進行