OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置

一、适用场景

1、使用开源OpenMediaVaul自建了NAS网络存储系统的企业或单位。

2、需要通过移动办公,数据保存在OpenMediaVaul网络存储系统。

3、从OpenMediaVaul网络存储系统的测试运行到生产运行的过渡阶段。

4、原OpenMediaVaul网络存储系统使用DHCP的动态地址,由于停电、UPS故障、运维等原因重启后无法访问OpenMediaVaul网络存储系统。

二、使用静态ip地址的原因

1、使用OpenMediaVault 7×24 内网服务------"找不到网络映射盘符就炸",SMB、NFS、AFP、FTP、WebDAV、iSCSI 共享统统靠 IP 挂载。

若地址随 DHCP 漂移,Windows 映射盘、Linux fstab、电视盒子、投影仪会瞬间失联,用户只会抱怨"NAS 又挂了。

  1. 远程开机 / 唤醒------" Wake-on-LAN 只能打固定地址"

路由器端口转发、防火墙、VPN 的 WoL 广播条目前提都是"目标 IP 固定"。动态 IP 一变,外网想唤醒 NAS 就得先猜地址,成功率≈买彩票。

  1. 外网直连------"域名、证书、端口一个都不能飘"

做 DDNS、反向代理、Let's Encrypt 证书、Nextcloud、Emby、qBittorrent 等都会把域名解析到固定 IP。地址一变,域名解析失效,HTTPS 证书会报 SAN 不匹配,外网访问直接 404。

  1. 防火墙 / 策略路由------"白名单只认地址不认人"

企业或校园网常在网关写静态 ACL、QoS、策略路由,如"192.168.50.10 走专线""192.168.50.0/24 禁止上外网"。DHCP一换段,NAS 就会被踢到隔离区,同步任务全红。

  1. 虚拟化 / 容器------"桥接网卡靠地址定位"

OMV 里跑 Docker、Portainer、KVM 时,宿主机网关、容器卷挂载、NFS 持久化存储都写死静态 IP。一旦地址漂移,容器重启就找不到存储路径,MySQL 直接起不来。

总之,只要你的 OMV 需要被"别人"长期记住------无论是人、脚本、防火墙还是证书------就给它在 /etc/network/interfaces 里写死 static;否则 DHCP 足够,还能省掉 IP 冲突的麻烦。

三、本例背景

1、作为OpenMediaVaul网络存储系统的测试运行到生产运行的过渡阶段,搭建完成时,默认使用DHCP服务器分配ip地址,测试使用。

2、尝试修改WEB登录后的静态网卡ip地址后,却无法正常启动OpenMediaVault系统的服务,再改回DHCP动态获取ip地址,OpenMediaVault正常运行。

3、在DHCP服务器上配置保留地址,给OpenMediaVault的虚拟网卡,以求OpenMediaVaul能固定从DHCP服务器上获取到相同的ip地址,却发现OpenMediaVault的虚拟网卡的MAC地址与寻常的设备的MAC地址不同,要长几个字符,所以无法使用DHCP服务器给OpenMediaVault固定ip地址。

4、本例是在工业区的变压器烧坏后,机房的UPS供电3小时后,变压器还未修好的情况下,UPS跳闸,系统突然断电的情况下出现的。此时各部门已经使用了一段时间,也觉得好用,访问速度快,使用方便,也能实现移动办公的数据存储。

四、配置Debian Linux OpenMediaVault静态ip的过程

1、服务器重启后,可以看到OpenMediaVaul网络存储系统的网卡ip地址变了,原为192.168.0.103,现在从DHCP服务器获取到的地址变成了192.168.0.136,用户量已经较大,此时若通知用户修改访问的地址,无缝要增加诸多工作量。

2、修改Debian Linux OpenMediaVault的网卡ip地址为永久

(1)修改interfaces

cd /etc/network

Vi interfaces

(2)在文件后面,写入内容如下:

auto ens160

iface ens160 inet static

address 192.168.0.103

netmask 255.255.255.0

gateway 192.168.0.254

dns-nameservers 8.8.8.8 8.8.4.4

(3)reboot 重启

3、重启后,看到ens160有2个ip地址,如下图:

4、客户端使用命令测试连通性

5、使用客户端ssh root@192.168.0.136远程连接到192.168.0.136,出现以下告警:

从下面的告警看出,是 目标主机(192.168.0.136)的 SSH 公钥变了(最常见的情况:你重装了系统、重新生成了密钥、或者刚才改了 OMV/Debian 的网络配置并重启了)。

Windows 的 OpenSSH 客户端发现本地 known_hosts 里存的指纹跟现在对不上,于是报警并拒绝连接。

6、把 C:\Users\Administrator.ssh\known_hosts 里关于 192.168.0.136 的旧条目删掉,再远程登录,正常

ssh-keygen -R 192.168.0.136

7、再次使用命令查看网卡的ip地址状态,仍然有2个ip地址

Ip addr show ens160

8、ens160 上之所以出现

192.168.0.136/24 dynamic

192.168.0.103/24 secondary

就是因为 还有某个 DHCP 客户端在后台运行,它给网卡又续了一个地址。

要把 dynamic 那条彻底关掉,只需 停掉 DHCP 客户端并重启网络 即可;不需要再改 /etc/network/interfaces (之前已经写成 static 了)。

执行以下几条指令:

(1)先确认是谁在发DHCP

systemctl is-active dhcpcd

systemctl is-active dhclient

systemctl is-active NetworkManager

systemctl is-active systemd-networkd

