我使用 Azure 存储配置了一个 SMB 文件共享。我无法从 Azure 云外部连接到它。连接说明明确指出
若要连接到此文件共享,请从同一订阅和位置上的任何 Windows 虚拟机运行以下命令:
如何将 Azure 文件存储配置为可通过公共互联网使用?
如果使用的是 SMB 3.0 协议,则应该能够通过将共享装载为网络驱动器来从 Azure 外部访问文件。不过,您可能需要在防火墙上打开TCP端口445。
有关更多详细信息,请参阅此链接:https://azure.microsoft.com/en-in/documentation/articles/storage-dotnet-how-to-use-files/#mount-the-file-share
若要从本地客户端装载文件共享,必须先执行以下步骤:
1.安装支持 SMB 3.0 的 Windows 版本。Windows 将利用 SMB 3.0 加密在本地客户端和云中的 Azure 文件共享之间安全地传输数据。
2.根据 SMB 协议的要求,为本地网络中的端口 445(TCP 出站)开放互联网访问
然后,在本地客户端上,只需按照连接说明运行命令
:net use <drive-letter>: \<storage-account-name>.file.core.windows.net<share-name> /u:<storage-account-name> <storage-account-key>
如果已启用端口 445,但遇到以下错误:
发生系统错误 53。 找不到网络路径。
您可能需要咨询您的服务提供商,某些互联网服务提供商可能会阻止端口 445。您可以参考此文章了解详细信息。
端口 445 在我的路由器上打开。我花了一些时间才找到一个额外的选项:Netbios 必须设置为"允许"
这是我的情况....
当我尝试使用 SMB 3.0 在 Azure 中使用(我的 VM 在 Azure 上,我的存储帐户也在同一区域)时,我遇到了装载错误。但是当我将SMB版本更改为2.1时,它成功了。请参阅下面的示例
例如:
在 Azure 中失败的命令(使用 SMB 3.0 版本)
sudo mount -t cifs//storageaccountname.file.core.windows.net/shared/mnt/mount -o vers=3.0,用户名=xxxxxxx,password=xxxxx,dir_mode=0777,file_mode=0777
结果:
装载错误(11):资源暂时不可用请参考 mount.cifs(8) 手册页 (例如 man mount.cifs)
在 Azure 中使用的工作命令(使用 SMB 2.1 版本)
sudo mount -t cifs//storageaccountname.file.core.windows.net/shared/mnt/mount -o vers=2.1,用户名=xxxxxxx,password=xxxxx,dir_mode=0777,file_mode=0777
结果:
它已成功安装