eth0 연결이 끊어지면 SSH를 통해 연결할 수 없습니다.

eth0 연결이 끊어지면 SSH를 통해 연결할 수 없습니다.

비슷한 질문을 여러개 봤지만 아직 해결책을 찾지 못했습니다. 나는 Raspberry Pi에서 개발 중이며 두 번째 이더넷 포트를 연결하고 있습니다(결국 Pi Zero의 유일한 포트가 되어 작동하는 장치에서 프로토타입을 더 쉽게 만들 수 있습니다).

인터페이스가 나타납니다( eth1아래 그림 참조).

pi@rpi42:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.13  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::10a1:563b:4056:9f04  prefixlen 64  scopeid 0x20<link>
        inet6 fd87:1ceb:4c8c:1:cd55:9c53:b1c2:85b  prefixlen 64  scopeid 0x0<global>
        ether dc:a6:32:73:38:d2  txqueuelen 1000  (Ethernet)
        RX packets 59958  bytes 15803023 (15.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 742  bytes 84166 (82.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.56  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fd87:1ceb:4c8c:1:fa0:37de:a0c4:30dd  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::78d1:81ff:fed5:b9a0  prefixlen 64  scopeid 0x20<link>
        ether 7a:d1:81:d5:b9:a0  txqueuelen 1000  (Ethernet)
        RX packets 6913  bytes 2239414 (2.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 118  bytes 11356 (11.0 KiB)
        TX errors 66  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 1000  (Local Loopback)
        RX packets 2  bytes 198 (198.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 198 (198.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

...그리고 IP 주소가 내 네트워크 컨트롤러와 일치합니다. 하지만 IP가 일치하려면 고정 IP를 설정한 다음 명시적으로 설정해야 합니다 eth1. sudo ifconfig eth1 192.168.1.56/24. 또한 systemd를 사용하여 MAC 주소를 설정해야 했습니다.

[Unit]
Description=Set MAC address for w5500 module
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-eth1.device
After=sys-subsystem-net-devices-eth1.device
[Service]
Type=oneshot
ExecStart=/sbin/ip link set dev eth1 address 7a:d1:81:d5:b9:a0
ExecStart=/sbin/ip link set dev eth1 up
[Install]
WantedBy=multi-user.target

eth0나는 연결을 끊고 여전히 장치에 SSH로 연결할 수 있기를 바랐 지만 그런 행운은 없었습니다.eth0연결된 경우 IP 주소를 사용하여 장치에 SSH를 연결하거나 연결되지 않은 경우 장치에 SSH를 통해 연결할 수 있습니다.이러한 인터페이스의 IP 주소가 동일해야 하는지 아니면 달라야 하는지 잘 모르겠지만 나에게는 중요하지 않습니다.

route -nif의 유용한 출력은 다음과 같습니다.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    203    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     202    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     203    0        0 eth1

나는 조금 압도당했습니다. 미리 감사드립니다.

관련 정보