通用型NAS NFS协议文件系统传输加密采用TLS协议,以保障您的ECS实例与NAS服务之间网络传输链路上的数据安全,确保在传输过程中数据不被窃取或篡改。本文介绍如何使用NAS客户端工具挂载通用型NAS NFS协议文件系统实现数据传输加密。
工作原理
NAS客户端工具定义了一个网络文件系统类型alinas,与标准mount命令兼容。在ECS实例挂载alinas类型文件系统时,如果指定tls参数,NAS客户端工具会启动一个Stunnel监听进程,该进程转发并加密ECS实例对NAS服务器的访问,同时会触发一个后端进程aliyun-alinas-mount-watchdog保障Stunnel监听进程的可用性。
前提条件
-
已创建通用型NAS NFS协议文件系统。具体操作,请参见创建文件系统。
重要开启传输加密功能时,如果您的目标ECS实例上对应目录(例如/mnt)已挂载NFS协议文件系统,请先卸载NFS协议文件系统,再根据本文重新挂载NFS协议文件系统。关于如何卸载NFS协议文件系统的操作,请参见通过NAS控制台卸载挂载目录。
-
目标ECS实例已配置公网或绑定弹性公网IP。更多信息,请参见网络带宽。
-
ECS实例和NAS文件系统位于同一地域和同一VPC下。
使用说明
-
仅支持通用型NAS NFS协议文件系统。
-
NAS客户端支持的操作系统
操作系统类型
操作系统版本
Alibaba Cloud Linux
-
Alibaba Cloud Linux 2.1903 64位
-
Alibaba Cloud Linux 3.2104 LTS 64位
Red Hat
-
Red Hat Enterprise Linux 7.x 64位
-
Red Hat Enterprise Linux 8.x 64位
CentOS
-
CentOS 7.x 64位
-
CentOS 8.x 64位
Ubuntu
-
Ubuntu 16.04 64位
-
Ubuntu 18.04 64位
-
Ubuntu 20.04 64位
Debian
-
Debian 9.x 64位
-
Debian 10.x 64位
-
-
传输加密的性能损耗
开启传输加密的挂载与未开启传输加密的挂载相比,访问延迟会增加约10%,IOPS会下降约10%。
-
使用NAS客户端的说明
-
NAS客户端工具使用Stunnel监听进程进行TLS加密代理。对于吞吐密集型应用,Stunnel监听进程会消耗大量CPU执行加解密操作。在极端情况下,每个挂载会占用一整个核。
-
NAS客户端传输加密功能依赖第三方证书,第三方证书需要定期更换,NAS会提前一个月通过邮件、站内信发出通知,请您关注信息并及时更新NAS客户端工具aliyun-alinas-utils版本,未更新NAS客户端工具将导致使用传输加密方式挂载的NAS文件系统在证书过期后停止响应。
-
使用NAS客户端工具会修改您账号下ECS实例的/etc/hosts文件。即挂载文件系统时,会将新的挂载点映射写入/etc/hosts文件;卸载文件系统时,会删除之前写入的挂载点映射。
-
NAS客户端工具使用Stunnel监听进程进行TLS加密代理时,会占用127.0.1.1~127.0.255.254中的IP作为Stunnel监听进程的IP,并需要使用12049端口,请您确保目标IP和端口可用。
您可以执行ss -ant | grep -w 12049命令判断目标端口是否被占用。如果返回为空,则表示目标端口未被占用。如果端口被占用,请您修改配置文件。具体操作,请参见如何修改NAS客户端配置文件。
-
步骤一:下载与安装NAS客户端
Alibaba Cloud Linux
-
下载客户端。
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.generic.x86_64.rpm -
安装客户端。
sudo yum install aliyun-alinas-utils-*.rpm -
检查NAS客户端安装结果。
which mount.alinas如果回显包含如下类似信息,说明NAS客户端安装成功。

CentOS
-
下载客户端。
-
CentOS 7.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.el7.x86_64.rpm -
CentOS 8.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.el8.x86_64.rpm
-
-
安装客户端。
sudo yum install aliyun-alinas-utils-*.rpm -
检查NAS客户端安装结果。
which mount.alinas如果回显包含如下类似信息,说明NAS客户端安装成功。

Red Hat Enterprise Linux
-
下载客户端。
-
Red Hat Enterprise Linux 7.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.el7.x86_64.rpm -
Red Hat Enterprise Linux 8.x
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.el8.x86_64.rpm
-
-
安装客户端。
sudo yum --disablerepo=rhui-rhel-7-server-rhui-extras-debug-rpms install aliyun-alinas-utils-*.rpm -
检查NAS客户端安装结果。
which mount.alinas如果回显包含如下类似信息,说明NAS客户端安装成功。

Ubuntu和Debian
-
下载客户端。
wget https://aliyun-encryption.oss-cn-beijing.aliyuncs.com/aliyun-alinas-utils-1.9-0.20260310195315.816118.deb -
安装客户端。
sudo apt update sudo dpkg -i aliyun-alinas-utils-*.deb sudo apt-get install -f sudo dpkg -i aliyun-alinas-utils-*.deb -
检查NAS客户端安装结果。
which mount.alinas如果回显包含如下类似信息,说明NAS客户端安装成功。

步骤二:以传输加密方式挂载文件系统
-
挂载NFS协议文件系统。
-
NFSv3协议
sudo mount -t alinas -o tls,vers=3 file-system-id.region.nas.aliyuncs.com:/ /mnt -
NFSv4.0协议
sudo mount -t alinas -o tls,vers=4.0 file-system-id.region.nas.aliyuncs.com:/ /mnt
挂载命令中的参数说明如下表所示。
说明挂载文件系统时,NAS客户端工具将自动使用最佳参数进行挂载,无需手动添加。更多信息,请参见挂载命令参数说明。
参数
说明
file-system-id.region.nas.aliyuncs.com:/ /mnt
表示<挂载地址>:<NAS文件系统目录> <当前服务器上待挂载的本地路径>,请根据实际情况替换。
-
挂载地址:您可以在文件存储NAS控制台文件系统列表页面,单击目标文件系统后的管理,进入挂载使用页面获取挂载地址。更多信息,请参见管理挂载点。
-
NAS文件系统目录 :NAS的根目录(/)或任意子目录(例如:/share),如果是子目录,请您确保子目录是NAS文件系统中实际已存在的目录。
-
当前服务器上待挂载的本地路径:Linux ECS实例的任意子目录(例如:/mnt),请您确保子目录在本地文件系统存在。
vers
NFS协议文件系统版本。
-
vers=3:使用NFSv3协议挂载文件系统。
-
vers=4.0:使用NFSv4.0协议挂载文件系统。
tls
启用数据传输加密。
-
-
执行
mount -l命令,查看挂载结果。如果回显包含如下类似信息,说明挂载成功。
alinas-xxx.cn-zhangjiakou.tls.127.0.1.3:/ on /mnt type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,port=12050,timeo=600,retrans=2,sec=sys,mountaddr=127.0.1.3,mountvers=3,mountport=12050,mountproto=tcp,local_lock=all,addr=127.0.1.3)挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。
-
可选:配置开机时自动挂载。
为避免已挂载文件系统的ECS实例重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在ECS实例重启时NFS协议文件系统自动挂载。
-
打开/etc/fstab配置文件,添加挂载配置。
file-system-id.region.nas.aliyuncs.com:/ /mnt alinas _netdev,tls 0 0示例中主要参数说明,请参见挂载NFS协议文件系统。其余参数说明如下。
参数
说明
_netdev
防止客户端在网络就绪之前开始挂载文件系统。
0(tls后第一项)
非零值表示文件系统应由dump备份。对于NAS文件系统而言,此值默认为0。
0(tls后第二项)
该值表示fsck在启动时检查文件系统的顺序。对于NAS文件系统而言,此值默认为0,表示fsck不应在启动时运行。
-
执行
reboot命令,重启ECS实例。重启云服务器会中断业务,建议您在业务低谷时期重启云服务器。
说明在重启ECS实例前,请确认手动挂载成功,避免ECS实例重启失败。另外,如果自动挂载配置成功,在ECS实例重启后,可以通过
df -h命令查看到挂载的NAS文件系统。
-
NAS客户端日志
您可以通过访问/var/log/aliyun/alinas/路径下的NAS客户端日志定位挂载报错信息。同时可以通过修改日志配置文件/etc/aliyun/alinas/alinas-utils.conf中的参数,定制NAS客户端日志内容。修改配置文件后,请您执行sudo service aliyun-alinas-mount-watchdog restart命令,重启后端watchdog进程。
日志配置文件中的重要参数如下:
|
参数 |
说明 |
|
logging_level |
日志级别。默认为INFO。 |
|
logging_max_bytes |
日志文件的最大容量。默认为1048576字节,即单个日志文件最大为1 MB。 |
|
logging_file_count |
日志文件的最大保留数量。默认为10,即最多保留10个日志文件。 |
|
stunnel_debug_enabled |
Stunnel监听进程debug日志。默认为false,开启时会占用大量存储容量。 |
|
stunnel_check_cert_hostname |
检查证书域名。默认为false。 |
|
stunnel_check_cert_validity |
检查证书合法性。默认为false。 |
错误排查
-
问题现象
挂载文件系统时,返回如下报错信息:
$sudo mount -t alinas -o tls,vers=4.0 xxx cn-hangzhou.nas.aliyuncs.com /mnt Failed to find a loopback ip from 127.0.1.1 ~ 127.0.0.255.254 with port 12049 -
可能原因
Stunnel监听进程的IP或12049端口被占用,导致文件系统挂载失败。
-
解决方案
-
方案一:找到并结束占用12049端口的进程,然后重新挂载文件系统。
-
方案二:修改NAS客户端工具配置文件/etc/aliyun/alinas/alinas-utils.conf中的proxy_port参数,修改为未被占用的端口号,然后重新挂载文件系统。
[DEFAULT] logging_level = INFO logging_max_bytes = 1048576 logging_file_count = 10 [mount] stunnel_debug_enabled = false # Validate the certificate hostname on mount. This option is not supported by certain stunnel versions. stunnel_check_cert_hostname = false # Use OCSP to check certificate validity. This option is not supported by certain stunnel versions. stunnel_check_cert_validity = false proxy_port = 12050 [mount-watchdog] poll_interval_sec = 1 unmount_grace_period_sec = 30
-