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

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

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux