为什么 Ubuntu 无法通过 LAN 访问我的 Raspberry Pi?

为什么 Ubuntu 无法通过 LAN 访问我的 Raspberry Pi?

好的,我最近得到了一个 Raspberry Pi,并将它连接到我的 Wi-Fi - 我启用了 SSH 并安装了 Hiawatha,我可以从当时运行 Puppy Linux 的桌面顺利访问它。

启动 Windows 时我也能正常访问它(Win XP Pro 上的 PuTTY),并且上网本也可以通过 PuTTY 访问它。(Win 7 Starter)

但是,当我启动 Ubuntu 时,所有 SSH、HTTP 和 HTTPS 连接都被拒绝。为了确认是 Ubuntu 存在连接问题,并且只有 Ubuntu 存在连接问题,我重新启动了 Puppy Linux - 连接正常,然后重新启动了 Windows - 连接正常。上网本也可以毫无问题地连接到所有 3 个服务。只有 Ubuntu 才说连接被拒绝。

我想知道哪里出了问题——我已经完成了所有基本的故障排除:重启 RPi、重启我的电脑、重启无线路由器等。Raspberry Pi 没有启用防火墙,我的路由器为连接到 LAN 的所有设备提供不受限制的相互访问。我已经完成了广泛的测试中,Ubuntu 毫无疑问地被证明是唯一一个不愿意连接的系统。

更新:刚刚测试通过我的外部 IP 进行访问,Ubuntu 上一切都运行顺利!然而,Ubuntu 仍然无法从任何本地设备访问 Pi,我只是再次确认我的其他操作系统。我觉得很奇怪,Ubuntu 在本地连接时会遇到麻烦(与我的其他操作系统不同),但可以通过我的外部 IP 正常访问 Pi。

更新 2:禁用防火墙可以让我使用权设备,但密码报告不正确每一个单身的时间。我尝试将其输入到 Gedit 中,然后在 SSH 登录期间将其拖放到密码提示符中,访问时授权[email protected],但访问时不授权[email protected]。这真是令人沮丧。

答案1

因此,除非您ufw在 Ubuntu 计算机上启用默认设置,否则连接始终会报告Connection refusedufw在客户端上禁用后,连接已建立,但密码始终被拒绝?

在这种情况下,我猜想您的问题是 IP192.168.2.128被路由回您的客户端 Ubuntu 机器,而实际上您正在连接到ssh在 Ubuntu 机器上运行的服务器。这可以解释:

  • 为什么您可以从互联网连接。

  • 为什么当您的 Ubuntu 客户端上的防火墙打开时您的连接被拒绝。

  • 为什么关闭客户端防火墙后连接不再被拒绝。

  • 为什么现在连接已经建立,但是认证失败。

要解决此问题,请执行以下操作:

  • 使用本地连接和互联网连接检查服务器的主机密钥。它报告的是同一个密钥吗?ssh -v [email protected]

  • 或者当您从本地连接时,您会在提示符下从另一个终端输入密码:并查看是否与您的 Ubuntusudo netstat -tupan建立了连接。sshd

虽然这个案例可以解释一切,但它太奇怪了,我怀疑这是你的问题。

答案2

您的 ubuntu 机器获取的网络 IP 地址与预期不同,这是完全有可能的。请尝试以下操作:

  • 在 raspi 上,使用以下命令检查其 IP 地址ifconfig | grep 192.168
  • 在 ubuntu 机器上,使用以下命令检查其 IP 地址ifconfig | grep 192.168

为了能够在本地网络上互相通信,它们都应该使用相同的子网 - 查看 IP 地址的第三部分以查看它们是否如此。 就您而言,它们都应该位于 192.168.2.* 子网中。

确保他们确实有不同的IP 地址也是如此。这似乎很明显,但如果其中一个使用 DHCP,而另一个是静态设置的,则可能会发生这种情况。

如果一切正常,请运行以下命令来查看数据包应该去往何处:

route -n

在输出中查找适用于您的树莓派的目标子网。实际上应该只有 3 行:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

如果您有更多的行或事情发展到奇怪的位置,那么这就是答案。

我的猜测是,你的 ssh 连接最终会到达与你的 raspberry pi 上的不同的 SSH 服务器,这就是为什么更改 ubuntu 防火墙会对它产生影响并且你的登录不起作用。

答案3

在 Ubuntu 13.10 上,我无法 ssh 到我的 pi,而之前在 13.04 和 Mint 16 上可以。当我尝试

ssh -vvv user@host

我有 :

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY

我偶然发现一个建议,说将机器(不是 pi)的 MTU 设置为 1200,而不是自动。我这样做了,关闭 -> 然后打开我的 wifi,并在第一次尝试时使用 ssh 连接到 PI。希望这对某人有所帮助。

答案4

删除~/.ssh/known_hosts文件并重试。如果之前有一台具有相同 IP 地址的主机可以通过 ssh 访问,则可能会保留无效指纹

相关内容