NFS配置_CentOS8_firewalld_win2016_群晖DSM
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-04-09.
参考链接:
CentOS8, NFS-server
- 安装
yum install nfs-utils
,会自动安装rpcbind
。 - rpcbind会自动激活并启动,nfs-client也会自动激活和启动。
systemctl enable nfs-server
,systemctl start nfs-server
激活和启动 nfs服务。- 修改、配置
/etc/exports
文件。 exportfs -r
刷新,启用新配置。- 防火墙设置。或者干脆关闭防火墙。
firewall-cmd --add-service rpc-bind #允许 tcp+udp/111, rpcinfo用
firewall-cmd --add-service mountd #允许 tcp+udp/mountd端口, showmount用
firewall-cmd --add-service nfs #允许 tcp/nfs端口, 挂载nfs目录用
firewall-cmd --add-service nfs3 #允许 udp/nfs端口, 挂载nfs目录用
firewall-cmd --add-service rpc-bind --permanent
firewall-cmd --add-service mountd --permanent
firewall-cmd --add-service nfs --permanent
firewall-cmd --add-service nfs3 --permanent
# 或者只执行后四句,然后执行 firewall-cmd --reload
- 查看rpc的注册服务
rpcinfo -p IP
- 查看nfs的共享目录
showmount -e IP
- 挂载nfs目录
mount IP:/远端目录 /本地目录
- 官方文档:【4.11. Configuring the NFS server to run behind a firewall】,【4.14. Configuring an NFSv4-only server】
- 【如何在CentOS 8安装并配置NFS服务】,【centos8安装及配置nfs4和防火墙】
- 关于showmount -e信息泄露(CEE-1999-0554),centos8 已经废弃了tcp_wrappers,没有 hosts.allow/hosts.deny 了。
只能使用防火墙规则来解决了。
CentOS7
- 官方文档:【8.6.3. Running NFS Behind a Firewall】,【8.6.7. Configuring an NFSv4-only Server】
- 【centos7 nfs固定端口】,【CentOS7下NFS服务安装及配置】
- 【Linux漏洞目标主机showmount -e信息泄露(CEE-1999-0554)】,【CVE-1999-0554 | 目标主机showmount -e信息泄露漏洞修复】
debian10
- Client: 安装
apt install nfs-common
,会自动安装rpcbind
。 - Server: 安装
apt install nfs-kernel-server
- 其他设置类似。
- 参考【How to Set Up a NFS Server on Debian 10 Buster】
- 关于
showmount -e
信息泄露。有 hosts.allow/hosts.deny, 设置 mountd 或 rpcbind 规则. 如 denymountd: ALL
, allowmountd: IP
即可。
群晖DSM, NFS设置
- 开启NFS。
控制面板
->文件服务
->启动NFS服务
-> 勾上v4.1的支持。
- 设置某个目录的nfs权限。
控制面板
->共享文件夹
-> 选择目录 ->编辑
->NFS权限
->新增
- 官方文档:【DSM-NFS 服务】
- 官方文档:【DSM-创建共享文件夹】, 如果是btrfs,可以启用透明压缩。
Windows server 2016
- 安装 NFS 服务
- 添加角色和功能
- 在
服务器角色
中,NFS服务
隐藏的很深。在文件和存储服务
->文件和iSCSI服务
->NFS服务器
- 在
功能
中,勾上NFS客户端
- 服务器不需要重启,就能完成安装。装完,直接就可以设置、使用。
- 设置NFS共享。
- 在选定的文件夹上点鼠标右键,选
属性
,找到NFS共享
选项卡,点管理NFS共享
。 - 添加允许共享的IP,在右下角的
权限
中。只能一个IP一个IP添加。不知道如何添加一个网段。 - NFS共享使用的字符集中,没有UTF8的选项。
- 在选定的文件夹上点鼠标右键,选
- 【Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题】
win中有个命令WindowsSystem32 fsfile.exe
与文件权限有关。 nfsfile.exe
使用不当,容易搞乱ntfs的文件权限。建议新建一个文件夹,来做测试。
另,WindowsSystem32icacls.exe
或cacls.exe
是用来批量设置ntfs文件权限的命令。
OMV, OpenMediaVault
- 【OpenMediaVault 3.0.87数据分区文件系统从EXT4升级到BTRFS并启用压缩特性】
- OMV-5.5.11, 改 btrfs 的默认挂载,启用透明压缩/硬盘压缩。
- 修改
/usr/share/php/openmediavault/globals.inc
中,
OMVEnvironment::set("OMV_FSTAB_MNTOPS_BTRFS", "defaults,nofail");
改为,
OMVEnvironment::set("OMV_FSTAB_MNTOPS_BTRFS", "defaults,nofail,compress=lzo,autodefrag,commit=0,noatime");
重启服务service openmediavault-engined restart
生效。- 目前btrfs支持lzo zlib两种算法。btrfs的压缩默认对不易压缩的文件直接存储。
加上-force后,强制压缩所有文件。如compress-force=lzo
- 目前btrfs支持lzo zlib两种算法。btrfs的压缩默认对不易压缩的文件直接存储。
- 今后,只要把磁盘格式化为 btrfs, 重新挂载后, 就会启用透明压缩。
- 修改
- omv 挂载磁盘是通过 label 名称,不允许 label 中包含空格。
- 查看/修改 btrfs 的 label, 使用命令,
查看:btrfs filesystem label /dev/md127
; 这个命令要等6秒才输出,不知为什么。
修改:btrfs filesystem label /dev/md127 newlabel_name
;
- 查看/修改 btrfs 的 label, 使用命令,
- omv 的 NFS 共享,支持 nfs4.2 协议。
mount IP:/export/share local_dir
是 vers=3;mount IP:/share local_dir
是 vers=4.2;
- 关于
showmount -e
信息泄露。有 hosts.allow/hosts.deny, 设置 mountd 或 rpcbind 规则. 如 denymountd: ALL
, allowmountd: IP
即可。
UnRAID
- 【UnRAID_6.9.1_配置_设置】
- 只支持vers=3,不支持NFS4。
haneWIN NFS
- 这是一个windows平台下的第三方nfs server,需要注册。https://www.hanewin.net/nfs-e.htm
- 在win10上,非常轻量,非常好用。支持 NFS2, NFS3 。还不支持 NFS4.
- 目前是 v1.2.59 (2021-6-10)
- 有两个版:安装版,可以作为系统服务随系统启动而启动。portable(便携绿色版),手工启动执行。
- 安装版,安装后,如果输入注册码后无法注册,或启动nfs服务显示“权限拒绝”,重启整个系统试试,通常能解决。
- 防火墙设置: windows防火墙 -> 允许应用通过防火墙 -> 允许其他应用 ,
添加C:Program Files fsdpmapd.exe
和C:Program Files fsd fsd.exe
允许通过防火墙,即可。 - 设置共享目录:【见 NFS manual】
不加-range
参数,IP列表为,空格隔开的单个IP。
加上(勾上)-range
参数,IP列表中,每两个IP,解释为一个IP段。
比如192.168.1.5 192.168.1.30 10.1.1.1 10.1.1.20
则为两个IP段 "192.168.1.5-30","10.1.1.1-20" - 被共享的win目录,不要有“隐藏”属性,否则haneWIN NFS拒绝读写,导致访问共享时
Access deny
拒绝访问。 - 没有
showmount -e
信息泄露。因为可以配置,无权限的IP,不可见。