我在 Ubuntu 16.04 Xenial 上使用 VirtualBox 5.1,并在上面运行了一些虚拟机“仅限主持人”网络在主机中显示为vboxnet0
网络接口。我希望在创建接口后立即dnsmasq
使用自定义配置来在此网络上提供 DNS 和 DHCP ,也就是在运行 VirtualBox 应用程序时。vboxnet0
可以通过某种方式触发此dnsmasq
启动吗?通过 NetworkManager、udev 还是 systemd?
顺便说一句,我不想使用 VirtualBox 内置的 DNS/DHCP 服务器,原因超出了该问题的范围(本质上是自定义 DHCP 选项和重定向虚拟机的一些 DNS 查询)。
我也无法开始dnsmasq
前 vboxnet0
--bind-interfaces
创建它是因为 NetworkManager 已经dnsmasq
为自己的目的运行了一个实例,因此它必须与之一起运行。
答案1
大多数 *nix 系统都提供了在接口启动/关闭时运行特定命令的功能。但是,在创建接口时运行命令可能需要一些自定义脚本。
执行此操作的一种方法是编写自定义脚本(不确定这是否是最好的方法),该脚本定期扫描ifconfig
命令的输出并检查它是否包含条目,如果找到接口vboxnet0
条目,则运行自定义命令。vboxnet0