如何在 Debian 10 中永久禁用网络接口?

The*_*FOH 5 network-interface

我认为这个网站上有一个类似的问题(如何永久禁用网络接口?),但答案主要是针对 Ubuntu 的,那里描述的方法没有帮助。

我正在尝试关闭 enp1s0f2 接口,但它在重新启动时不断返回。

我尝试了命令“ifconfig(接口)down”、“ifdown(接口)”,并编辑 /etc/network/interfaces 以添加以下几行:

《iface(接口)inet 手册》和《iface(接口)inet6 手册》

据说 NetworkManager 或其他任何管理它的东西,不会在启动时加载它,但无济于事。

如何在 Debian 上永久禁用此界面?

有没有一种干净的方法,不涉及一个一个地禁用所有设备 systemctl 服务?如果在任何时候我再次需要该接口,我必须记住所有涉及的服务并再次重新启用它们,这将是一种耻辱,另外,必须有一个更简单的直接方法,对吧?

A.B*_*A.B 6

您可以告诉 NetworkManager 忽略该接口,如NetworkManager.conf的密钥文件部分中所述:

\n
\n

密钥文件部分

\n

此部分包含特定于密钥文件插件的选项,通常\仅在您不使用任何其他特定于发行版的插件时才使用。

\n

[...]

\n

unmanaged-devices

\n

设置 NetworkManager 应忽略的设备。

\n

有关如何指定设备的语法,请参阅名为 \xe2\x80\x9cDevice List Format\xe2\x80\x9d 的部分。

\n

例子:

\n
unmanaged-devices=interface-name:em4\nunmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2\n
Run Code Online (Sandbox Code Playgroud)\n
\n

/etc/NetworkManager/conf.d例如,在名为的文件中添加一个local-ignore-enp1s0f2.conf包含以下附加内容的文件:

\n
[keyfile]\nunmanaged-devices=interface-name:enp1s0f2\n
Run Code Online (Sandbox Code Playgroud)\n

您可能仍然需要删除已经创建的条目,例如:

\n
nmcli connection show \n
Run Code Online (Sandbox Code Playgroud)\n

一旦名称确定:

\n
nmcli connection delete id \'some unwanted connection\'\nip link set enp1s0f2 down\n
Run Code Online (Sandbox Code Playgroud)\n

然后重新加载配置:

\n
nmcli connection reload\n
Run Code Online (Sandbox Code Playgroud)\n

或者:

\n
systemctl reload network-manager\n
Run Code Online (Sandbox Code Playgroud)\n

如果您想在不重新启动的情况下检查它的工作情况,这里有一个使用网络命名空间的技巧(也可以在udev中的某些脚本中使用它来使界面自动“消失”):

\n
ip netns add hiddenplace\nip link set enp1s0f2 netns hiddenplace\n
Run Code Online (Sandbox Code Playgroud)\n

现在删除命名空间,这将恢复接口并触发任何自动检测:

\n
ip netns delete hiddenplace\n
Run Code Online (Sandbox Code Playgroud)\n


Art*_*nov 0

您可以在 NetworkManager 中将其 IPv4 和 IPv6 地址设置为“禁用”,这实际上会禁用该接口。

然后是“自动连接优先”,可以取消选中 - 可能会起到同样的作用。