SMB服務,客戶連接及服務配置問題解析
我們準備環境:
系統: 服務端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服務,客戶連接及服務配置問題解析