Fedora 中 Ubuntu /etc/network/if-pre-up.d/ 的对应文件是什么(22)

Fedora 中 Ubuntu /etc/network/if-pre-up.d/ 的对应文件是什么(22)

我正在尝试从 Ubuntu 迁移到 Fedora(22),但我找不到如何在接口启动之前运行网络脚本。Fedora 中是否有与此 /etc/network/if-pre-up.d/ 等效的脚本?

我需要在任何接口启动时触发一个脚本,并将该接口捕获到一个变量中(这样我就可以对其执行 macchanger)。起初我以为可以使用 systemd-networkd 来管理,但当 NetworkManager 处于活动状态时似乎并非如此[1]

[0]https://help.ubuntu.com/community/AnonymizingNetworkMACAddresses

[1]https://superuser.com/a/948996/412798

答案1

我已经进行了一些测试,对我有用的唯一方法是使用 systemd 单元:

vim /etc/systemd/system/macspoof@[your-interface].service

[Unit]
Description=macchanger on %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/macchanger -r %I
Type=oneshot

[Install]
WantedBy=multi-user.target

将权限更改为 755

chmod 755 /etc/systemd/system/macspoof@[your-interface].service

然后启用服务

systemctl enable macspoof@[your-interface].service

查看此链接了解更多信息:MAC 地址欺骗

答案2

/etc/NetworkManager/dispatcher.d/pre-up.d/

答案3

看来脚本必须放在 networkmanager 调度程序中。路径可能是“/usr/local/etc/NetworkManager/dispatcher.d/pre-up.d/macchanger”或“/etc/NetworkManager/dispatcher.d/pre-up.d/macchanger”。与 Ubuntu 教程相比,您必须使用第一个参数($1)而不是 $IFACE。

#!/bin/bash
ip link set dev $1 down
macchanger -e "$1"
ip link set dev $1 up

相关内容