![在 Ubuntu 中使用以太网电缆通过 SSH 连接 Pi 时出现问题](https://linux22.com/image/901457/%E5%9C%A8%20Ubuntu%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BB%A5%E5%A4%AA%E7%BD%91%E7%94%B5%E7%BC%86%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%20Pi%20%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我想通过 SSH 将我的 Raspberry Pi 3 B+ 连接到运行 Ubuntu 18.04 的笔记本电脑,只需一根以太网线,无需任何互联网连接。
1)打开 Pi 和笔记本电脑的 Wi-Fi [确定]
2)Pi 和笔记本电脑的 Wi-Fi 关闭 [问题]
1)打开 Pi 和笔记本电脑的 Wi-Fi [确定]
如果我为我的笔记本电脑和我的 Pi 打开 Wi-Fi,我就可以使用 获取 Pi 的 IP 地址hostname -I
,它会为我的 Pi 返回两个地址169.254.176.100 192.168.178.80
,见下图。
据我了解,这192.168.178.80
是 Pi 的 IP 地址,由 Wi-Fi 提供。
我可以通过 ssh 从我的笔记本电脑(用户 fernandez)连接到[email protected]
,见下图
当 Wi-Fi 处于开启状态时,ip route
返回我的笔记本电脑
fernandez@emmabook5:~$ ip route
default via 192.168.178.1 dev wlp3s0 proto dhcp metric 600
169.254.0.0/16 dev wlp3s0 scope link metric 1000
192.168.178.0/24 dev wlp3s0 proto kernel scope link src 192.168.178.77 metric 600
fernandez@emmabook5:~$
在 Pi 上
pi@emmapi1:~ $ ip route
default via 192.168.178.1 dev wlan0 src 192.168.178.80 metric 303
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.176.100 metric 202
192.168.178.0/24 dev wlan0 proto kernel scope link src 192.168.178.80 metric 303
pi@emmapi1:~ $
2)Pi 和笔记本电脑的 Wi-Fi 关闭 [问题]
当我关闭 Pi 和笔记本电脑的 Wi-Fi 时,hostname -I
只返回169.254.176.100
Pi 的信息,而没有返回笔记本电脑的任何信息(该地址192.168.178.77
是我打开 Wi-Fi 时笔记本电脑的地址),见下图。
我尝试通过 SSH 将笔记本电脑和 Pi169.254.176.100
用以太网电缆连接起来(Pi 的以太网连接橙色灯亮着,所以我认为它已正确连接)
但它失败了,我只收到错误:
这是什么意思?或者我如何才能仅使用以太网电缆通过 SSH 连接到我的 Pi,而无需互联网连接?
关闭 Wi-Fi 后ip route
我的笔记本电脑上没有任何反应
fernandez@emmabook5:~$ ip route
fernandez@emmabook5:~$
在 Pi 上
pi@emmapi1:~ $ ip route
default dev eth0 proto kernel scope link src 169.254.176.100 metric 202
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.176.100 metric 202
pi@emmapi1:~ $
答案1
如果你的 RPi 和 Ubuntu 计算机位于同一子网中,则此方法应该可行。在 Ubuntu 计算机上设置 IP 地址和子网掩码手动使其与您的 RPI 位于同一子网,但具有不同的 IP。请执行以下操作:
pi@raspberrypi3b:~ $ ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.14 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::53b3:8c82:c0d6:57d5 prefixlen 64 scopeid 0x20<link> ether b8:27:eb:cd:2f:ff txqueuelen 1000 (Ethernet) RX packets 143870 bytes 30387506 (28.9 MiB) RX errors 0 dropped 65635 overruns 0 frame 0 TX packets 32375 bytes 4042276 (3.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在这种情况下,你会手动将 Ubuntu 计算机上的 IP 地址设置为192.168.0.100
(例如),并将子网掩码设置为255.255.255.0
。或者,将其输入CIDR 表示法: 192.168.1.100/24
。还有Ubuntu 文档已经解释了如何设置你的 IP 地址手动,因此我就不再重复了。(这是手动网络配置的“GUI 方法”)
我很久没做过这个了,但我认为它会起作用。让我们知道你做得怎么样。