用户希望使用本地的MacOS、iPad、Linux、Windows等客户端连接阿里云上的NAS SMB文件系统,实现文件跨机器共享和永久存储。
我们接下来介绍如何通过NAT网关建立混合云架构,访问阿里云NAS SMB文件系统。
一、创建网关,将NAS SMB挂载点开放到公网
1. 建立NAT网关
2. 建立NAS SMB挂载点
3. 通过一台ECS挂载NAS SMB挂载点,找到NAS SMB挂载点IP
4. 创建网关DNAT将公网IP和445端口映射到挂载点IP和445端口
如果用户所在公网ISP没有屏蔽445端口,这样配置完成之后就可以直接访问NAS SMB文件系统。
二、将NAS SMB挂载点映射到非445端口
绝大部分公网ISP会屏蔽445端口,这时可以在网关DNAT配置时将NAS SMB 445端口映射到公网非445端口,比如16445。
1. Linux客户端
Linux客户端可以直接使用以下命令挂载公网SMB。
mount -t cifs -o port=16445 //公网IP/myshare /mnt -o vers=2.1,guest,mfsymlinks
2. MacOS客户端
实验发现MacOS客户端通过NAT网关访问NAS SMB时,需要打开NAS SMB的SMB ACL功能,然后打开匿名访问。具体方法参考将阿里云SMB协议文件系统挂载点接入AD域的控制台部分。
然后可以通过mount_smbfs命令进行访问。
mount_smbfs '//guest@公网IP:16445/myshare' /Volumes/myshare/
或者使用MacOS的Finder->Go->Connect to Server挂载,选择Guest身份进行挂载。参考Apple Mac OS X connect to SMB share。
3. Windows客户端
研究发现Windows的SMB客户端难以将445端口替换为别的端口。比如使用以下命令时:
net use z: \\公网IP@16445\myshare
抓包发现即使TCP能够连通,Windows客户端会发出HTTP请求,走WebDAV协议,而不是走SMB协议,从而导致访问失败。如果有用户研究出SMB客户端换端口的方案,欢迎告知我们。
三、总结
虽然NAT网关可以将NAS SMB挂载点开放到公网方便用户本地客户端进行访问,但是直接暴露NAS SMB文件系统到公网有安全风险,任何人拿到公网地址和端口都可以进行访问。
推荐使用VPN或者专线方案将连接保护起来。VPN + SSL的方案可以参考MacOS客户端连接阿里云NAS SMB文件系统,以及通过VPN网关实现本地数据中心访问阿里云NAS。