硬件是这样的:
- 可通过 WiFi 上网的笔记本电脑。路由器实际上无法访问。
- Headless Banana/Raspberry/Your-Favorite-Flavor Pi,需要 SD 映像和一些额外的软件包。
因此,我在 Pi 和笔记本电脑之间获得了一条临时交叉电缆,将笔记本电脑的以太网端口设置为“与其他计算机共享”(*),对 SD 卡进行映像,然后启动 Pi。现在,Pi 有什么地址以便我可以通过 SSH 访问它?
我不必像这个问题想要的那样强制一个特定的地址。我只是想知道它是什么。
(*) 网络通知->编辑连接... ->有线连接 1 ->编辑按钮-> IPv4 设置选项卡->方法 = 共享到其他计算机
你可以做几件事。假设你有从笔记本电脑到树莓的单一以太网连接,那么
arp-scan
就足够了。首先,弄清楚您的以太网接口的名称是什么。就我而言,这是eth3
. 因此,这里有一个例子:在输出中你可以看到我的树莓有 10.42.0.40 的 IP 地址。
这
arp-scan
是非常简单的方法,不需要太多的汗水。也可以使用替代方法。以下是其中一些:ip addr show eth3
在我的例子中通过命令),您可以编写一个简单的脚本来 ping 主机范围。(有关执行此操作的 python 脚本,请参见下文)。fping
是标准ping
命令的替代品,它确实允许探测主机范围nmap
多种方法执行主机发现。特别是,此命令:nmap -e eth3 -sn 10.42.0.0/24
效果最好 - 它指示nmap
仅在-sn
选项指定的接口上使用选项执行主机发现(在引擎盖下将 ARP 请求发送到广播 MAC 地址)-e
。这10.42.0.0/24
是网络的 CIDR 表示法。非常简单。Wireshark
也可用于捕获以太网接口上的数据包。当然,您的树莓派必须首先发送一些数据包才能被捕获,因此如果您没有“健谈”的树莓派,它可能无法正常工作。但是,您可以开始捕获、按 UDP 协议过滤、拔出并重新插入 Raspberry。您应该会看到 DHCP 请求和响应当主机从网络中出现/消失时,设备会随着时间的推移构建它们的 arp 表,因此您也可以使用
arp -a
命令。如果您使用的是标准 Ubuntu 并且没有安装任何替代 DHCP 服务器,您可以检查
dnsmasq
为您的设备分配了 IP 的租约文件。例如:在此处查看我的相关问题:找不到树莓派的 DHCP 租约
nmap
如果您有连接了多个设备的以太网交换机,Wireshark
那么这些方法将非常有用。既然我提到了用 编写脚本
ping
,这里有一个:这将 ping 我的网络 (
10.42.0.x
) 的 256 个地址范围,并指示哪些主机已启动。1 秒后 ping 超时,因此扫描所有内容需要 256 秒。如果您只有一个覆盆子,您可以编辑脚本以在 ip 响应 ping 时退出,从而加快进程。您还可以创建一定数量的线程。arp-scan
但是仍然是更快的选择。也许这个链接可能有用:https ://www.raspberrypi.org/documentation/remote-access/ip-address.md
核心部分是:
安装 nmap:
执行 ping 扫描:
例如:
然后你会得到一个类似于这个的输出:
有时,如果 wifi 可用,我也会使用移动应用程序:https: //play.google.com/store/apps/details? id=ua.com.streamsoft.pingtools