我有一台通过 LAN 或无线方式连接到互联网的 Raspberry Pi。如何扫描本地网络以获取其 IP 地址,以便通过 SSH 进入?
虽然我可以将它连接到显示器并手动运行ifconfig
,但我希望有一种更简单的方法,例如使用nmap
。
答案1
这Raspberry Pi Stack Exchange 网站上的答案似乎完美解决了这个问题。关键是所有 Raspberry Pi 都有一个以 开头的 MAC 地址,B8:27:EB
因此您可以使用nmap
它来扫描网络并过滤该 MAC 地址,如下所示:
sudo nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
当然,应该192.168.1.0/24
进行更改以匹配您的 Raspberry Pi 的网络设置,但192.168.1.0/24
无论如何我假设这是默认的 Raspberry Pi 范围。
还,这个页面似乎有另一个不错的方法arp
通过使用和grep
仅基于 MAC 地址查找流量来实现相同目标;不需要网络范围:
arp -a | grep b8:27:eb | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
答案2
假设你使用的是 Linux,你可以尝试 nmap。你可以尝试以下方法:
$ nmap 192.168.1.0/24
Nmap scan report for pi (192.168.1.10)
Host is up (0.023s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
这将列出网络 192.168.1.0/24 上的所有主机,并列出每个主机上打开的 tcp 端口。通常,您会发现您的 raspberry py 打开了端口 22,如果您正在运行其他服务,则还会打开其他端口。