通过NAT网关实现本地客户端访问NAS SMB文件系统

用户希望使用本地的MacOS、iPad、Linux、Windows等客户端连接阿里云上的NAS SMB文件系统,实现文件跨机器共享和永久存储。
我们接下来介绍如何通过NAT网关建立混合云架构,访问阿里云NAS SMB文件系统。

一、创建网关,将NAS SMB挂载点开放到公网

参考通过NAT网关实现本地数据中心访问阿里云NAS

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。
通过NAT网关实现本地客户端访问NAS SMB文件系统

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文件系统

三、总结

虽然NAT网关可以将NAS SMB挂载点开放到公网方便用户本地客户端进行访问,但是直接暴露NAS SMB文件系统到公网有安全风险,任何人拿到公网地址和端口都可以进行访问。
推荐使用VPN或者专线方案将连接保护起来。VPN + SSL的方案可以参考MacOS客户端连接阿里云NAS SMB文件系统,以及通过VPN网关实现本地数据中心访问阿里云NAS

四、引用

1. 通过NAT网关实现本地数据中心访问阿里云NAS

2. 将阿里云SMB协议文件系统挂载点接入AD域

3. Apple Mac OS X connect to SMB share

4. MacOS客户端连接阿里云NAS SMB文件系统

5. 通过VPN网关实现本地数据中心访问阿里云NAS

上一篇:在 NAS SMB 卷上搭建 IIS + WordPress + MYSQL


下一篇:SQLServer使用NAS SMB文件卷