Я использую Ubuntu 12.04, и, насколько мне известно, на моем компьютере (ноутбук Dell) есть только одна сетевая карта --- Не представляю, зачем их может быть больше одной.
Иногда мое интернет-соединение работает через устройство eth1
, в другое время eth2
. Возможно, также eth0
иногда. Мне все равно, какое имя устройства используется, но яделатьзаботиться о том, чтобы всегда было одно и то же.
(Поскольку я всегда подключаюсь по беспроводной сети, я ожидал, что соединение будет работать через wlanX
устройство, основываясь на моем опыте работы с Ubuntu 10.04, но, как я уже сказал, имя не имеет значения, если оно единообразно).
Бег ifconfig
вернулся:
eth0 Link encap:Ethernet HWaddr 5c:26:0a:16:e4:31
UP BROADCAST 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:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:22 Memory:f6fe0000-f7000000
eth2 Link encap:Ethernet HWaddr 00:25:56:b2:16:3e
inet addr:192.168.1.78 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::225:56ff:feb2:163e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9970442 errors:1 dropped:0 overruns:0 frame:2735811
TX packets:7466676 errors:501 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1991253521 (1.9 GB) TX bytes:594939490 (594.9 MB)
Interrupt:17 Base address:0xc000
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:2634 errors:0 dropped:0 overruns:0 frame:0
TX packets:2634 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:287326 (287.3 KB) TX bytes:287326 (287.3 KB)
Содержание /etc/network/interfaces
было:
auto lo
iface lo inet loopback
После запуска ifconfig
и просмотра содержимого /etc/network/interfaces
я отредактировал /etc/network/interfaces
и ввел# /etc/init.d/networking restart
Итак, содержимое /etc/network/interfaces
следующее:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
И запуск ifconfig
сейчас возвращает (где XXX.XXX.XXX.XXX
и YYY.YYY.YYY.YYY
не являются фактическими адресами):
eth0 Link encap:Ethernet HWaddr 5c:26:0a:16:e4:31
UP BROADCAST 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:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:22 Memory:f6fe0000-f7000000
eth2 Link encap:Ethernet HWaddr 00:25:56:b2:16:3e
inet addr:192.168.1.78 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::225:56ff:feb2:163e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10329105 errors:1 dropped:0 overruns:0 frame:2751349
TX packets:7712653 errors:609 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2531013388 (2.5 GB) TX bytes:614377694 (614.3 MB)
Interrupt:17 Base address:0xc000
eth0:avahi Link encap:Ethernet HWaddr 5c:26:0a:16:e4:31
inet addr:XXX.XXX.XXX.XXX Bcast:YYY.YYY.YYY.YYY Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
Interrupt:22 Memory:f6fe0000-f7000000
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:2751 errors:0 dropped:0 overruns:0 frame:0
TX packets:2751 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:303844 (303.8 KB) TX bytes:303844 (303.8 KB)
Итак, мой вопрос:приводят ли внесенные мной изменения к /etc/network/interfaces
тому, что интернет-соединение всегда будет работать через устройство eth0
или, по крайней мере, всегда будет иметь псевдоним устройства eth0
? Если нет, то после отмены моих изменений в /etc/network/interfaces
, что я могу сделать, чтобы всегда ссылаться на устройство интернет-соединения как eth0
?
[Добавлено ниже в ответ на запрос.]
Содержание /etc/udev/rules.d/70-persistent-net.rules
:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="5c:26:0a:16:e4:31", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x14e4:/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0/ssb0:0 (b43-pci-bridge)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:56:b2:16:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
# PCI device 0x14e4:/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0 (wl)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:56:b2:16:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x14e4:/sys/devices/pci0000:00/0000:00:1c.1/0000:0c:00.0 (wl)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:56:b2:16:3e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
решение1
Имена устройств автоматически назначаются для каждого отдельного элемента оборудования. Видите записи "HWaddr"? Каждая из них — это отдельный MAC-адрес. Система хранит и запоминает каждое имеющееся у вас оборудование, так что каждое из них получает отдельную метку и может быть идентифицировано как разные устройства.
Я не верю, что вы можете настроить его так, чтобы все было "eth0", если вы используете несколько устройств. Но вы можете изменить метки на каждом интерфейсе (делайте это ОСТОРОЖНО).