У меня есть проводное сетевое соединение, и если я использую сетевой менеджер (в дальнейшем «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. Посоветуйте, пожалуйста, как решить проблему.
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]
Вы должны решить, хотите ли вы использовать 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
).