![eth0 断开连接时无法通过 SSH 连接](https://linux22.com/image/184813/eth0%20%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E6%97%B6%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5.png)
我见过几个类似的问题,但还没有找到解决方案。我正在开发 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 -n
这是if 有帮助的输出:
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
我有点不知所措了。提前致谢。