哪个是 active,就关哪个

(2)从上图可以看出,是systemd-networkd在发DHCP,所以关闭它,执行指令:

systemctl stop systemd-networkd

systemctl disable systemd-networkd

(3) 把可能残留的 .network 文件清掉

rm -f /etc/systemd/network/ens160

(4)重新加载 systemd 配置

sudo systemctl daemon-reload

(5)重启 Debian 传统 networking 服务

sudo systemctl restart networking

(6)重新加载 systemd 配置,重启 Debian 传统 networking 服务后,测试目标ip地址的连通性正常

9、再次使用SSH远程登录到Debian Linux

(1)使用ifconfig查看网卡的ip地址,只有1个了,且是我们的目标ip地址

(2)使用指令ip addr查看网卡时,却还有2个地址,此时静态的ip地址排列在前,动态的ip地址排列在后secondary了,如下图:

Ip addr show ens160

分析:想"彻底"关掉 secondary dynamic,只要找到还在跑的 DHCP 客户端并永久禁掉它,然后 把已经租到的地址手动踢掉 即可。

10、先确认是谁在发 DHCP

ps -ef | grep -E 'dhclient|dhcpcd|NetworkManager|systemd-networkd'

11、看到只有 systemd-networkd 在跑,而 dhclient / NetworkManager / dhcpcd 都没进程,说明 正是 systemd-networkd 给 ens160 续了 DHCP 地址 192.168.0.136。

把它停掉 + 禁用 + 清理配置文件,再手动把已经租到的 secondary 地址踢掉即可。

(1) 立即停 systemd-networkd 并禁止开机自启

systemctl stop systemd-networkd

systemctl disable systemd-networkd

(2) 删除可能残留的 .network 文件(确保不再管理 ens160)

rm -f /etc/systemd/network/ens160 .network

rm -f /run/systemd/network/ens160 .network

(3)把已经租到的 secondary dynamic 地址直接踢掉

ip addr del 192.168.0.136/24 dev ens160

(4)重启网卡

Systemctl start systemd-networkd

Systemctl enable systemd-networkd

12、使用ip addr指令查看,地址未生效,Reboot重启系统,登录后再看网卡的信息:

分析:systemd-networkd 其实还在运行,并且它拿的租约还没释放。

上一次我们虽然systemctl disable systemd-networkd ,但OMV默认用 systemd-networkd 作底层管理, disable 后它仍会被 systemd-networkd-wait-online.service 或 network-pre.target 在启动阶段隐式拉起;只要进程在,它就会续租 / 重新申请地址。

要彻底干掉 dynamic 地址,必须 mask(完全封死)systemd-networkd,并立即把已经到手的租约扔掉。下面 3 条命令一次性复制执行即可:

13、完成以下步骤:

(1)立即停掉并永久封死 systemd-networkd(mask 后任何依赖都无法再拉起它)

systemctl stop systemd-networkd

systemctl mask --now systemd-networkd

systemctl mask --now systemd-networkd-wait-online

(2)删除它给 ens160 下发的 .network 文件(防止以后解除 mask 又生效)

rm -f /etc/systemd/network/ens160 .network

rm -f /run/systemd/network/ens160 .network

(3)把已经挂着的 dynamic 地址直接踢掉

ip addr del 192.168.0.136/24 dev ens160

14、ip addr show ens160

应该只剩下:

inet 192.168.0.103/24 ... scope global ens160

valid_lft forever preferred_lft forever

15、防止重启复活

如果装了 cloud-init,也一并禁掉网络配置

echo 'network: {config: disabled}' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

16、最后 reboot

开机后再看 ip addr 和登录横幅,若192.168.0.136 不再出现,就表示 secondary dynamic 被彻底关闭。

重启后,显示静态的ip地址正常,如上图:

17、再使用ifconfig和ip addr指令查看网卡的ip地址,也只剩所需要的目标ip地址了,如下图:

18、登录WEB端之后,再手动填写一次正确的ip地址、子网掩码、网关、DNS后,确认

19、DHCP服务器端的处理:

DHCP服务的地址池中排除192.168.0.136的地址,以后任何客户端都不会再获取到与它冲突的ip地址了。正式用于生产环境。

自建NAS网络存储系统的过程本文不再赘述,参考文章:

openmediavault debian linux安装配置企业私有网盘(一):

https://blog.csdn.net/weixin_43075093/article/details/131493113

openmediavault debian linux安装配置企业私有网盘(二)------用户、组、权限、共享+文档访问功能:

https://blog.csdn.net/weixin_43075093/article/details/131603562

本文至些结束,不足之处敬请批评指正。

相关推荐
403240732 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu
Source.Liu2 小时前
【沟通协作软件】使用 Rufus 制作 Ubuntu 启动盘的详细过程
linux·ubuntu
零意@2 小时前
debian如何把新编译的内核镜像替换原来的内核
运维·debian·更新内核版本·linux内核版本更新·debian更新内核
Love丶伊卡洛斯2 小时前
Ubuntu 部署 STUN服务端
linux·运维·ubuntu
梁洪飞2 小时前
通过链接文件和Start.S学习armv7
linux·arm开发·嵌入式硬件·学习·arm
DN金猿2 小时前
使用ubuntu安装nginx时报错
linux·nginx·ubuntu
小赵还有头发3 小时前
安装Ceres与glog
linux·学习·无人机·ceres·glog
负二代0.03 小时前
Linux下的网络管理
linux·网络
s_daqing3 小时前
ubuntu(arm)安装redis
linux·redis·ubuntu