Почему интерфейс eth0 по умолчанию отключен в CentOS?

Почему интерфейс eth0 по умолчанию отключен в CentOS?

Я уже немного знаком с дистрибутивами Linux, такими как Debian или Ubuntu (да, очень похоже), но я хотел попробовать основанный на 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 ~]# _

Что еще нужно сделать для настройки сети на машине CentOS?

решение1

Редактировать /etc/sysconfig/network-scripts/ifcfg-$IFNAME. Измените ONBOOTзначение строки на yes.

$IFNAMEбудет eth0на многих коробках EL6, но на коробках, использующихЕдинообразное наименование сетевых устройствсхема, это может быть что-то другое, например en3p1. Эта схема необязательна в EL6, но используется по умолчанию в EL7 и более новых версиях. Используйте команду ip link, чтобы получить список сетевых интерфейсов, включая те, которые в данный момент отключены.

В будущих установках будьте более внимательны. Вы пропустили опцию в разделе конфигурации сети, которая позволяла вам указать, что интерфейс должен быть запущен при загрузке. Эта опция загрузки отключена по умолчанию в EL6 и более поздних версиях, тогда как в предыдущих версиях она была включена по умолчанию.

Чтобы сетевой интерфейс появился при первой загрузке во время установки, перейдите на вкладку ConfigureGeneralна экране конфигурации сети, затем установите флажок 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 сеть включена

служба NetworkManager остановить
службу сеть запустить

Чтобы включить DHCP на интерфейсе, запустите system-config-network, отредактируйте соответствующее устройство, сохраните и перезапустите сетевую службу. В качестве альтернативы вы можете отредактировать /etc/sysconfig/network-scripts/ifcfg-eth0и добавить

ONBOOT=yes
BOOTPROTO=dhcp

Сохраните изменения и перезапустите сетевую службу.

решение4

Из того, что я почерпнул в результате экспериментов и чтения, я согласен с uther, что Network Manager, похоже, загружается по умолчанию, а вот сетевая служба — нет.

Недавно у меня запустился хост виртуальной машины, но в выводе ifconfig не отображался eth0. Это произошло из-за того, что у меня был запущен Network Manager, но не работала сеть, а 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(или пропустил) его, я получил eth0, отображаемый в ifconfig, но адрес был адресом DHCP, а не моим статическим IP. Поэтому отключение NetworkManager избавило меня от DHCP, а включение сети заставило его загрузить мои настройки, которые включали статический IP.

Я не системный администратор, а разработчик, так что это слова не эксперта по CentOS, а просто человека, пережившего настройку необходимых мне виртуальных машин.

Связанный контент