## 16.3 Samba 客戶端軟件功能
現在你已經架設好了 Samba 服務器啦!有服務器當然要有客戶端來使用才是好的服務器嘛!不然要這個服務器干嘛? 而我們假設局域網絡內有 Windows/Linux 系統,這兩種系統都是透過 NetBIOS over TCP/IP 來連上 Samba 服務器的, 在設定之前你必須要知道的有幾件事:
* 在區網內的主機最好具有相同的工作組,且具有不同的主機名;
* Windows XP pro. 最多僅能允許十個用戶同時連接到自己的網芳;
* 你可以在網芳當中看到的通常是相同群組的主機;
* 可以使用『搜尋』-->『計算機』-->『輸入 IP』來查到 Samba 主機;
* Windows 的網芳預設僅有同一 IP 網段的主機才能登入 (Windows 防火墻設定)!
接下來咱們就分別依照 Windows 及 Linux 系統來做說明吧!
* * *
### 16.3.1 Windows 系統的使用
在 Windows 上面的搜尋網絡上的網芳主機實在挺簡單的,你有好幾種方法可以處理:
* 打開『檔案總管』,『網絡上的芳鄰』、『整個網絡』、『Microsoft Windows Network』 就能看到屬于你群組的所有計算機主機了!
* 『開始』、『搜尋』、『檔案或文件夾』、『計算機或人員』、『網絡上的計算機』,然后在出現的方框當中填寫正確的 IP ,按下『搜尋』即可!這個方法可以適用于不在同一個群組當中的網絡主機喔!
* 如果是 Windows 7 的話,只要點選文件夾即可。
舉例來說,如果想要連接到我們的 Samba 主機的話,而又不知到這部 Samba 主機的 NetBIOS name , 那利用搜尋的結果會有點類似如下的圖示:

圖 16.3-1、Windows 7 客戶端搜尋示意圖
上圖左側先點選『網絡』,然后到右上方的框框中,輸入 NetBIOS name,若不知道的話,就留白讓 Windows 7 自己找。 如上圖所示,就有找到三部網絡主機啊!我們來點選一下 VBIRDSERVER 吧! 因為要登入人家服務器,所以就被要求要輸入密碼。 如下圖所示,請填寫好你所擁有的賬號與密碼吧!

圖 16.3-2、Windows 7 客戶端登入 SAMBA 服務器示意圖
若順利登入系統了,那么就能夠看到如下的圖示,就是取得該服務器的可用資源啦!因為我們并沒有針對 Windows 7 提供打印機的驅動程序,那部份先略過。我們現在來將 project 掛載成本機磁盤試看看:

圖 16.3-3、Windows 7 客戶端登入 SAMBA 服務器示意圖
如上圖所示,在 project 上面右鍵單擊,選擇『聯機網絡驅動器機』,就會出現如下的畫面讓你去選擇掛載磁盤驅動器的參數喔:

圖 16.3-4、Windows 7 客戶端掛載網絡驅動器機的示意圖
你可以自己調整想要的驅動器號,例如預設的 Z 槽, 那么以后你的檔案總管中就會生出一個 Z 槽,該磁盤槽就代表 \\192.168.100.254\project 那個分享的目錄啰!
* 讓 Windows 系統的網芳支持不同網域的 IP 聯機
由于網芳的資安問題越來越嚴重,因此 Windows XP 之后的版本都預設僅開放本機 IP 網域的網芳聯機而已。 如果你的 Windows 想要讓別人可以在 Internet 或不同的 IP 網段對你聯機時,你就得修改一下防火墻的設定啊! 請叫出控制臺,然后點選『Windows 防火墻』就會出現如下的圖示了:

圖 16.3-5、Windows 7 服務器防火墻示意圖
因為我們得要細部設定防火墻,因此點選上圖中左側的『進階設定』來取得如下圖示吧!

圖 16.3-6、Windows 7 服務器防火墻示意圖
還記得網絡是雙向的吧?所以,我們得先要針對輸入 (從外部連到本機) 的規則來處置。如上圖所示,按下 (1)輸入規則,然后點選 (2)檔案及打印機共享,之后到 (3)選擇詳細的規則內容,會出現另外一個窗口,在 (4)點選『領域』的部分來設定不同網段, 最終在 (5)的地方『新增』可進入本機的遠程 IP 網段喔!按下新增會出現如下圖示喔:

圖 16.3-7、Windows 7 服務器防火墻示意圖
如上圖所示,在 (1)填寫正確的 IP 或網段,然后按下 (2)確定后,就能夠在 (3)的框框當中出現可聯機的遠程服務器啰!
* 透過 port 445 的特殊登入方式
如果你知道 Samba 服務器有啟用 port 445 ,并且他已經分享了某個目錄時,舉例來說,我們的 192.168.100.254 有分享出 project 這個分享資源名稱時,那么這個目錄的完整寫法為:『 \\192.168.100.254\project 』, 我們可以透過『開始』出現的那個方框來處理這個玩意兒!如下所示:

圖 16.3-8、Windows 7 透過 port 445 聯機
如果可以登入的話就會順利登入,否則就會彈出一個要你輸入賬號密碼的窗口,輸入正確的數據即可! 呼呼!真過癮~除此之外,我們還可以登入別人 Windows 主機的 C 或 D 槽喔!寫法則變成這樣:
* \\192.168.100.20\c$
所以說,怕了吧!俺還真害怕~所以啊,Samba 沒必要時,那個 port 445 應該是可以關閉的吧!
* * *
### 16.3.2 Linux 系統的使用
* smbclient:查詢網芳分享的資源,以及使用類似 FTP 的方式上傳/下載網芳
咱們的 Samba 有提供 Linux 網芳的客戶端功能喔!也就是說 Linux 可以掛載 Samba 服務器也能掛載 Windows 提供的網芳啦!主要是透過 smbclient 來觀察,再以 mount 來掛載文件系統哩。先來介紹一下 smbclient 這個指令吧:
```
# 1\. 關于查詢的功能,例如查出 192.168.100.254 的網芳數據
[root@clientlinux ~]# smbclient -L //[IP|hostname] [-U username]
[root@clientlinux ~]# smbclient -L //192.168.100.254 -U smb1
Enter smb1's password:
Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.5.4-68.el6_0.2]
Sharename Type Comment
--------- ---- -------
project Disk smbuser's project
print$ Disk Printer drivers
IPC$ IPC IPC Service (This is vbird's samba server)
HP_LaserJet_P2015_Series Printer HP LaserJet P2015 Series
smb1 Disk Home Directories <==等一下用這個當范例
Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.5.4-68.el6_0.2]
Server Comment
--------- -------
VBIRDSERVER This is vbird's samba server
Workgroup Master
--------- -------
VBIRDHOUSE VBIRDSERVER
# 從這里可以知道在目前網域當中有多少個工作組與主要的名稱解析主機
```
除了這個先前用過的查詢功能之外,我們可以這樣簡易使用網芳的:
```
# 2\. 利用類似 FTP 的方式登入遠程主機
[root@clientlinux ~]# smbclient '//[IP|hostname]/資源名稱' [-U username]
# 意思是使用某個賬號來直接登入某部主機的某個分享資源,舉例如下:
[root@clientlinux ~]# smbclient '//192.168.100.254/smb1' -U smb1
Enter smb1's password:
Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.5.4-68.el6_0.2]
smb: \> dir
# 在 smb: \> 底下其實就是在 //192.168.100.254/dmtsai 這個目錄底下啦!所以,
# 我們可以使用 dir, get, put 等常用的 ftp 指令來進行數據傳輸了!
? :列出所有可以用的指令,常用!
cd :變換到遠程主機的目錄
del :殺掉某個檔案
lcd :變換本機端的目錄
ls :察看目前所在目錄的檔案
dir :與 ls 相同
get :下載單一檔案
mget:下載大量檔案
mput:上傳大量檔案
put :上傳單一檔案
rm :刪除檔案
exit:離開 smbclient 的軟件功能
# 其他的指令用法請參考 man smbclient 喔!
```
* mount.cifs:直接掛載網芳成為網絡驅動器機
事實上,使用 smbclient 一點也不方便,因為使用的是 ftp 的功能語法,有點怪怪的~能不能像 Windows 那樣,可以直接聯機網絡驅動器機啊?這當然沒有問題!不過就需要藉由 mount.cifs 來協助了!
早期的 Samba 主要是提供 smbmount 或 mount.smbfs 這個指令來掛載 (smbfs 是 SMB filesystem 的縮寫), 不過這個指令已經被可以進行比較好的編碼判斷的 mount.cifs 所取代啦!mount.cifs 可以將遠程服務器分享出來的目錄整個給他掛載到本機的掛載點,如此一來, 遠程服務器的目錄就好像在我們本機的一個分割槽一樣喔!可以直接執行復制、編輯等動作!這可就好用的多了! 底下我們來談一談怎么用這個 mount.cifs 吧!
```
[root@clientlinux ~]# mount -t cifs //IP/分享資源 /掛載點 [-o options]
選項與參數:
-o 后面接的參數 (options) 常用的有底下這些:
username=你的登入賬號:例如 username=smb1
password=你的登入密碼:需要與上面 username 相對應啊!
iocharset=本機的語系編碼方式,如 big5 或 utf8 等等;
codepage=遠程主機的語系編碼方式,例如繁體中文為cp950
# 范例一:以 smb1 的身份將其家目錄掛載至 /mnt/samba 中
[root@clientlinux ~]# mkdir /mnt/samba
[root@clientlinux ~]# mount -t cifs //192.168.100.254/smb1 /mnt/samba \
> -o username=smb1,password=4321,codepage=cp950
[root@clientlinux ~]# df
文件系統 1K-區段 已用 可用 已用% 掛載點
//192.168.100.254/smb1/
7104632 143368 6606784 3% /mnt/samba
```
經由 mount 的動作,我們就可以輕易的將遠程分享出來的咚咚給他掛載到自己 Linux 本機上面!好用的很~更詳細的 mount 用法,請 man mount!
* nmblookup:查詢 NetBIOS name 與 IP 及其他相關信息:
現在我們可以透過一些 NetBIOS 相關的功能來取得 NetBIOS name ,不過,如果你還想要知道這個 NetBIOS name 的其他信息時, 例如 IP、分享的資源等等,那可以使用 nmblookup 這個指令來搞定即可。他是這么使用的:
```
[root@clientlinux ~]# nmblookup [-S] [-U wins IP] [-A IP] name
選項與參數:
-S :除了查詢 name 的 IP 之外,亦會找出該主機的分享資源與 MAC 等;
-U :后面一般可接 Windows 的主要名稱管理服務器的 IP ,可與 -R 互用;
-R :與 -U 互用,以 Wins 服務器來查詢某個 Netbios name;
-A :相對于其他的參數, -A 后面可接 IP ,藉 IP 來找出相對的 NetBIOS 數據;
# 范例一:藉由 192.168.100.254 找出 vbirdserver 這部主機的 IP 地址
[root@clientlinux ~]# nmblookup -U 192.168.100.254 vbirdserver
querying vbirdserver on 192.168.100.254
192.168.100.254 vbirdserver<00>
192.168.1.100 vbirdserver<00> <==之前鳥哥就說有兩個 IP 嘛!俺的主機!
# 范例二:找出 vbirdserver 的 MAC 與 IP 等信息:
[root@clientlinux ~]# nmblookup -S vbirdserver
querying vbirdserver on 192.168.100.255 <==在區網內廣播開始找!
192.168.100.254 vbirdserver<00> <==找到 IP 啰!
Looking up status of 192.168.100.254
VBIRDSERVER <00> - B <ACTIVE>
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
VBIRDHOUSE <00> - <GROUP> B <ACTIVE>
```
* smbtree:網絡上的芳鄰瀏覽器顯示模式!
如果你想要使用類似 Windows 上面,可以一看就明了各個網芳所分享的資源時,你能使用 smbtree 來直接查詢喔! 這個指令更簡單!直接輸入就能用:
```
[root@clientlinux ~]# smbtree [-bDS]
選項與參數:
-b :以廣播的方式取代主要瀏覽器的查詢
-D :僅列出工作組,不包括分享的資源
-S :列出工作組與該工作組下的計算機名稱 (NetBIOS) 不包括各項資源目錄
# 范例一:列出目前的網芳樹狀相關圖
[root@clientlinux ~]# smbtree
Enter root's password: <==直接按 [Enter] 即可!
WORKGROUP
\\WIN7-PC
VBIRDHOUSE
\\WINXP
cli_start_connection: failed to connect to WINXP<20> (0.0.0.0).
\\VBIRDSERVER This is vbird's samba server
\\VBIRDSERVER\HP_LaserJet_P2015_Series HP LaserJet P2015 Series
\\VBIRDSERVER\IPC$ IPC Service (This is vbird's samba server)
\\VBIRDSERVER\print$ Printer drivers
\\VBIRDSERVER\project smbuser's project
[root@clientlinux ~]# smbtree -S
Enter root's password:
WORKGROUP
\\WIN7-PC
VBIRDHOUSE
\\WINXP
\\VBIRDSERVER This is vbird's samba server
# 此時僅有工作組與計算機名稱而已呢!
```
* smbstatus:觀察 SAMBA 的狀態
其實這個指令算是服務器的相關功能啦!因為它主要的目的是查閱目前 SAMBA 有多少人來聯機, 且哪些資源共享已經被使用等等的信息。所以如果你想要使用這個軟件,請先安裝 samba 喔!簡單用法如下:
```
[root@www ~]# smbstatus [-pS] [-u username]
選項與參數:
-p :列出已經使用 SAMBA 聯機的程序 PID ;
-S :列出已經被使用的資源共享狀態;
-u :只列出某個用戶相關的分享數據
# 范例一:列出目前主機完整的 Samba 狀態
[root@www ~]# smbstatus
Samba version 3.5.4-68.el6_0.2
PID Username Group Machine
-------------------------------------------------------------------
5993 smb1 smb1 __ffff_192.168.100.10 (::ffff:192.168.100.10)
5930 smb1 smb1 win7-pc (::ffff:192.168.100.30)
# 上半部主要在列出目前聯機的狀態中,主要來自那個客戶端機器與登入的用戶名
Service pid machine Connected at
-------------------------------------------------------
IPC$ 5930 win7-pc Fri Jul 29 15:56:03 2011
project 5930 win7-pc Fri Jul 29 15:59:25 2011
smb1 5993 __ffff_192.168.100.10 Fri Jul 29 16:32:45 2011
# 這部分則顯示出,目前有幾個目錄被使用了?那個 smb1 代表 //IP/smb1/ 喔!
```
你可以透過這個小程序來了解到目前有多少人使用你的 SAMBA 的啦!
* * *
- 鳥哥的Linux私房菜:服務器架設篇 第三版
- 第一部份:架站前的進修專區
- 作者序
- 第一章、架設服務器前的準備工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架設服務器流程
- 1.3 自我評估是否已經具有架站的能力
- 1.4 本章習題
- 第二章、基礎網絡概念
- 2.1 網絡是個什么玩意兒
- 2.2 TCP/IP 的鏈結層相關協議
- 2.3 TCP/IP 的網絡層相關封包與數據
- 2.4 TCP/IP 的傳輸層相關封包與數據
- 2.5 連上 Internet 前的準備事項
- 2.6 重點回顧:
- 2.7 本章習題
- 2.8 參考數據與延伸閱讀
- 第三章、局域網絡架構簡介
- 3.1 局域網絡的聯機
- 3.2 本書使用的內部聯機網絡參數與通訊協議
- 第四章、連上 Internet
- 4.1 Linux 連上 Internet 前的注意事項
- 4.2 連上 Internet 的設定方法
- 4.3 無線網絡--以筆記本電腦為例
- 4.4 常見問題說明
- 4.5 重點回顧
- 4.6 本章習題
- 4.7 參考數據與延伸閱讀
- 第五章、 Linux 常用網絡指令
- 5.1 網絡參數設定使用的指令
- 5.2 網絡偵錯與觀察指令
- 5.3 遠程聯機指令與實時通訊軟件
- 5.4 文字接口網頁瀏覽
- 5.5 封包擷取功能
- 5.6 重點回顧
- 5.7 本章習題
- 5.8 參考數據與延伸閱讀
- 第六章、 Linux 網絡偵錯
- 6.1 無法聯機原因分析
- 6.2 處理流程
- 6.3 本章習題
- 6.4 參考數據與延伸閱讀
- 第二部分:主機的簡易資安防護措施
- 第七章、網絡安全與主機基本防護:限制端口, 網絡升級與 SELinux
- 7.1 網絡封包聯機進入主機的流程
- 7.2 網絡自動升級軟件
- 7.3 限制聯機埠口 (port)
- 7.4 SELinux 管理原則
- 7.5 被攻擊后的主機修復工作
- 7.6 重點回顧
- 7.7 課后練習
- 7.8 參考數據與延伸閱讀
- 第八章、路由觀念與路由器設定
- 8.1 路由
- 8.2 路由器架設
- 8.3 動態路由器架設:quagga (zebra + ripd)
- 8.4 特殊狀況:路由器兩邊界面是同一個 IP 網段: ARP Proxy
- 8.5 重點回顧
- 8.6 本章習題
- 8.7 參考數據與延伸閱讀
- 第九章、防火墻與 NAT 服務器
- 9.1 認識防火墻
- 9.2 TCP Wrappers
- 9.3 Linux 的封包過濾軟件:iptables
- 9.4 單機防火墻的一個實例
- 9.5 NAT 服務器的設定
- 9.6 重點回顧
- 9.7 本章習題
- 9.8 參考數據與延伸閱讀
- 第十章、申請合法的主機名
- 10.1 為何需要主機名
- 10.2 注冊一個合法的主機名
- 10.3 重點回顧
- 10.4 本章習題
- 10.5 參考數據與延伸閱讀
- 第三部分:局域網絡內常見的服務器架設
- 第十一章、遠程聯機服務器SSH / XDMCP / VNC / RDP
- 11.1 遠程聯機服務器
- 11.2 文字接口聯機服務器: SSH 服務器
- 11.3 最原始圖形接口: Xdmcp 服務的啟用
- 11.4 華麗的圖形接口: VNC 服務器
- 11.5 仿真的遠程桌面系統: XRDP 服務器
- 11.6 SSH 服務器的進階應用
- 11.7 重點回顧
- 11.8 本章習題
- 11.9 參考數據與延伸閱讀
- 第十二章、網絡參數控管者: DHCP 服務器
- 12.1 DHCP 運作的原理
- 12.2 DHCP 服務器端的設定
- 12.3 DHCP 客戶端的設定
- 12.4 DHCP 服務器端進階觀察與使用
- 12.5 重點回顧
- 12.6 本章習題
- 12.7 參考數據與延伸閱讀
- 第十三章、文件服務器之一:NFS 服務器
- 13.1 NFS 的由來與其功能
- 13.2 NFS Server 端的設定
- 13.3 NFS 客戶端的設定
- 13.4 案例演練
- 13.5 重點回顧
- 13.6 本章習題
- 13.7 參考數據與延伸閱讀
- 第十四章、賬號控管: NIS 服務器
- 14.1 NIS 的由來與功能
- 14.2 NIS Server 端的設定
- 14.3 NIS Client 端的設定
- 14.4 NIS 搭配 NFS 的設定在叢集計算機上的應用
- 14.5 重點回顧
- 14.6 本章習題
- 14.7 參考數據與延伸閱讀
- 第十五章、時間服務器: NTP 服務器
- 15.1 關于時區與網絡校時的通訊協議
- 15.2 NTP 服務器的安裝與設定
- 15.3 客戶端的時間更新方式
- 15.4 重點回顧
- 15.5 本章習題
- 15.6 參考數據與延伸閱讀
- 第十六章、文件服務器之二: SAMBA 服務器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服務器的基礎設定
- 16.3 Samba 客戶端軟件功能
- 16.4 以 PDC 服務器提供賬號管理
- 16.5 服務器簡單維護與管理
- 16.6 重點回顧
- 16.7 本章習題
- 16.8 參考數據與延伸閱讀
- 第十七章、區網控制者: Proxy 服務器
- 17.1 什么是代理服務器 (Proxy)
- 17.2 Proxy 服務器的基礎設定
- 17.3 客戶端的使用與測試
- 17.4 服務器的其他應用設定
- 17.5 重點回顧
- 17.6 本章習題
- 17.7 參考數據與延伸閱讀
- 第十八章、網絡驅動器裝置: iSCSI 服務器
- 18.1 網絡文件系統還是網絡驅動器
- 18.2 iSCSI target 的設定
- 18.3 iSCSI initiator 的設定
- 18.4 重點回顧
- 18.5 本章習題
- 18.6 參考數據與延伸閱讀
- 第四部分:常見因特網服務器架設
- 第十九章、主機名控制者: DNS 服務器
- 19.1 什么是 DNS
- 19.2 Client 端的設定
- 19.3 DNS 服務器的軟件、種類與 cache only DNS 服務器設定
- 19.4 DNS 服務器的詳細設定
- 19.5 協同工作的 DNS: Slave DNS 及子域授權設定
- 19.6 DNS 服務器的進階設定
- 19.7 重點回顧
- 19.8 本章習題
- 19.9 參考數據與延伸閱讀
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服務器之三: FTP 服務器
- 21.1 FTP 的數據鏈路原理
- 21.2 vsftpd 服務器基礎設定
- 21.3 客戶端的圖形接口 FTP 聯機軟件
- 21.4 讓 vsftpd 增加 SSL 的加密功能
- 21.5 重點回顧
- 21.6 本章習題
- 21.7 參考數據與延伸閱讀
- 第二十二章、郵件服務器: Postfix
- 22.1 郵件服務器的功能與運作原理
- 22.2 MTA 服務器: Postfix 基礎設定
- 22.3 MRA 服務器: dovecot 設定
- 22.4 MUA 軟件:客戶端的收發信軟件
- 22.5 郵件服務器的進階設定
- 22.6 重點回顧
- 22.7 本章習題
- 22.8 參考數據與延伸閱讀