远程访问
远程访问简介
有时,您需要 在不连接显示器、键盘和鼠标的情况下访问 Raspberry Pi。也许 Raspberry Pi 嵌入了机器人或安装在不方便的位置。或者您没有备用显示器。
通过本地网络远程控制
要从本地网络上的其他设备远程控制 Raspberry Pi,请使用以下服务之一:
SSH (Secure SHell)可安全访问 Raspberry Pi 上的终端会话。VNC(Virtual Network Computing )可让您安全地访问 Raspberry Pi 上的桌面屏幕共享。您只需要另一台电脑、本地网络和 Raspberry Pi 的本地 IP地址。Raspberry Pi Connect 可以安全地共享 Raspberry Pi 的屏幕,无需确定本地 IP 地址。
通过本地网络在设备间共享文件
通过 NFS(网络文件系统)、SCP(安全复制协议)、Samba 和 rsync
等服务,你可以在本地网络的设备间共享文件,而无需直接控制远程设备。当你需要从另一台设备访问存储在一台设备上的数据时,这些服务会非常有用。
通过互联网远程控制
要从任何连接到互联网的设备上远程控制 Raspberry Pi,你可以
- 通过开放的互联网、VPN 或使用外部服务(如 RealVNC 的云 VNC Viewer)在 Raspberry Pi 上显示 SSH或 vncVNC。
- 使用由 Raspberry Pi 提供的免费屏幕共享及远程SSH服务 Raspberry Pi Connect。
如何查找IP地址
从另一台机器连接到 Raspberry Pi 的大多数方法都要求您知道 Raspberry Pi 的本地 IP 地址。
任何连接到局域网的设备都会被分配一个 IP 地址。为了使用 SSH 或 VNC 从另一台机器连接到 Raspberry Pi,你需要知道 Raspberry Pi 的 IP 地址。如果连接了显示器,这就很容易了,而且有很多方法可以从网络上的另一台机器远程找到它。
要找到 Raspberry Pi 的本地 IP 地址,请使用以下方法之一。
桌面
将鼠标悬停在系统托盘中的网络图标上,会出现一个工具提示。该工具提示会显示当前连接的网络名称和 IP 地址。
命令行
运行以下命令将你的 IP 地址输出到命令行:
hostname -I
启动输出
如果您在树莓派上使用显示器,并启动到命令行而不是桌面,启动顺序将包括您的 IP 地址,作为登录提示前的最后几条输出信息之一。
网络管理器
您可以使用内置的网络管理器 CLI (nmcli) 访问网络的详细信息。运行以下命令
nmcli device show
您应该会看到与下面类似的输出:
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: D0:3B:FF:41:AB:8A
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: exampleNetworkName
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
IP4.ADDRESS[1]: 192.168.1.42/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]: 192.168.1.3
IP6.ADDRESS[1]: ab80::11ab:b1fc:bb7e:a8a5/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ab80::/64, nh = ::, mt = 1024
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: lo
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
GENERAL.DEVICE: p2p-dev-wlan0
GENERAL.TYPE: wifi-p2p
GENERAL.HWADDR: (unknown)
GENERAL.MTU: 0
GENERAL.STATE: 30 (disconnected)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: D0:3B:FF:41:AB:89
GENERAL.MTU: 1500
GENERAL.STATE: 20 (unavailable)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: off
IP4.GATEWAY: --
IP6.GATEWAY: --
此命令将输出树莓派上可访问的各种网络接口的信息。查看 GENERAL.TYPE
行,了解每个块描述的网络接口类型。例如,"ethernet" 指的是设备上的以太网端口,而 "wifi" 指的是某些设备内置的 Wi-Fi 芯片。您可以根据设备访问互联网的方式,查看不同的输出块来查找 IP 地址:
- 如果设备使用 Wi-Fi 连接互联网,请查看 "wifi" 块
- 如果设备使用以太网端口连接互联网,请检查 "ethernet" 块
确定了正确的网络接口块后,请查找名为 IP4.ADDRESS[1]
的字段以获取 IPv4 地址,或查找 IP6.ADDRESS[1]
以获取 IPv6 地址。您可以忽略这些字段中的斜线和数字(如 /24
)。
在上例中,树莓派使用 Wi-Fi 上网。检查 GENERAL.TYPE
字段为 "wifi "的区块,即可找到 IP 地址。在这种情况下,可以使用 IP4.ADDRESS[1]
字段中的 IPv4 地址访问该设备:192.168.1.42
。
使用mDNS解析raspberrypi.local
在树莓派OS上,Avahi 服务开箱即支持多播 DNS。
如果您的设备支持 mDNS,您就可以使用树莓派的主机名和 .local
后缀来访问它。新安装的树莓派 OS的默认主机名是 raspberrypi
,因此默认情况下,任何运行 树莓派OS的树莓派都会响应以下命令:
ping raspberrypi.local
如果可以连接到 树莓派,ping
会显示其 IP 地址:
PING raspberrypi.local (192.168.1.131): 56 data bytes
64 bytes from 192.168.1.131: icmp_seq=0 ttl=255 time=2.618 ms
如果更改树莓派的系统主机名(例如编辑 /etc/hostname
),Avahi 也会更改 .local
mDNS 地址。
如果不记得树莓派的主机名,但系统安装了 Avahi,则可以使用 avahi-browse 命令浏览局域网上的所有主机和服务。
路由器设备列表
在网络浏览器中,导航到路由器的 IP 地址。这个地址通常是 http://192.168.1.1
,但你也可以在路由器的标签上找到它。这将带你进入一个控制面板。然后使用你的凭据登录,凭据通常也印在路由器上或随附的文件中。浏览已连接设备或类似设备的列表(所有路由器都不一样),你应该能看到一些你认识的设备。有些设备会被检测为个人电脑、平板电脑、手机、打印机等,所以你应该认出其中一些并排除它们,以确定哪个是你的树莓派。还要注意连接类型;如果你的树莓派是用线缆连接的,可供选择的设备应该会少一些。
nmap命令
nmap
命令(网络映射器)是用于网络发现的免费开源工具,适用于 Linux、macOS 和 Windows。
- 要在 Linux 上安装,请安装
nmap
软件包,例如apt install nmap
。 - 要在 macOS 或 Windows 上安装,请参阅 nmap.org 下载页面。
要使用 nmap
扫描网络上的设备,你需要知道所连接的子网。首先找到你自己的 IP 地址,换句话说,就是你用来查找树莓派IP地址的电脑的IP地址:
- 在 Linux 上,在终端窗口中输入
hostname -I
- 在 MacOS 上,进入 "
系统偏好设置
",然后进入 "网络
",选择活动网络连接,查看 IP 地址 - 在 Windows 上,进入控制面板,然后在
网络和共享中心
下单击 "查看网络连接
",选择活动网络连接并单击 "查看此连接的状态
"以查看 IP 地址
有了电脑的 IP 地址后,就可以扫描整个子网,查找其他设备了。例如,如果您的 IP 地址是 192.168.1.5
,其他设备将使用 192.168.1.2
、192.168.1.6
、192.168.1.20
等地址。该子网范围的符号是 192.168.1.0/24
(包括 192.168.1.0
至 192.168.1.255
)。
现在在整个子网范围内使用带有 -sn
标志的 nmap
命令(ping 扫描)。这可能需要几秒钟:
nmap -sn 192.168.1.0/24
Ping 扫描只是 ping 所有 IP 地址,看它们是否响应。对于每个响应 ping 的设备,输出都会显示主机名和 IP 地址,如下所示:
Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-10 12:46 GMT
Nmap scan report for hpprinter (192.168.1.2)
Host is up (0.00044s latency).
Nmap scan report for Gordons-MBP (192.168.1.4)
Host is up (0.0010s latency).
Nmap scan report for ubuntu (192.168.1.5)
Host is up (0.0010s latency).
Nmap scan report for raspberrypi (192.168.1.8)
Host is up (0.0030s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.41 seconds
在这里,你可以看到一个主机名为 raspberrypi
的设备,其 IP 地址为 192.168.1.8
。注意,要查看主机名,必须以 root 身份运行 nmap,在命令前加上 sudo
。
使用智能手机获取树莓派的IP地址
Fing 应用程序是一款免费的智能手机网络扫描程序。它适用于 Android 和 iOS。
您的手机和树莓派必须在同一个网络上,因此请将手机连接到正确的无线网络。
打开 Fing 应用程序后,轻触屏幕右上角的刷新按钮。几秒钟 后,你会看到一个列表,其中列出了所有连接到你网络的设备。向下滚动到制造商为 "树莓派" 的条目。你会在左下角看到 IP 地址,在右下角看到 MAC 地址。
使用 SSH 访问远程终端
你可以使用 Secure SHell (SSH) 协议从同一网络的另一台计算机远程访问 Raspberry Pi 的终端。
启用 SSH 服务器
默认情况下,Raspberry Pi OS 禁用 SSH 服务器。请通过以下方式之一启用 SSH:
在桌面上
- 从 首选项 菜单,启动 Raspberry Pi 配置。
- 导航至 接口 选项卡。
- 选择 SSH 旁边的 启用。
- 单击 好。
在烧录全新操作系统映像时
在全新安装的 Raspberry Pi OS 上配置 SSH:
- 按照 Install with Imager 指南中的说明操作。
- 在操作系统自定义步骤中,导航至服务选项卡。
- 勾选启用 SSH复选框。
- 选择密码验证,使用与实际使用 Raspberry Pi 时相同的用户名和密码登录。选择 Allow public-key authentication only 以 配置 SSH 密钥进行无密码登录。
从终端
- 在终端窗口输入
sudo raspi-config
。 - 选择 `Interfacing Options·(连接选项)。
- 导航至并选择
SSH
。 - 选择
YES
。 - 选择
OK
。 - 选择
Finish
。
手动
- 在启动分区中创建名为
ssh
的空文件:
sudo touch /boot/firmware/ssh
- 重新启动机器:
sudo reboot