Я использую Ubuntu 12.04, и, насколько мне известно, на моей машине есть только одна сетевая карта (ноутбук Dell) - я не могу представить, почему их будет больше 1.
Иногда мое интернет-соединение выполняется через устройство 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
теперь возвращает (где [ 1117] и 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"
Имена устройств назначаются автоматически для каждого отдельного устройства. Видите записи "HWaddr"? У каждого из них свой MAC-адрес. Система хранит и запоминает каждое имеющееся у вас оборудование, так что каждое из них получает различную метку и может быть идентифицировано как разные устройства.
Я не верю, что вы можете настроить его так, чтобы все могло быть «eth0», если вы используете несколько аппаратных средств. Но вы можете изменить метки на каждом интерфейсе (делайте это ВНИМАТЕЛЬНО).