如何在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>
相关推荐
清源妙木真菌39 分钟前
应用层协议——HTTP
网络·网络协议·http
网硕互联的小客服4 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
共享家95277 小时前
linux-数据链路层
linux·网络·macos
1892280486110 小时前
NY243NY253美光固态闪存NY257NY260
大数据·网络·人工智能·缓存
玩转以太网11 小时前
3 种方式玩转网络继电器!W55MH32 实现网页 + 阿里云 + 本地控制互通
网络·物联网·阿里云
How_doyou_do13 小时前
关于casdoor重定向问题
网络
小木话安全13 小时前
ISO27001 高阶架构 之 支持 -2
网络·安全·职场和发展·学习方法
破刺不会编程16 小时前
socket编程UDP
linux·运维·服务器·网络·c++·网络协议·udp
Warren9819 小时前
Lua 脚本在 Redis 中的应用
java·前端·网络·vue.js·redis·junit·lua
NEXU51 天前
Linux:套接字
linux·服务器·网络