
家里那台群晖NAS平时跑得好好的一次小区临时停电之后手机上的DSM就连不上了。查了半天才发现路由器重启后DHCP重新分配NAS的IP从原来的192.168.1.100变成了192.168.1.103之前映射好的网络驱动器、NFS挂载、Docker容器里的路径引用全部失效。这种事发生一次就够折腾的所以静态IP这件事越早配好越省心。这篇内容面向所有用群晖NAS的朋友不管你是刚入手DSM的新手还是已经跑了一堆服务的老玩家只要你的NAS还在用DHCP自动获取IP就值得花十分钟把静态IP配好。配完之后我还会顺带讲一下Linux端怎么通过NFS挂载群晖的共享目录以及挂载过程中容易踩的那些坑。整套流程我自己在DSM 7.x上反复验证过照着做基本不会出问题。1. 为什么断电重启后NAS的IP会变1.1 DHCP分配机制的本质很多人以为路由器会给同一台设备永远分配同一个IP其实不是。DHCP协议的工作方式是设备上线时广播一个请求路由器从地址池里挑一个当前空闲的IP租给它同时给一个租期Lease Time。租期到了或者路由器重启导致租约表丢失下次这台设备再请求时路由器可能就分配一个不同的IP了。家用路由器尤其如此。大部分家用路由器的DHCP租约表存在内存里断电即丢失。来电后路由器重新启动DHCP服务从零开始分配谁先连上来谁先拿号。你的NAS如果启动比手机、电脑慢那它拿到的IP就可能和之前不一样。1.2 群晖在DHCP模式下的默认行为群晖DSM出厂默认网络配置就是DHCP自动获取。在DSM的控制面板 → 网络 → 网络界面里可以看到默认选的是自动取得网络设置DHCP。这个模式下NAS每次启动都会向路由器请求IP路由器给什么就用什么。这里有个细节值得注意群晖NAS在DHCP模式下如果路由器支持它会尝试请求上次用过的IP。但这个请求只是建议路由器完全可以拒绝并分配别的地址。所以你不能指望这个机制来保持IP稳定。1.3 IP变化带来的连锁反应IP一变受影响的东西比你想的多网络驱动器映射失效Windows上映射的网络盘符指向的是旧IP连不上就会显示红叉。NFS/SMB挂载断开Linux服务器上通过/etc/fstab挂载的NFS共享重启后会挂载失败因为旧IP已经不通了。Docker容器路径引用出错如果容器里配置了指向NAS IP的卷映射或环境变量IP一变全部失效。监控和备份任务中断比如Hyper Backup、Active Backup for Business等套件里配置的目标地址如果是IP形式也会断。媒体库和下载工具异常Emby、Plex、qBittorrent等如果通过IP访问NAS上的资源同样会出问题。所以静态IP不是一个锦上添花的设置而是NAS稳定运行的基础设施。下面进入正题讲怎么配。2. 在DSM里配置静态IP的完整步骤2.1 配置前的准备工作动手之前先确认三件事第一确认当前网段信息。在DSM里打开控制面板 → 网络 → 网络界面点开当前使用的网卡通常叫LAN 1记下当前的IP地址、子网掩码、网关和DNS。这些信息配静态IP时要用。第二确认路由器DHCP地址池范围。登录路由器管理后台找到DHCP设置看看地址池是从哪个IP到哪个IP。比如地址池是192.168.1.100到192.168.1.200那你就应该把NAS的静态IP设在这个范围之外比如192.168.1.10或者192.168.1.250。这样做的目的是避免路由器把同一个IP分配给别的设备造成IP冲突。第三确认没有其他设备占用你打算用的IP。在电脑上ping一下你想用的那个IP比如ping 192.168.1.10如果没有回应说明大概率是空闲的。提示如果你不确定路由器的DHCP地址池范围一个稳妥的做法是选一个网段里靠前或靠后的地址比如x.x.x.2到x.x.x.50之间或者x.x.x.240到x.x.x.254之间。这些地址通常不在默认地址池里。2.2 在DSM中设置静态IP打开控制面板 → 网络 → 网络界面选中你正在使用的网卡点击上方的编辑按钮。在弹出的窗口中选择使用手动设置然后填入以下信息配置项填写内容说明IP地址192.168.1.10示例选DHCP池外的空闲地址子网掩码255.255.255.0家用网络通常都是这个网关192.168.1.1一般是路由器地址DNS服务器192.168.1.1 或 223.5.5.5可以填路由器地址或公共DNS填完之后点确定DSM会提示网络设置已更改可能需要几秒钟生效。这时候如果你是通过浏览器访问DSM的可能会短暂断连等几秒后用新IP重新访问即可。2.3 验证静态IP是否生效配置完成后做两个验证验证一确认DSM里显示的是手动设置。回到网络界面看网卡状态应该显示手动设置而不是DHCP。验证二重启NAS后确认IP不变。这是最关键的一步。在DSM里点重启等NAS完全重启后用你设置的静态IP访问DSM。如果能正常访问说明静态IP配置成功。注意有些朋友配完静态IP后忘了改路由器的DHCP保留设置如果你之前在路由器里给NAS做过MAC地址绑定记得把那条绑定删掉或者改成对应的静态IP否则可能冲突。2.4 路由器端要不要也做绑定这是一个常见疑问。我的建议是DSM里设了静态IP之后路由器端就不需要再做MAC绑定。两者选其一即可同时做反而容易出问题。DSM端设静态IP的好处是不依赖路由器换了路由器也不用重新配。路由器端绑定的好处是NAS端不用改设置但换路由器就失效了。如果你选择在路由器端做静态绑定也就是DHCP保留那DSM里保持DHCP模式就行。但我个人更推荐在DSM端直接设静态IP原因很简单少一层依赖少一个出问题的环节。3. Linux端通过NFS挂载群晖共享目录3.1 群晖端开启NFS服务静态IP配好之后NAS的地址就固定了接下来在Linux端挂载NFS共享才不会因为IP变化而断掉。先在群晖这边把NFS服务开起来。打开控制面板 → 文件服务 → NFS勾选启用NFS服务NFS版本建议选NFSv4.1或NFSv3兼容性都不错。然后到你想要共享的文件夹上右键 → 属性 → NFS权限 → 新增配置允许访问的客户端IP和权限。NFS权限配置里几个关键项主机名或IP地址填Linux服务器的IP或者填*允许所有不推荐安全性差。权限只读或读写按需选择。Squash建议选无映射no_root_squash或映射到管理员root_squash前者方便但安全性略低后者更安全但需要注意文件权限。异步建议勾选能提升性能。3.2 Linux端安装NFS客户端不同的Linux发行版安装命令不同# Debian/Ubuntu 系 sudo apt update sudo apt install nfs-common # RHEL/CentOS/Rocky Linux 系 sudo dnf install nfs-utils # openEuler 系 sudo dnf install nfs-utils安装完成后先用showmount命令测试一下能不能看到群晖的NFS共享showmount -e 192.168.1.10如果返回了共享目录列表说明NFS服务正常网络也通。如果报错clnt_create: RPC: Program not registered通常是群晖端NFS服务没启动或者防火墙挡了。3.3 手动挂载测试在写进fstab之前先手动挂载一次确认没问题# 创建本地挂载点 sudo mkdir -p /mnt/nas # 手动挂载 sudo mount -t nfs 192.168.1.10:/volume1/share /mnt/nas挂载成功后用df -h看一下应该能看到这个NFS挂载点。然后ls /mnt/nas确认能读到文件。如果挂载报错mount: wrong fs type, bad option, bad superblock常见原因有几个群晖端NFS权限没配好、NFS版本不匹配、或者防火墙没放行。可以尝试指定NFS版本sudo mount -t nfs -o vers3 192.168.1.10:/volume1/share /mnt/nas3.4 写入fstab实现开机自动挂载手动挂载没问题后就可以写进/etc/fstab了。编辑fstab文件sudo vim /etc/fstab添加一行192.168.1.10:/volume1/share /mnt/nas nfs defaults,_netdev,vers3 0 0这里几个参数解释一下defaults使用默认挂载选项rw, suid, dev, exec, auto, nouser, async。_netdev告诉系统这是网络设备等网络就绪后再挂载。这个参数非常关键不加的话开机时网络还没起来就尝试挂载会失败。vers3指定NFS版本。如果你的群晖和Linux都支持NFSv4也可以写vers4.1。最后两个0 0第一个0表示不dump备份第二个0表示不开机fsck检查。保存后用sudo mount -a测试一下fstab有没有语法错误。如果没有报错说明配置正确。提示如果你的Linux服务器有多个网卡或者网络启动较慢可以在fstab里加上x-systemd.automount和x-systemd.mount-timeout30让systemd在挂载超时后自动重试避免开机卡住。3.5 挂载后的权限问题处理NFS挂载最常见的问题就是权限。你可能会发现挂载上去了但普通用户读写不了。这是因为NFS默认会把客户端的root用户映射成nobody导致权限不对。解决办法有两种方案一在群晖端NFS权限里设置Squash为无映射。这样客户端的root就是root权限不会丢。但安全性略低适合内网可信环境。方案二在挂载参数里指定uid和gid。比如192.168.1.10:/volume1/share /mnt/nas nfs defaults,_netdev,vers3,uid1000,gid1000 0 0这样挂载后的文件所有者就是uid1000的用户。你可以用id 用户名查看目标用户的uid和gid。4. 那些年我踩过的坑和排查思路4.1 配了静态IP反而连不上DSM这个坑我踩过一次。当时把NAS的IP设成了192.168.1.10结果发现这个IP已经被另一台设备占用了导致两台设备IP冲突谁都连不上。排查方法是把NAS网线拔掉在电脑上ping那个IP如果有回应说明被占用了换一个。还有一种情况是网关填错了。比如路由器地址是192.168.1.1你填成了192.168.1.254那NAS就出不了网。确认网关地址的方法是在电脑上运行ipconfigWindows或ip routeLinux看默认网关是多少。4.2 NFS挂载开机失败但手动挂载正常这个问题几乎每个人都遇到过。原因就是开机时网络还没就绪fstab就尝试挂载NFS自然失败。解决方案就是加_netdev参数。如果加了还是不行可以再加x-systemd.automount192.168.1.10:/volume1/share /mnt/nas nfs defaults,_netdev,x-systemd.automount,x-systemd.mount-timeout30,vers3 0 0x-systemd.automount的作用是系统启动时不立即挂载而是在第一次访问该目录时才挂载。这样彻底避免了开机时网络未就绪的问题。4.3 NFS挂载后中文文件名乱码这个问题的根源是字符编码不一致。群晖默认使用UTF-8编码大部分Linux也是UTF-8一般不会乱码。但如果你挂载的Linux系统locale设置的是GBK或者其他编码就会乱码。检查方法locale确认LANG和LC_ALL都是en_US.UTF-8或zh_CN.UTF-8。如果不是修改/etc/locale.conf或/etc/default/locale设置成UTF-8然后重启或者重新登录。4.4 群晖DSM更新后NFS权限丢失DSM大版本更新比如从7.1升到7.2后偶尔会出现NFS共享权限被重置的情况。表现是之前能挂载的NFS目录突然挂不上了报access denied。解决办法是重新到控制面板 → 共享文件夹 → NFS权限里检查一遍把权限重新配好。预防措施在DSM更新前截图保存一下NFS权限配置更新后对照检查。4.5 防火墙导致的NFS连接超时如果Linux端showmount能看到共享但mount就是超时大概率是防火墙问题。群晖的防火墙在控制面板 → 安全性 → 防火墙里确认NFS相关端口2049、111等没有被拦截。Linux端也要确认firewalld或ufw没有挡住NFS客户端的出站请求。排查命令# 测试NFS端口是否可达 telnet 192.168.1.10 2049 # 查看本机防火墙状态 sudo firewall-cmd --state sudo ufw status5. 几个让NAS网络更稳的进阶建议5.1 给NAS配一个主机名除了静态IP建议在路由器或本地DNS里给NAS配一个主机名比如nas.home或nas.lan。这样即使将来IP再变比如换了网段你只需要改DNS记录所有通过主机名访问的服务都不用动。在Linux端可以在/etc/hosts里加一行192.168.1.10 nas.home然后fstab里就可以用主机名代替IPnas.home:/volume1/share /mnt/nas nfs defaults,_netdev,vers3 0 0这样IP变了只需要改hosts文件fstab不用动。5.2 双网卡做链路聚合或故障转移如果你的群晖是双网卡机型比如DS920、DS1621等可以在控制面板 → 网络 → 网络界面里把两个网卡绑定成一个Bond模式选自适应负载均衡或主动备份。主动备份模式下一个网卡断了另一个自动接管NAS的网络不会中断。不过要注意链路聚合需要交换机支持LACP家用普通交换机可能不支持。如果只是想做故障转移主动备份模式不需要交换机特殊配置。5.3 用DDNS配合静态IP做远程访问静态IP配好之后如果你有公网IP可以配合群晖的DDNS服务控制面板 → 外部访问 → DDNS做一个固定域名。这样在外面也能通过域名访问NAS。不过这个话题涉及的内容比较多这里就不展开了核心思路就是静态IP是基础DDNS是锦上添花。5.4 定期检查IP占用情况即使配了静态IP也建议每隔一段时间检查一下网段里有没有IP冲突。方法很简单在路由器后台看看已连接设备列表确认没有两个设备用同一个IP。如果发现冲突及时调整。另外如果你在NAS上跑了Docker注意Docker默认会创建自己的网桥占用一个网段通常是172.17.0.0/16。这个一般不会和你的局域网网段冲突但如果你的局域网用的是172.17.x.x那就需要改Docker的默认网段配置。5.5 备份网络配置DSM支持导出系统配置控制面板 → 更新和还原 → 配置备份建议在配好静态IP和NFS权限后做一次配置备份。这样万一NAS重置或者换机恢复配置就能省去重新设置的麻烦。配置备份文件不大几百KB到几MB存到本地电脑或者云盘都行。恢复的时候在同一个界面选择还原即可。我在实际使用中最大的体会是静态IP这件事配的时候花十分钟不配的话每次出问题都要花半小时排查。尤其是家里有多个设备、跑了多个服务的情况下IP稳定是一切的基础。NFS挂载的坑主要集中在权限和开机挂载顺序上把_netdev和Squash这两个点搞清楚基本就能解决90%的问题。