如何在Debian系统里使用Redhat(CentOS)的方式配置网络

对于习惯了 Redhat 族系统的用户来说,使用/etc/sysconfig/network-scripts 已经非常习惯,猛然切换到 Debian 会有些不适应。

如何才能在Debian族系统中,使用Redhat中的方法配置网络呢?

其实很简单。NetworkManager就可以做到。

NetworkManager支持各个操作系统的网络配置的方式,是通过插件化的方式。对于Redhat系统来说,是ifcfg-rh插件;而对于Debian族来说,则是ifupdown插件。

所以,我们只需要让NetworkManager不使用ifupdown插件,而是使用ifcfg-rh插件,就可以实现Redhat系统里那种用/etc/sysconfig/network-scripts文件来配置网络。

步骤分两步:

在NetworkManager的配置文件里关闭/开启相应插件

NetworkManager的配置文件为/etc/NetworkManager/NetworkManager.conf,其中[main]块可以配置使用的插件。

复制代码
[main]
plugins=keyfile,ifupdown

首先把这里换成

复制代码
[main]
plugins=ifcfg-rh

,之后保存。

编译ifcfg-rh插件

配置里打开以后,要确定系统里有没有ifcfg-rh插件。

NetworkManager加载插件的路径为/usr/lib64/NetworkManager/VERSION/libnm-settings-plugin-ifcfg-rh.so,其中VERSION为当前系统的NetworkManager版本。

如果这个路径没有相应的插件so,则需要自己编译。

ifcfg-rh插件是NetworkManager内置的插件,只要下载标准的NetworkManager代码就可以编译。

对于Debian系统,可以使用如下命令下载并且完成编译:

复制代码
apt build-dep network-manager
apt source network-manager
cd network-manager-*
dpkg-buildpackage -us -uc #或者 ./debian/rules binary

编译完,把src/settings/plugins/ifcfg-rh/.libs目录下面的libnm-settings-plugin-ifcfg-rh.so复制到/usr/lib64/NetworkManager/$VERSION 目录去就可以了。

增加dbus配置

此时,使用NetworkManager会有一条安全方面的告警提示,是

复制代码
...... couldn't acquire D-Bus service: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Connection ":1.20" is not allowed to own the service "com.redhat.ifcfgrh1" due to security policies in the configuration file

解决办法是把network-manager源代码目录src/settings/plugins/ifcfg-rh目录下面的dbus配置文件:nm-ifcfg-rh.conf复制到/etc/dbus-1/system.d里面去。

这个文件的内容是:

复制代码
<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
        <policy context="default">
                <allow send_destination="com.redhat.ifcfgrh1"/>
        </policy>
        <policy user="root">
                <allow own="com.redhat.ifcfgrh1"/>
        </policy>
</busconfig>
相关推荐
米高梅狮子2 小时前
03.网络类服务实践
linux·运维·服务器·网络·kubernetes·centos·openstack
June`2 小时前
网络编程时内核究竟做了什么???
linux·服务器·网络
原来是猿2 小时前
腾讯云服务器端口开放完全指南
服务器·网络·腾讯云
你的保护色2 小时前
【无标题】
java·服务器·网络
楼兰公子3 小时前
RK3588 + Linux7.0.3 网络工程调试错误速查手册
linux·网络·3588
IpdataCloud3 小时前
稳定的企业级IP数据接口怎么选?可用性指标+离线库高可用方案
运维·网络·tcp/ip
HMS工业网络3 小时前
如何解决使用TwinCAT时EtherCAT网络出现“Sync Manager Watchdog”报错
网络·网络协议·网络安全
逸巽散人8 小时前
【无标题】
网络
kaoa0009 小时前
Linux入门攻坚——77、虚拟化技术基础原理-2
linux·服务器·网络
沪漂阿龙9 小时前
面试题详解:大模型设计沙箱全攻略——LLM Sandbox、Agent 工具执行、代码沙箱、安全隔离、权限控制与工程落地
网络·数据库·人工智能·安全