Samba服務介紹
在早期的網絡世界當中,檔案資料在不同主機之間的傳輸大多是使用 ftp 這個好用的伺服器軟體來進行傳送。不過使用 FTP 傳輸檔案卻有個小小的問題, 那就是你無法直接修改主機上面的檔案資料!也就是說,你想要更改 Linux 主機上面的某個檔案時,你必須要将該檔案自伺服器下載下傳後才能修改。 也是以該檔案在伺服器與用戶端都會存在。這個時候,萬一如果有一天你修改了某個檔案, 卻忘記将資料上傳回主機,那麼等過了一陣子之後,呵呵,你如何知道那個檔案才是最新的?
簡單來說,ftp是作為一個檔案傳輸的工具,而samba服務就是實作一個檔案實時共享的一個服務。在平常工作中,我們一般實作平台之間檔案共享的場景有如下幾種:Linux伺服器-->Linux伺服器,Linux伺服器-->Windows伺服器,Windows-->Linux伺服器。既然場景不同,尤其是跨平台的檔案共享,就必須選擇正确的服務。
一般情況,我們選擇以下幾個服務來解決以上的問題:
Linux伺服器的檔案共享給Linux伺服器:NFS服務
Linux伺服器的檔案共享給Windows伺服器:Samba服務
Windows伺服器的檔案共享給Linux伺服器:這裡可以直接采用将windows的共享檔案路徑挂載至Linux的目錄下,即可通路Windows下的檔案(這裡不得不小小地吐槽一下Windows機器。。)
共享模式的配置(無需賬戶密碼)
在這個模式中,如果在區域網路内足夠安全,或者不是特别重要的檔案的互訪,那麼這個模式的配置是十分簡單和迅速的。下面開始配置。
【1】安裝samba服務
#yum install samba -y
【2】修改配置檔案
# cd /etc/samba
# cp smb.conf smb.conf.bak 備份一份再說
# vim smb.conf 把多餘的注釋去掉,增加如下的配置
# 先設定好伺服器整體環境方面的參數
[global]
# 與主機名有關的設定資訊
workgroup = WORKGROUP #要和windows在一個工作組裡
netbios name = xiao
server string = This is Yumi's samba server
# 與登入檔案有關的設定項目,注意變量 (%m)
log file = /var/log/samba/log.%m
max log size = 50
# 這裡才是與密碼有關的設定項目!
security = share
# 分享的資源設定方面:
[temp] #分享資源名稱
comment = Temporary file space #簡單的解釋此資源
path = /tmp #實際 Linux 分享的目錄
writable = yes #是否可寫入?在此例為是的
browseable = yes #能不能被浏覽到資源名稱
guest ok = yes #單純分享時,讓使用者随意登入的設定值
修改完成後,儲存退出。
【3】testparm 檢查 smb.conf 的文法是否正确
#testparm
當出現有一下這句話時Loaded services file OK.說明目前配置正确,如有錯誤根據提示修改直到無誤。
【4】啟動服務并檢視端口
#/etc/init.d/smb start
#netstat -tplnu | grep smb
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 6604/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 6604/smbd
tcp 0 0 :::445 :::* LISTEN 6604/smbd
tcp 0 0 :::139 :::* LISTEN 6604/smbd
預設的139和445端口起來就啟動成功了
【5】設定SMB開機自動啟動
#chkconfig smb on
=========================================================================================
以下為故障及解決方法:(沒有問題的同學人品杠杠滴,恭喜恭喜)
samba檔案伺服器可以通過\\IP通路samba伺服器,
現在想通過\\主機名通路,提示"找不到網絡路徑".怎麼辦?
一、服務端:
Samba的核心是兩個守護程序smbd和nmbd,伺服器啟動到停止期間持續運作。smbd監聽139 TCP端口;nmbd監聽137和138 UDP端口。smbd和nmbd使用的全部配置資訊全都儲存在smb.conf檔案中。smb.conf向smbd和nmbd兩個守護程序說明輸出什麼、共享輸出給誰及如何進行輸出以便共享。smbd程序的作用是處理到來的SMB資料包,為使用該資料包的資源與Unix 進行協商,nmbd程序使其他主機(或工作站)能浏覽Unix伺服器。
首先設定成開機啟動smb 和nmb
1 要想開機啟動某個服務怎麼設定?~!
chkconfig smb on
chkconfig --level 35 smb on
chkconfig nmb on
chkconfig --level 35 nmb on
2.如圖:
<a href="http://img1.51cto.com/attachment/201312/135340370.jpg" target="_blank"></a>
把netbios name = ""設定好
<a href="http://img1.51cto.com/attachment/201312/135539850.jpg" target="_blank"></a>
一、用戶端:
看看區域網路中其它機器有沒有相同的問題。
看看這台電腦日志裡面是怎麼寫的,盡量不要盲目而動。
工作組模式看看是否在同一組内。
我的電腦——右鍵管理——服務——“Computer Browser”看看這個服務有沒有啟動。
網路上的芳鄰——屬性——本地連接配接——屬性——“網絡的檔案和列印機共享”看看這個服務有沒安裝。
網路上的芳鄰——屬性——本地連接配接——屬性——TCP/IP——進階——WINS——“啟用了TCP/IP上的NETBIOS”
檢查一下确認啟動。
控制台——防火牆
控制台——管理工具——本地安全政策——IP安全政策
檢查有沒有傻乎乎的開防火牆。
開始——運作——cmd.exe 進入指令行模式。
輸入nbtstat -c 這個指令可以清空名稱緩存。
輸入nbtstat -n 這個指令可以列出名稱清單
輸入nbtstat -a 對方的IP 強制查詢對方的機器名 如 nbtstat -a 192.168.0.13
然後就可以用計算機名通路了
一般的情況下隻需要進行到第四步就能解決問題了,我檢查前四步裡面的設定都沒有問題,一直進行到第五步才将問題解決,我當時的情況是用一要網線直接将兩台電腦連接配接起來的,設定上IP以後我就直接進行通路了,然後就發現隻能用IP進行通路,不能用計算機名通路共享。在這裡一定要注意的是看重新開機以後還能不能用計算機名通路,如果還是不可以通路的話建議你隻能重新系統了。
本文轉自younger00851CTO部落格,原文連結: http://blog.51cto.com/younger008/1903138,如需轉載請自行聯系原作者