Ubuntu为什么不能通过LAN访问我的Raspberry Pi?


9

好的,我最近有了Raspberry Pi,并且将其连接到Wi-Fi-我启用了SSH并安装了Hiawatha,那时我可以从运行Puppy Linux的桌面上正常访问它。

当引导到Windows(在Win XP Pro上为Putty)时,我也可以很好地访问它,并且上网本也可以通过PuTTY访问它。(Win 7入门版)

但是,当我启动到Ubuntu时,所有的SSH,HTTP和HTTPS连接都被拒绝。为了确认是Ubuntu,并且只有Ubuntu出现连接问题,我重新启动到Puppy Linux(连接正常)和Windows(连接正常)。上网本可以连接到所有3个服务,也不会出现问题。只是Ubuntu表示连接被拒绝。

我想知道出了什么问题-我已经完成了所有基本的故障排除:重新启动RPi,重新启动计算机,重新启动无线路由器等。Raspberry Pi没有启用防火墙,并且我的路由器提供了所有已连接的设备局域网彼此之间不受限制的访问。我已经进行了广泛的测试,并且毫无疑问,Ubuntu被证明是唯一不愿意连接的人。

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

更新2:禁用我的防火墙让我访问该设备,但密码是不正确的报道每天单身时间。我尝试将其键入Gedit,然后在SSH登录期间将其拖放到密码提示中,并且在访问pi@jamestheawesomedude.cu.cc时进行授权,而在访问时进行授权pi@192.168.2.128。令人难以置信的令人沮丧。


2
请向我们显示日志。ssh -vvv user@host在客户端,sudo tail -f /var/log/auth.log在服务器端。也许也需要增加SSH服务器配置中的详细程度。
Andrejs Cainikovs 2013年

真的没有什么有趣的,只是“连接被拒绝”消息:pastebin.com/Nc1W8Mja
JamesTheAwesomeDude 2013年

3
仅供参考:还有一个Raspberry堆栈raspberrypi.stackexchange.com
Meer Borg

3
@MeerBorg 我已经是那里的用户了,我实际上考虑在那里问这个问题,但是Ubuntu是唯一出现连接问题的用户。如果我无法通过任何方法连接,我可能会怀疑Pi本身存在问题,但是由于Ubuntu在这里很奇怪,因此我决定在此站点上进行询问。
JamesTheAwesomeDude13年

@JamesTheAwesomeDude,应该有比普通连接拒绝更具描述性的内容。该消息是结果,但是也应该有一条错误消息。
Andrejs Cainikovs

Answers:


1

因此,直到ufw在Ubuntu计算机上启用默认设置后,连接始终会报告Connection refused。禁用ufw客户端上的连接后,会建立连接,但是密码始终被拒绝吗?

在这种情况下,我想您的问题是192.168.2.128IP被路由回了您的客户端Ubuntu计算机,实际上您正在连接到sshUbuntu计算机上运行的服务器。这将解释:

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

  • 为什么在Ubuntu客户端上启用防火墙后,您的连接被拒绝了。

  • 为什么在客户端防火墙关闭的情况下不再拒绝连接。

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

解决这种情况:

  • ssh -v pi@192.168.2.128使用本地和Internet连接检查服务器的主机密钥。它报告相同的密钥吗?

  • 或者,当您从本地进行连接时,系统会提示您从另一个终端输入密码:sudo netstat -tupan并查看是否sshd在Ubuntu上建立了到的连接。

尽管此案可以解释所有问题,但它太奇怪了,我怀疑这是您的问题。


#ufw允许<port>添加异常。#ssh -v user @ address获取详细的输出,它将告诉您更多有关无法连接的原因。“拒绝连接”通常表示默认端口错误,防火墙客户端或服务器阻止了连接。
j0h 2014年

1
@ j0h我想您想发布此评论作为对该问题的评论。但无论如何:OP已在注释中提供了ssh -vvv输出。他在问题中还说Pi没有启用防火墙,因此ufw在客户端上,他说他确实禁用了它,但是他仍然无法登录。端口也不是问题,因为他可以从其他计算机连接到同一端口。
falconer 2014年

1

您的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连接最终会遇到与树莓派上的SSH服务器不同的SSH服务器,这就是为什么更改ubuntu防火墙会影响它并且您的登录名无法正常工作的原因。


0

根据您的PasteBin中的内容,“连接被拒绝”表示您正在从该IP地址上的任何内容获得TCP重置。

健全性检查:在进行故障排除时,禁用ufw。

在禁用桌面防火墙的情况下,您可以从桌面ping Pi吗?您可以从Pi ping桌面吗?

在双向尝试ping之后,请查看两台计算机上“ arp -n”的输出。他们看到对方的MAC(以太网硬件)地址还是重定向/拦截流量?

如果您可以在两个方向上ping通,并且'arp -n'表示正在使用正确的MAC地址(请在另一台计算机上检查'ifconfig'),下一步是检查Pi上的/var/log/auth.log。它应该告诉您连接尝试出了什么问题。

如果以上方法无济于事,请向我们展示Pi上以下命令的输出:

sudo ifconfig -a
cat /etc/resolv.conf
arp -n
netstat -rn
sudo iptables-save
sudo grep ssh /var/log/auth.log | tail -50

在您的桌面上:

sudo ifconfig -a
cat /etc/resolv.conf
arp -n
netstat -rn
sudo iptables-save

我在上面的注释中看到了一些粘贴,但是首先要关闭防火墙,整个过程很重要。如果您可以在关闭防火墙的情况下使用它,则可以继续对防火墙规则进行故障排除。

同样,即使您的目标是IP地址,DNS设置仍然很重要,因为SSH在主机密钥验证期间使用DNS。


0

删除~/.ssh/known_hosts文件,然后重试。如果以前存在可访问具有相同IP地址ssh的主机,则您可能保留了无效的指纹


0

在Ubuntu 13.10上,我以前无法在pi和13.04和Mint 16上使用ssh。

ssh -vvv user@host

我有 :

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY

我遇到了一个建议,说将Machine(而非pi)的MTU设置为1200,而不是自动设置。我这样做了,先关闭->然后在wifi上,并在第一次尝试时将ssh连接到PI。希望这对某人有帮助。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.