사례 시나리오;라즈베리 파이 리눅스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) 올바르게 구성됩니다.
수동 구성 eth1
등 eth2
은 (일부에게는) 실제로 문제를 해결하는 방법으로 간주될 수 있지만 질문에서는 그런 방식이 아닙니다. 문제는 연결한 모든 NIC( eth9
, wlan3
, enp2s0
... 등)가 자동으로 부팅되고 변경되지 않은 /etc/network/interfaces
파일에서 (DHCP로) 구성되는 것으로 보이며 이 동작을 유지하고 싶습니다.
답변1
ifconfig -a
인식되고 적절한 드라이버가 있는 모든 장치가 표시됩니다 .
일반 ifconfig
에는 시작되고 구성된 장치만 표시됩니다.
파일 은 어댑터와 어댑터 /etc/network/interfaces
만 구성합니다 . 부팅 시 다른 장치(등)을 구성 하지 않으므로 해당 장치를 온라인으로 가져오고 활성화할 방법이 없습니다. (아래 파일에서 뭔가를 하지 않는 이상 ?)lo
eth0
eth1
/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