Cannot copy %filename%, network name no longer available under NAT / 在NAT複製檔案環境發生無法複製%filename%, 指定的網路名稱無法使用
最近因故把外單位的網路由直接連接VPN專線改成NAT連線,在網路磁碟(網路上的芳鄰) 複製檔案時發生 『無法複製[檔案名稱], 指定的網路名稱無法使用』的錯誤訊息,而且小檔案會過,複製大檔時才當,完全摸不著頭緒。
查了非常久,中文都沒有相同的問題,後來半猜半找,才發現 Cannot copy %filename%, network name no longer available.和您不能將多個用戶端連線透過 NAT 裝置、You cannot make more than one client connection over a NAT device。
根據 Bhupinderk 的回答,造成問題是有第二個人連進來,NAT IP上前一個client的session就斷了。解法就是必須強制使用139 port連線,解法如下:
停用伺服器上的445 port:
預設值為 1 (啟用)
To disable direct hosting on the server:
微軟英文版有較多的說明: Note To permit multiple connections over the NAT device, Microsoft recommends that you use SMB2 or Web Distributed Authoring and Versioning (WebDAV). With these technologies, you can perform standard file operations on a remote share. SMB2 is a new protocol that was introduced in Windows Vista. Only systems running Windows Vista and later can use the SMB2 protocol.
看到我標紅字的部份了沒?直接block 445 port似乎是最快的解決方法呀,中文版又沒有寫 Orz
整個事件可以說成:NT 4.0的SMB用戶端可以在NAT環境正常運作,只需要139 port;到Win2K加入445 port提高安全性,卻不能在NAT環境下正常運作;到了Vista/2008之後再引進SMB2才能在NAT環境下正常運作。
Update: 只在Firewall擋445 port仍然不行,Server上仍然要設定SmbDeviceEnabled
Reference: 您不能將多個用戶端連線透過 NAT 裝置
You cannot make more than one client connection over a NAT device
What’s Port 445 in W2K/XP/2003? – SMB Over TCP
查了非常久,中文都沒有相同的問題,後來半猜半找,才發現 Cannot copy %filename%, network name no longer available.和您不能將多個用戶端連線透過 NAT 裝置、You cannot make more than one client connection over a NAT device。
根據 Bhupinderk 的回答,造成問題是有第二個人連進來,NAT IP上前一個client的session就斷了。解法就是必須強制使用139 port連線,解法如下:
- 打開regedit.exe
- 編輯HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
- 增加一個DWORD值,名稱為 SmbDeviceEnabled ,值設為 0
停用伺服器上的445 port:
- 啟動 「 登錄編輯程式 」。
- 找出並按一下下列登錄機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters - 新增下列登錄值:
值名稱: SmbDeviceEnabled - 型別: REG_DWORD
數值資料: 0
預設值為 1 (啟用)
To disable direct hosting on the server:
- Start Registry Editor.
- Locate and then click the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters - Add the following registry value:
Value Name : SmbDeviceEnabled - Type : REG_DWORD
Value Data : 0
微軟英文版有較多的說明: Note To permit multiple connections over the NAT device, Microsoft recommends that you use SMB2 or Web Distributed Authoring and Versioning (WebDAV). With these technologies, you can perform standard file operations on a remote share. SMB2 is a new protocol that was introduced in Windows Vista. Only systems running Windows Vista and later can use the SMB2 protocol.
看到我標紅字的部份了沒?直接block 445 port似乎是最快的解決方法呀,中文版又沒有寫 Orz
整個事件可以說成:NT 4.0的SMB用戶端可以在NAT環境正常運作,只需要139 port;到Win2K加入445 port提高安全性,卻不能在NAT環境下正常運作;到了Vista/2008之後再引進SMB2才能在NAT環境下正常運作。
Update: 只在Firewall擋445 port仍然不行,Server上仍然要設定SmbDeviceEnabled
Reference: 您不能將多個用戶端連線透過 NAT 裝置
You cannot make more than one client connection over a NAT device
What’s Port 445 in W2K/XP/2003? – SMB Over TCP
留言