1

Я использую suse sp1. Я обнаружил, что есть разница между выводом команды "ip a" и "ifconfig", например:

nssh# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
    inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:21:28:f7:fc:70 brd ff:ff:ff:ff:ff:ff
    inet 10.175.140.214/25 brd 10.175.140.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:21:28:f7:fc:71 brd ff:ff:ff:ff:ff:ff
4: eth7: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 90:e2:ba:0b:5e:68 brd ff:ff:ff:ff:ff:ff
5: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:21:28:f7:fc:72 brd ff:ff:ff:ff:ff:ff
6: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:21:28:f7:fc:73 brd ff:ff:ff:ff:ff:ff
7: eth6: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 90:e2:ba:0b:5e:69 brd ff:ff:ff:ff:ff:ff

nssh# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:21:28:F7:FC:70  
          inet addr:10.175.140.214  Bcast:10.175.140.255  Mask:255.255.255.128
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:262033 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61525 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:34290673 (32.7 Mb)  TX bytes:22269413 (21.2 Mb)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:7855586 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7855586 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:743730481 (709.2 Mb)  TX bytes:743730481 (709.2 Mb)

и в моем случае ifconfig дает правильный результат. так как я удалил ifcfg-eth [1,2,3,6,7], в /etc /sysconfig /network. так что мой вопрос: 1) почему ip дает устаревшую информацию? 2) как прошить ip a как-нибудь и дать ему актуальную информацию об интерфейсе?

2 ответа2

1

Не думаю, что вы можете удалить их, но вы можете удалить:

ip link delete dev eth5

Не знаете, почему в вашем случае они отображаются по-разному ... однако после этого вы перезапустили сетевой сервис? Если нет, вы, вероятно, просто удалили файлы, когда интерфейсы еще зарегистрированы.

Другой пример - когда вы говорите, что ifconfig eth0 down в этот момент отключен , интерфейс административно отключен, но если вы сделали ip addr вы все равно увидите его, потому что ip addr показывает интерфейсы, которые не только не подключены, но и "административно недоступны".

0

ifconfig получает информацию из /proc/net/dev и вызывает ioctl . ip a (iproute2 addr) получает информацию из ядра через API-интерфейс Netlink . Мое предположение было бы, что это означает, что ip a , вероятно, будет более современным, если что-нибудь. Вам не нужно (не может?) вручную обновить iproute2

ifconfig -a прежнему показывает интерфейсы? Возможно, они все еще присутствуют, но в настоящее время неактивны. ifconfig по умолчанию показывает только активные в данный момент интерфейсы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .