我最近创建的 Debian Jessie VirtualBox VM 的网络无法在运行时启动。我可以使其网络正常运行的唯一方法是在登录后添加service networking restart
或/etc/rc.local
手动运行它,如果远程运行,则该方法将不起作用。
更新:附加信息。
第一个网络适配器的配置与NAT
虚拟框中相同。第二台计算机的配置就像Bridged Adapter
主机子网上的另一台计算机一样。第一个能够在启动时连接到网络并连接到 Internet,但不能连接到 LAN 上的计算机。仅在运行后service networking restart
,第二个适配器才开始连接到 LAM IP,并且对网络上的其他系统也可见。
这是/etc/network/interfaces
配置。这是一个标准的 Debian Jessie 桌面配置。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# allow-hotplug eth1
auto eth1
iface eth1 inet static
address 192.168.1.22
network 192.168.1.0
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
是否有某种新贵或 systemd 初始化配置可能会失败?它是基于服务器的安装,因此我认为某些桌面相关实用程序可能不会干扰。
我可以采取哪些步骤来确保网络已实际配置和/或在启动时已配置?启动网络服务使其工作这一事实/etc/rc.local
让我相信它可能很简单。 Debian Jessie 在启动时运行的脚本是什么service networking restart
?
答案1
Debian 最近转而使用网络管理器作为配置网络接口的默认方式。使用网络管理器配置网络或确保在 init 启动序列中调用 /etc/init.d/networking,否则 /etc/network/interfaces 的内容将不相关。
运行ls -l /etc/rc[1-5].d/ | grep net
并确保您看到类似以下内容:
lrwxrwxrwx 1 root root 25 Oct 2 2014 S01networking -> ../init.d/networking
如果检查结果正确,请查看dmesg | grep eth0
但将 eth0 替换为虚拟机上的网络适配器的名称。报告任何错误。
如果您没有看到网络初始化脚本被引用,或者您看到网络管理器,则以 root 身份执行以下操作:
update-rc.d networking defaults
update-rc.d -f network-manager remove
它应该安装正确的符号链接/etc/rc[1-6].d/
并禁用网络管理器。
要手动安装符号链接,您可以让它在任何运行级别 1-5 中启动。例如:
pushd /etc/rc1.d/ && ln -s ../init.d/networking S08networking && popd
for i in `seq 2 5` ; do push /etc/rc$i.d/ && ln -s ../init.d/networking S01networking && popd ; done
pushd /etc/rc6.d/ && ln -s ../init.d/networking K07networking && popd
pushd /etc/rc0.d/ && ln -s ../init.d/networking K07networking && popd
要手动禁用网络管理器,请执行以下操作:
rm /etc/rc*.d/S*network-manager