Настройка сети Ethernet

У меня есть проводное сетевое соединение, и если я использую сетевой менеджер (в дальнейшем «NM»), все работает хорошо, за исключением аппаратного адреса (он не меняется). Я думаю об использовании /etc/network/interfaces. Итак, я добавил некоторый код, и он выглядит так:

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address #corresponding value
netmask #corresponding value
gateway #corresponding value
hwaddress #corresponding value

После перезапуска сети я получаю следующее сообщение:

*Reconfiguring network interfaces...
#here some help code appears
Failed to bring up eth1.

Интерфейс по умолчанию, который работает с NM, это eth0. Посоветуйте, пожалуйста, как решить проблему.

2
задан 21 February 2011 в 22:26

2 ответа

eth0 или eth1 - это логическое имя, данное вашей сетевой карте Linux (я не знаю точно, какой компонент обрабатывает именование, но я предполагаю, что это ядро). Вы можете использовать только eth0 или eth1, если это логическое имя, данное вашей карте, а не иначе.

Если исходить из исходной проблемы, т. Е. Использовать разные аппаратные адреса в разных местах, это можно сделать, определив логическое сопоставление имен в файле /etc/network/interfaces, но вам придется каждый раз вручную подключаться к сети с помощью команды ifup.

Для этого откройте файл /etc/network/interfaces и замените его содержимое следующим

auto lo
iface lo inet loopback

mapping eth0
      script /home/<username>/net.sh
      map eth0 eth0-home
      map eth0 eth0-work

iface eth0-home inet static
      address #ip address for home
      netmask #subnet mask for home
      hwaddress ether #MAC address for home

iface eth0-work inet static
      address #ipaddress for work
      netmask #netmask for work
      hwaddress ether #MAC address for work

, установите IP-адрес, маску подсети и hwaddress для eth0-home и eth0-work на свой вкус. Также замените < username > в четвертой строке скрипта своим именем пользователя. Теперь сохраните и закройте файл интерфейсов.

Теперь создайте файл /home/<username>/net.sh со следующим содержимым

#!/bin/sh
echo eth0

, сохраните и закройте файл net.sh.

Теперь все готово. Вы можете использовать команду sudo ifup eth0=eth0-home для запуска сети с настройками eth0-home и sudo ifup eth0=eth0-work для запуска с настройками eth0-work.

Также обратите внимание, что раздел сопоставления в файле интерфейсов и файл сценария, который мы создали в домашнем каталоге вашего пользователя, действительно необходимы, когда интерфейс настроен для автоматического подключения. Но мы должны предоставить их для работы. Таким образом, содержимое файла сценария и содержимое раздела отображения являются всего лишь заполнителями. Если вы заинтересованы в автоматическом подключении, вам необходимо изменить эти два параметра. Для дальнейшего обсуждения этих двух вы можете посмотреть страницу руководства для интерфейсов (5) или перейти по следующей ссылке http://addisu.taddese.com/blog/mapping-in-linux-network-interfaces/ [ 1116]

0
ответ дан 21 February 2011 в 22:26

Вы должны решить, хотите ли вы использовать NM или «жестко закодированный» конфиг в файле interfaces. Насколько я понял, смешивать их не очень хорошая идея, у вас будут проблемы. Вы можете отказаться от использования NM, хорошо. Однако такие имена, как eth0 и eth1 назначены сетевым сетевым адаптерам, поэтому, если вы используете eth1, я думаю, у вас есть два сетевых адаптера на вашем компьютере. Да, возможно, у вас есть только eth1, а не eth0 (вы даже можете переименовать сетевые карты), но я не вижу в этом смысла. Пожалуйста, введите команду /sbin/ifconfig -a в терминале и используйте имя eth, которое вы видите там. Если вы видите только eth1, а не eth0, это тоже можно использовать, это возможно: udev управляет именами интерфейсов в соответствии с HW-адресом («MAC-адрес»), чтобы быть уверенным, что ваши интерфейсы не будут перенумерованы при изменении положения карты PCI и тому подобные вещи. У меня был опыт, что замена карты на другую привела к тому, что у меня есть только eth1 (а вообще нет eth0), так как udev помнит о HW-адресе старой карты, поэтому имя eth0 зарезервировано для этой цели, поэтому я имел eth1 в качестве нового сетевого адаптера. Я не уверен, что вы имеете в виду это, когда хотите использовать eth1, но приятно упомянуть (кстати, udev хранит назначения здесь: /etc/udev/rules.d/70-persistent-net.rules).

0
ответ дан 21 February 2011 в 22:26

Другие вопросы по тегам:

Похожие вопросы: