Windows 文件資源管理器使用埠 80 (webdav) 而不是 445 (samba smb cifs) 作為 UNC 路徑
我有一台 Windows 7 Ultimate x86_64 機器,它無法訪問網路 samba 伺服器。我啟動“執行”對話框,然後輸入,
\\192.168.x.x
這樣我就繞過了 DNS 和 NetBIOS 名稱解析和廣播發現,直接進入伺服器 IP 地址。我執行了wireshark,發現客戶端試圖連接到伺服器的埠是80,而不是445。(這當然失敗,因為伺服器沒有監聽80;伺服器只執行samba和nmbd等,所以只有埠445和 137-139 適用)。我知道這個問題,我不相信這是重複的,因為(a)這個問題在 Win XP 上已經超過 2 年了,並且(b)在這種情況下沒有任何答案有幫助,儘管其他問題已標記為已回答。
錯誤消息是:
Windows Cannot Access \\192.168.x.x
當我點擊“查看詳細資訊”時,它說Error Code 0x800704cf The network location cannot be reached
我確認存在並啟用**了 Microsoft 網路客戶端。**我什至將其刪除(被迫重新啟動)並重新安裝。沒有效果。
我禁用了 IPv6,沒有效果。
我確認WebClient服務沒有執行。(它設置為手動,並且沒有執行)。
我確認TCP/IP NetBIOS Helper服務正在執行。(它設置為自動,並且正在執行。)
當然,我已經重新啟動並重試了。(幾次和幾種方式)。
該問題似乎存在於舊更新檔級別,並且在應用所有 Windows 更新後也繼續存在。
為什麼 Windows 會嘗試使用埠 80 (webdav) 而不是埠 445 (samba/smb/cifs) 將文件資源管理器連接到 UNC 路徑?
net view 192.168.x.x
在受影響的客戶端上引發錯誤消息:C:\Windows\system32>net view 192.168.x.x System error 53 has occurred. The network path was not found. C:\Windows\system32>ping 192.168.x.x Pinging 192.168.x.x with 32 bytes of data: Reply from 192.168.x.x: bytes=32 time<1ms TTL=64 Reply from 192.168.x.x: bytes=32 time<1ms TTL=64
但在另一個客戶端上工作正常:
C:\Users\eharvey>net view 192.168.x.x Shared resources at 192.168.x.x netfiles server (Samba, Ubuntu) Share name Type Used as Comment ------------------------------------------------------------------------------- myshare Disk My Company data storage The command completed successfully.
如果數據包擷取顯示沒有超過 445 的嘗試,則表明客戶端首先嘗試 WebDav。這可能是因為 WebDav 在 Network Provider Order 中較高。要檢查:
- 打開網路連接
- 高級菜單
- 高級設置…
- 提供者訂單選項卡
- 確保Microsoft Windows 網路高於Web 客戶端網路
我知道您已嘗試為 Microsoft 網路重新安裝客戶端,但如果您不需要它,請在每個客戶端上執行以下操作:
- 打開“網路連接”。
- 在您希望連接到 samba 共享的每個適配器上:
- 右鍵點擊並選擇“屬性”取消勾選“Microsoft 網路客戶端”
- 導航至:網路連接 > 高級 > 高級設置 > 適配器和綁定
- 驗證“Microsoft 網路客戶端”現在位於底部且未選中
- 現在轉到提供商訂單選項卡並確保“Web 客戶端網路”位於網路提供商列表的底部。
- 重新啟動電腦並嘗試再次連接到主機。
您也可以嘗試阻止埠 80 或將其重定向到埠 445。