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