mount.cifs 掛載 Windows 共享文件夾的時間過長
我們的設置:
伺服器:Windows Server 2008
客戶端:SHMZ 6.6 (FreePBX, CentOS)
mount.cifs 版本:4.8.1
smbclient 版本:3.6.23-14.el6_6
使用此命令進行連接:
mount.cifs //192.168.0.10/Share /mnt/share -o "username=windowsuser,sec=ntlm,servern=SERVERNAME,password=windowsuserpassword"
掛載一個空文件夾需要 1 分 3 秒。
問題是:如何加快掛載過程?
**更新 1:**你可能已經註意到我在寫這篇文章之前沒有做任何診斷。主要是因為我不知道從哪裡開始。請至少給我一個提示如何分析連接過程。
**更新 2:**嗯,我擷取了掛載過程,我看到有 2 個主要滯後:~10 和~30 秒。雖然無法弄清楚原因。你能建議什麼嗎?http://tinypic.com/r/2cxz21z/9
在這種情況下,數據包跟踪可能會很有幫助。
tcpdump -s 0 -i eth0 -w mount-trace.pcap
然後執行您的安裝。完成後取消 tcpdump。然後在可以載入到wireshark的某個地方獲取mount-trace.pcap文件。
這將需要一些時間,但是安裝需要很長時間才能完成的 windows 卷通常是由於對話雙方無法同意繼續對話的協議。如果您查看手冊頁
mount.cifs
並查看sec=
您正在使用的參數的選項,您可以看到其中有多少。您在wireshark 中尋找的是對話部分之間的長間隔。這種事情可能表明在繼續使用故障恢復方法之前必須超時。Wireshark 對 CIFS 的支持非常好,您可以通過觀察它所經歷的各個階段來了解 Windows 身份驗證的工作原理。
如果這太可怕了,我建議
sec=ntlm
從你的 mount-command 中刪除參數並依賴預設值,或者將其設置為ntlmssp
. 這與 NTLM 是 Microsoft 身份驗證協議的舊方言有關,後來被 NTLMv2 取代,最終被kerberos取代。Windows Server 2008 已經有十年曆史了,它位於 NTLM 被堅決刪除和由於遺留原因仍然被允許之間的中間空間。不幸的是,遺留的原因包括非常舊的 CentOS 版本。就像,版本 5 舊。
一旦你再次快速獲得它,重做那個 tcpdump 並與第一個比較。你會看到差異!