/etc/network/interfaces에서 하나의 NIC를 수동으로 구성하면 다른 모든 NIC가 비활성화됩니다.

/etc/network/interfaces에서 하나의 NIC를 수동으로 구성하면 다른 모든 NIC가 비활성화됩니다.

사례 시나리오;라즈베리 파이 리눅스v9.1에 연결네트워크RJ45를 통해:

luis@Fresoncio:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.25.248  netmask 255.255.255.0  broadcast 172.18.25.255
        inet6 fe80::5c59:95e9:c658:8ad2  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:92:fe:b3  txqueuelen 1000  (Ethernet)
        RX packets 24160  bytes 1673645 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1968  bytes 196942 (192.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4  bytes 156 (156.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 156 (156.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

DHCP에서 얻은 IP는 172.18.25.248입니다.

가끔 다른 네트워크에 연결해야 할 때가 있어서 추가합니다.여러 개의 네트워크 카드다음과 같은 장치:

luis@Fresoncio:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.25.248  netmask 255.255.255.0  broadcast 172.18.25.255
        inet6 fe80::5c59:95e9:c658:8ad2  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:92:fe:b3  txqueuelen 1000  (Ethernet)
        RX packets 24160  bytes 1673645 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1968  bytes 196942 (192.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.35.101  netmask 255.255.255.0  broadcast 192.168.35.255
        inet6 fe80::2064:deee:d534:1a83  prefixlen 64  scopeid 0x20<link>
        ether a0:ce:c8:09:f8:84  txqueuelen 1000  (Ethernet)
        RX packets 2378  bytes 177246 (173.0 KiB)
        RX errors 0  dropped 4  overruns 0  frame 0
        TX packets 54  bytes 9354 (9.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.33  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a170:6c36:802a:c19  prefixlen 64  scopeid 0x20<link>
        ether 3c:18:a0:07:63:8b  txqueuelen 1000  (Ethernet)
        RX packets 797  bytes 61728 (60.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37  bytes 4845 (4.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

...잠깐만요,
지금까지는 모든 것이 괜찮습니다.

이것질문내가 오고 싶을 때놓다(DHCP 또는 정적)IP 구성모든 NIC(예: 기본 NIC)의 경우(항상 eth0):

luis@Fresoncio:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

auto eth0
iface eth0 inet dhcp

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

재부팅(또는 네트워크 다시 시작) 후 eth0어댑터 설정은 제대로 작동하지만 다른 NIC는 더 이상 표시되지 않아 작동이 중지된 것 같습니다.

luis@Fresoncio:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.25.248  netmask 255.255.255.0  broadcast 172.18.25.255
        inet6 fe80::5c59:95e9:c658:8ad2  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:92:fe:b3  txqueuelen 1000  (Ethernet)
        RX packets 24160  bytes 1673645 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1968  bytes 196942 (192.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4  bytes 156 (156.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 156 (156.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

비록 그들이 아직 거기에 있더라도널리 받아들여짐:

luis@Fresoncio:~$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.25.248  netmask 255.255.255.0  broadcast 172.18.25.255
        inet6 fe80::ba27:ebff:fe92:feb3  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:92:fe:b3  txqueuelen 1000  (Ethernet)
        RX packets 1430  bytes 109681 (107.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 194  bytes 33418 (32.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether a0:ce:c8:09:f8:84  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth2: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:0e:c6:d4:10:b6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth3: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 3c:18:a0:07:63:8b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4  bytes 156 (156.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 156 (156.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

물론 /etc/network/interfaces다시 설정으로 갈 수도 있습니다 eth1. eth2하지만 하나도 없어더 실용적인방법?

이것은:특정 네트워크 카드의 IP 구성을 설정하는 방법존재하다/etc/network/interfaces 행동을 바꾸지 않는 것다른 사람들?

더 많은 데이터:

  • Ubuntu v16.04를 실행하는 데스크탑 PC와 동일한 결과입니다.

편집 01:

일반적인 Linux 설치에서는 /etc/network/interfaces일반적으로 다음과 같이 찾습니다.

luis@Fresoncio:~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

수정되지 않은 이 원본 /etc/network/interfaces파일에서는 모든 네트워크 카드가 부팅되고(내 경우에는 DHCP) 올바르게 구성됩니다.

수동 구성 eth1eth2은 (일부에게는) 실제로 문제를 해결하는 방법으로 간주될 수 있지만 질문에서는 그런 방식이 아닙니다. 문제는 연결한 모든 NIC( eth9, wlan3, enp2s0... 등)가 자동으로 부팅되고 변경되지 않은 /etc/network/interfaces파일에서 (DHCP로) 구성되는 것으로 보이며 이 동작을 유지하고 싶습니다.

답변1

ifconfig -a인식되고 적절한 드라이버가 있는 모든 장치가 표시됩니다 .

일반 ifconfig에는 시작되고 구성된 장치만 표시됩니다.

파일 은 어댑터와 어댑터 /etc/network/interfaces만 구성합니다 . 부팅 시 다른 장치(등)을 구성 하지 않으므로 해당 장치를 온라인으로 가져오고 활성화할 방법이 없습니다. (아래 파일에서 뭔가를 하지 않는 이상 ?)loeth0eth1/etc/network/interfaces.d

/etc/network/interfaces.d/etc/network/interfaces이와 같이 설정할 수 없다고 가정하면 eth0은 여전히 ​​DHCP를 수행하고 기본 게이트웨이를 제공하며 다른 장치는 연결된 게이트웨이 없이 해당 서브넷에 있게 됩니다.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
ifact eth1 inet static
   address 192.168.35.101
   netmask 255.255.255.0

auto eth2
ifact eth2 inet static
   address 192.168.1.33
   netmask 255.255.255.0

단 1개의 NIC와 가상 인터페이스를 사용하여 동일한 작업을 수행할 수 있습니다.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth0:1
ifact eth0:1 inet static
   address 192.168.35.101
   netmask 255.255.255.0

auto eth0:2
ifact eth0:2 inet static
   address 192.168.1.33
   netmask 255.255.255.0

관련 정보