我已经有点熟悉 Debian 或 Ubuntu 等 Linux 发行版(是的,非常相似),但我想尝试基于 Red Hat 的 CentOS 6.2。我已将其安装在 VirtualBox 中的 Windows 7 主机上,并尝试使用它。
我遇到一个小问题,即:默认eth0
接口默认是down的。我使用 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 ~]# _
在 CentOS 机器上配置网络还需要做什么?
答案1
编辑/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
至于为什么他们改变了这一点,我猜是出于安全原因。它让您有机会在第一次打开网络接口之前将默认设置稍微收紧一些,从而将盒子暴露给外界。
答案2
如果您的网络中没有 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
将 GATEWAY 添加到您的/etc/sysconfig/network
文件中:
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hostname.domainname
GATEWAY=192.168.1.1 # your gateway
发出以下命令以在引导时启动网络:
chkconfig network on
重新启动您的网络服务:
service network restart
查看您的网络接口
ifconfig
答案3
您没有提到您使用的 CentOS 版本。如果我没记错的话,6.x 默认使用 NetworkManager。
我很少在我的服务器上安装 X windows,所以 NetworkManager 对我来说只是一个痛苦。我禁用它并启用标准“网络”服务。
chkconfig NetworkManager 关闭
chkconfig 网络打开
服务网络管理器停止
服务网络启动
要在接口上启用 DHCP,请运行system-config-network
、编辑相应的设备、保存并重新启动网络服务。或者,您可以编辑/etc/sysconfig/network-scripts/ifcfg-eth0
和添加
ONBOOT=yes
BOOTPROTO=dhcp
保存更改并重新启动网络服务。
答案4
根据我从实验和阅读中收集到的信息,我同意网络管理器似乎默认加载,但网络服务不加载。
最近,当我启动一台虚拟机主机时,ifconfig 输出中没有显示 eth0,这是因为我NM_CONTROLLED=no
的/etc/sysconfig/network-scripts/ifcfg-eth0
文件中的网络管理器正在运行,但网络未运行。
我一运行service network restart
,eth0 就出现在 ifconfig 输出中。然而,重新启动后,它又消失了。
对我来说,解决方案似乎是设置NM_CONTROLLED=no
,/etc/sysconfig/network-scripts/ifcfg-eth0
然后在启动时打开网络服务(chkconfig network on
正如 uther 和 alexnorthsoul 指出的那样)。我可以(应该?)默认关闭 NetworkManager,但它现在对我有用,而且我对接触其他任何东西感到紧张。
顺便说一句,我的目标是让系统尊重我选择的静态 IP。当我让 NetworkManager 运行并设置NM_CONTROLLED=yes
(或省略它)时,我在 ifconfig 中显示了 eth0,但该地址是 DHCP 地址,而不是我的静态 IP。因此,关闭 NetworkManager 可以让我免受 DHCP 的影响,而打开网络则使其加载包括静态 IP 在内的我的设置。
我不是系统管理员,而是一名开发人员,因此这些不是 CentOS 专家的话,而只是配置我所需的虚拟机的幸存者。