我在尝试设置全新的 CentOS 7 服务器时遇到了问题。我已按照 redhat 文档网站上的说明设置了网桥,一切正常,直到我重新启动。重新启动后,它就不起作用了,我需要拔下电缆,然后重新插入,大约 15 秒后一切正常。如果有帮助的话,它被插入一个简单的 5 端口交换机,我尝试在两个配置文件中设置 STP=no,但无济于事。
这是我的消息日志 [消息][2],显示网络接口无法启动。
我的 br0 配置文件:
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.1
PREFIX=24
BOOTPROTO=none
ONBOOT=yes
DELAY=0
我的网络接口配置(enp0s25)
DEVICE=ethX
TYPE=Ethernet
HWADDR=d0:50:**:**:**:**
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
我曾在 CentOS7 论坛上问过这个问题,但没有什么收获。任何帮助或指导都非常感谢。
答案1
我找到了一个解决方法,虽然不理想,但确实有效。基本上,在系统启动后运行一个脚本,关闭网络接口,然后再次启动。
脚本如下:
#!/bin/bash
ifdown enp0s25
sleep 3
ifup enp0s25
然后我创建了一个 systemd 服务和一个计时器来完成剩下的工作,我使用计时器在系统启动后 45 秒运行服务。我估计我可以将其缩短到 25 秒,但启动时间对我来说并不重要,我想等待界面自然启动,而界面本身大约需要 15 秒。
该服务名为 internet.service:
[Unit]
Description=Actually enable the Network Interfaces
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
User=root
ExecStart=-/bin/bash /media/data1/MyScripts/network.sh
[Install]
WantedBy=multi-user.target
该计时器名为 internet.timer:
[Unit]
Description=Runs the script on boot
[Timer]
#Time to wait after boot before activating
OnBootSec=45
Unit=internet.service
[Install]
WantedBy=multi-user.target
然后需要做的就是设置要启用的计时器
systemctl enable internet.timer
然后,当我的系统在 45 秒后启动时,我会br0: port(enp0s25) entered forwarding state
在控制台上收到一条好消息,让我知道一切都正常。
正如我最初所说,这不是一个理想的解决方案,但它确实有效
答案2
我通过添加以下内容解决了该问题/etc/rc.d/rc.local
:
service network restart
也不要忘记chmod +x /etc/rc.d/rc.local