为什么默认 eth0 接口在 CentOS 上默认关闭?

Pat*_*ryk 53 networking centos

我已经对 Debian 或 Ubuntu 等 Linux 发行版有点熟悉(是的,非常相似),但我想尝试基于 Red Hat 的 CentOS 6.2。我已经将它安装在我的 Windows 7 主机上的 VirtualBox 并尝试使用它。

我遇到了一个小问题,即:默认eth0界面默认关闭。我使用带有 NAT 的选项(虚拟机在主机“后面”)。即使我用 调出界面ifconfig eth0 up,它也不能立即工作。启动界面后我得到了这个:

eth0      Link encap:Ethernet  HWaddr 08:00:27:0F:00:8A
          inet6 addr: fe80::a00:27ff:fe0f:8a/64 Scope:Link
          UP BROADCAST RUNNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carriers:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
          Interrupt:19 Base address:0xd020

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:75:C2:9B
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
[root@centos ~]# _
Run Code Online (Sandbox Code Playgroud)

在 CentOS 机器上配置网络还应该做什么?

War*_*ung 59

编辑/etc/sysconfig/network-scripts/ifcfg-$IFNAME。将ONBOOT行的值更改为yes。

$IFNAME将eth0在许多 EL6 机器上,但在使用一致网络设备命名方案的机器上,它可能是其他东西,例如en3p1. 这个方案在 EL6 中是可选的,但在 EL7 和更新版本中是默认的。使用该命令ip link获取网络接口列表,包括当前关闭的接口。

在您以后的安装中,请多加注意。您忽略了网络配置部分中的一个选项,该选项可让您告诉它在启动时启动界面。在 EL6 及更高版本中,此启动选项默认关闭,而在以前的版本中,默认情况下打开。

要使网络接口在安装时首次启动时出现,请转到Configure? General选项卡,然后选中标记为 的框Automatically connect to the network when available。

至于他们为什么改变这一点,我猜是出于安全原因。它让你有机会在第一次打开网络接口之前从默认设置中收紧一些东西,将盒子暴露给外界。


小智 8

如果您的网络中没有 DHCP 服务器,则必须设置静态 IP 地址。请考虑以下示例:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=none
DEVICE=eth0
IPADDR=192.168.1.10 # your IP address
NETMASK=255.255.255.0 # your netmask
NETWORK=192.168.1.0 
ONBOOT=yes
Run Code Online (Sandbox Code Playgroud)

将 GATEWAY 添加到您的/etc/sysconfig/network文件中:

NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hostname.domainname
GATEWAY=192.168.1.1 # your gateway
Run Code Online (Sandbox Code Playgroud)

发出以下命令以在引导时启动网络:

chkconfig network on
Run Code Online (Sandbox Code Playgroud)

重新启动您的网络服务:

service network restart
Run Code Online (Sandbox Code Playgroud)

看看你的网络接口

ifconfig
Run Code Online (Sandbox Code Playgroud)


Geo*_*e M 5

您没有提到您使用的是哪个版本的 CentOS。如果我没记错的话,6.x 默认使用 NetworkManager。

我很少在我的服务器上安装 X windows,所以 NetworkManager 对我来说只是一个痛苦。我禁用它并启用标准的“网络”服务。

chkconfig NetworkManager off
chkconfig network on

服务网络管理器停止
服务网络启动

要在接口上启用 DHCP,请运行system-config-network,编辑适当的设备,保存并重新启动网络服务。或者,您可以编辑/etc/sysconfig/network-scripts/ifcfg-eth0和添加

ONBOOT=yes
BOOTPROTO=dhcp

保存更改并重新启动网络服务。