1. 程式人生 > >SMB服務,客戶連接及服務配置問題解析

SMB服務,客戶連接及服務配置問題解析

linux SMB服務

最近在學習smb服務,哇!簡直問題多的不要不要的。因為以前是學習的紅帽6的系統,現在用的是CentOs7,所以還是改不了以前的一些配置方式,造成了很多問題。快成地中海了!

我們準備環境:

系統: 服務端CentOs7、客戶端CentOs7、windows10

可能大多數人的錯誤在客戶端連接服務端的時候,拒絕連接。原因大部分出在沒有關閉SELinux,和防火墻(不考慮安全性的簡單訪問)以及共享目錄和訪問的目錄不一致,在這簡單提一下,重要的後面詳細。

1、關閉SELinux

setenforce 0

2、關閉防火墻

systemctl stop firewall.service    關閉firewall

上面的內容基本上在百度上都有很多(我就不在贅述他們的了),但是根本不能解決我的問題。如果能解決你的,恭喜你。不能解決請看下面。

第一條,你可能都將上面說的問題關掉了,還是出現如圖的錯誤信息

技術分享圖片

那麽你要檢查一下你的共享文件,我這裏共享的是/home/share,註意細節,在你訪問共享的時候,不許要再加上/home。記住這一小點,雖然小,但是可能讓你一兩個小時做不出來,我就是個案例。如果還是不能訪問,歡迎聯系我共同討論。

第二條,當你將上面的內容做好,如果好了,恭喜你,如果不好,咱們繼續

當你發現重新連接的時候還是沒能成功,拒絕連接的提示,可能造成的原因,還有另外一種,iptables

這裏就是CentOS7於紅帽6的不同,在7裏,iptables是直接禁用的,可能我以前作死實驗沒有重置這個防火墻,不知道你們也和我一樣嗎。和我一樣的,來把它清除掉

iptables -F  清除iptables的配置

iptables -L  查看iptables的全部配置內容,現在應該是空的

第三條,在配置完成後,你去用windows訪問的時候,是不是特別的卡。

這裏其實就是一個小的原因,如果你是用的虛擬機,並且是NAT模式,只需要將網VMwareNET8中添加DNS即可,如果沒有這個問題,請忽略這條。

特別提一點的是,如果你匿名連接成功,想在次用用戶重新鏈接登錄的時候,你發現還是原來的匿名連接,這個時候我們需要將windows裏面的共享連接斷開就行,打開windows命令行執行命令

net share    查看已有的共享連接

net use * /del  刪除所有的共享連接

第四條,也是變化非常大的一條

在紅帽6中,其中全局變量中security(設置訪問方式)的選項有很多個,值得一提的是user和share。

share在紅帽6中,表示這我們客戶端可以進行匿名訪問。而在CentOS7中是沒有這一個選項的,其他的選項也是沒有的,只有user這一個。如果你想在客戶端windows上匿名訪問,需要添加一行

map to guest = Bad User

這裏為什麽說是在windows中匿名訪問,為什麽不加上linux?看下面

我們先來看一下,簡單的共享配置內容

技術分享圖片

可以看到,我加上了匿名用戶訪問的一行,但是共享的public設為no。我們驗證一下這裏能不能匿名訪問

技術分享圖片

匿名訪問時不提供用戶名密碼,直接回車,發現拒絕掉了

我們再來看一種情況
技術分享圖片

我們將全局變量中的一行註釋掉,將public改為yes,我們再去驗證一下

技術分享圖片

我們登錄成功。

所以我的理解是,在linux中訪問,public決定著是否允許匿名訪問的權限,和全局變量中的map to guest沒有關系。所以說,當你覺得你的全局變量已經設好了,linux客戶端為什麽還不能訪問?這時,你一定要看看public的設置是不是yes。

有的配置中還會出現guest ok = yes/no的一行,其實是和public是同義的 。

這是我遇到些的問題,以及解決方法,如果能給你帶來幫助,那太好了,如果還不行(畢竟是個小菜鳥寫的),可以聯系我,共同討論一下。

SMB服務,客戶連接及服務配置問題解析