我正在使用 Raspberry Pi 进行气球项目。当我们有可能恢复 Raspberry Pi 时,它很可能会在农村地区,我想在那时安全地关闭 Pi。
如果附近没有路由器或网络,我想知道是否有办法将带有以太网电缆的 Raspberry Pi 直接连接到笔记本电脑?
我正在使用 Raspberry Pi 进行气球项目。当我们有可能恢复 Raspberry Pi 时,它很可能会在农村地区,我想在那时安全地关闭 Pi。
如果附近没有路由器或网络,我想知道是否有办法将带有以太网电缆的 Raspberry Pi 直接连接到笔记本电脑?
这是我今天刚刚尝试过的 Ubuntu 的解决方案(这个想法也适用于 Windows 或 Mac),它就像一个魅力。
材料
ubuntu 的先决条件
安装网络管理器
$sudo apt-get install network-manager
安装 nmap
$sudo apt-get install nmap
编辑笔记本电脑上的有线连接 (Ubuntu)
通过以太网交叉电缆共享笔记本电脑的 WiFi 连接
使用以太网电缆将您的 RPi 与您的笔记本电脑连接起来
查找以太网连接(笔记本电脑)的广播地址,
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
使用此地址找出您的 RPi 的 IP 地址,在我的情况下是 10.42.0.96,因为 10.42.0.1 是我的笔记本电脑
$nmap -n -sP 10.42.0.255/24
Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-20 23:07 CET Nmap scan report for 10.42.0.1 Host is up (0.00031s latency). Nmap scan report for 10.42.0.96 Host is up (0.0023s latency). Nmap done: 256 IP addresses (2 hosts up) scanned in 2.71 seconds
从您的笔记本电脑登录到您的 RPi(-Y 与 X-forwarding)
$ssh -Y pi@10.42.0.96
瞧!现在您的 RPi 已连接到您的笔记本电脑,并且 RPi 可以共享 WiFi 连接。
pi@raspberrypi ~ $
与 RPi 共享笔记本电脑的显示屏和键盘
在树莓派上安装vncserver
$ sudo apt-get update
$ sudo apt-get install tightvncserver
通过下载 RealVNC(它支持多个平台)在您的笔记本电脑上 安装vncviewer http://www.realvnc.com/download/vnc/
为了能够从 VNC 服务器 <--> VNC 查看器复制和粘贴,您需要在 RPi 上安装 autocutsel。
$sudo apt-get install autocutsel
如果此站点不起作用,请尝试直接从镜像站点下载 .deb,例如 mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
并安装它
$sudo dpkg -i autocutsel_0.10.0-1_armhf.deb
在你的 RPi 上启动 vncserver(你必须在安装 autocutsel 后重新启动 vncserver,你可以发出$vncserver -kill :1
)
$vncserver :1
将 autocutsel -fork 添加到 /home/pi/.vnc/xstartup
#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey autocutsel -fork #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession
在笔记本电脑上启动 vncviewer
$vncviewer
将弹出一个 vncviewer 窗口并输入您的 RPi 的 IP 地址(由您的笔记本电脑提供),然后是端口 1,这是您的 VNC 服务器。例如:在我的情况下是 10.42.0.96:1。
通过输入密码将其连接到 RPi 上托管的 vncserver(自己设置密码)
12.现在您可以在笔记本电脑上看到 RPi 的桌面,我打开浏览器显示共享 WiFi 连接正常。
无路由器 + 无屏幕 + 普通以太网线 + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
首先,我们必须在 Pi 上启用 SSH 服务器,为了安全起见,默认情况下它是禁用的。
如果您已经通过非 SSH 方法(例如屏幕 + 键盘或 UART(见下文))在 Pi 上安装了 shell,只需运行:
sudo systemctl enable ssh
sudo service sshd start
正如在:https ://raspberrypi.stackexchange.com/questions/58478/ssh-not-working-with-fresh-install 中解释的那样,这在引导过程中仍然存在。
否则,在您的主机上插入 SD 卡,并在分区中创建一个名为ssh
file的神奇空文件。boot/
在 Ubuntu 主机上,它会自动挂载,您可以执行以下操作:
sudo touch /media/$USER/boot/ssh
您可以通过以下方式确认:
lsblk
其中包含:
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 43.9M 0 part /media/ciro/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/ciro/rootfs
如果您未在 Pi 上启用 SSHD 守护程序,则 SSH 连接将失败,并显示:
ssh: connect to host 10.42.0.160 port 22: Connection refused
当我们稍后尝试时。
启用 SSH 服务器后
接下来,启动 Pi,并将笔记本电脑的以太网电缆直接连接到 Pi:
在 Ubuntu 17.04 上,要解决此答案中提到的此错误,您首先需要:
sudo apt-get install dnsmasq-base
在主机上,打开网络管理器:
nm-connection-editor
去:
+
签名(添加新连接)在主机上查找 Pi 的 IP:
cat /var/lib/misc/dnsmasq.leases
输出类似:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
是IP,然后像往常一样:
ssh pi@10.42.0.160
我的还有以下内容.bashrc
:
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
在 Pi 内部,请注意它可以通过主机的其他接口正常访问 Internet:
ping google.com
例如在我的笔记本电脑上,树莓派占用了以太网,但主机也通过 WiFi 连接到互联网。
如果主机网卡支持Auto MDI-X ,则不需要交叉线。最近的硬件就是这种情况,例如我测试过的 2012 Lenovo T430,它有一个“Intel® 82579LM Gigabit Network Connection”,它记录了对 Auto MDI-X 的支持。
现在您还可以:
UART串口USB转换器
如果您只想在 Pi 上获得外壳,这是 SSH 的替代方案:https ://en.wikipedia.org/wiki/Serial_port
这不使用 SSH 或网络本身,而是使用更旧、更简单、更直接、更可靠、带宽更低、距离更短的串行接口。使用此方法,Pi 将无法访问 Internet。
台式电脑仍然有一个串行端口,您可以直接将其与 Pi 线对线连接,但是这些端口隐藏在大多数笔记本电脑中,因此我们需要购买便宜的 USB 适配器。我在这里使用过:https ://www.amazon.co.uk/gp/product/B072K3Z3TL另见:https ://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux/367882#367882
首先在主机上插入 SD 卡,然后编辑config.txt
第一个分区中的文件以添加:
enable_uart=1
如解释:https ://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
第一个分区包含引导加载程序、它的配置文件和(Linux / 你的)内核,config.txt
它们就是其中之一。第二个分区包含实际的 Linux 根文件系统。
现在将您的计算机连接到 Pi,如下所示:
您只需要连接 3 根电缆:
这也记录在:https ://www.raspberrypi.org/documentation/usage/gpio/README.md
小心不要将接地连接到 5V,我已经通过这样做烧掉了 2 个 UART 到 USB 芯片和一个 RPI UART!
您根本不需要将 5V 连接到 5V。我认为你可以像那样为你的 Pi 供电,但我听说这是个坏主意,只需使用通常的 USB 电源即可。
最后,将连接器的 USB 端插入您的主机,并获得一个外壳:
sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
退出Ctrl-A \
。
这是 Adafruit 展示的视频:https ://www.youtube.com/watch?v=zUBPeoLW16Q
也可以看看
RPI SE 上的类似问题:https ://raspberrypi.stackexchange.com/questions/3867/ssh-to-rpi-without-a-network-connection
您不需要交叉电缆。您可以使用普通网线,因为 Raspberry Pi LAN 芯片足够智能,可以重新配置自己以进行直接网络连接。干杯
我刚刚成功实施并测试了它。我的项目也有同样的情况,想连接到没有路由器或 wifi 的 Raspberry Pi。只是一根简单的以太网电缆。
使用 ssh putty 程序将地址设置为
树莓派.local
登录并登录,您可以访问终端。
或者,如果设置了 VNC 服务器,请使用 VNC 服务器并放置
树莓派.local:1
在服务器地址中。输入您的 VNC 服务器密码,您现在可以访问 GUI 来做您想做的事。
在可能的情况下,它是在远程位置运行脚本。在海报的情况下,安全地关闭 Pi。简单的粉刺。
为您的笔记本电脑和树莓派配置静态 IP。在 rapberryPI 上进行如下配置。
pi@rpi>sudo nano /etc/network/interfaces
然后根据需要配置以下连接到您的笔记本电脑。
iface eth0 inet static
address 192.168.1.81
netmask 255.255.255.0
broadcast 192.168.1.255
在树莓派上配置静态 IP:
sudo nano /etc/network/interfaces
然后添加:
iface eth0 inet static
address 169.254.0.2
netmask 255.255.255.0
broadcast 169.254.0.255
然后你可以通过 ssh 访问你的树莓派
ssh pi@169.254.0.2
以下是 Windows 用户仅使用以太网电缆和 DHCP 服务器连接到 RPi 的说明。不需要交叉电缆,因为 RPi 可以处理它。我有一篇博客文章,用图片在这里记录了这一点,这可能更容易理解。
下载
下载适用于 Windows 的 DHCP 服务器(下载链接在此处)。解压缩 zip 文件并打开 dhcpwiz 应用程序,该应用程序将配置 DHCP 服务器。
DHCP 服务器配置
在第一个屏幕上点击下一步。
在第二个屏幕上,查找“本地连接”行并确认其 IP 地址为0.0.0.0
且其状态为enabled
。将以太网电缆从 RPi 连接到您的笔记本电脑,然后打开 Pi。在此屏幕上点击刷新,直到 IP 地址变为169.254.*.*
。如果是其他任何东西,那么您应该更改本地连接的网络设置(确保它不是静态 IP/DNS)。单击此本地连接行,然后单击下一步。
检查HTTP (Web Server)
。这使得定位 RPi 的 IP 地址变得更加容易。点击下一步。
采用默认设置并点击下一步,直到您进入Writing the INI file
屏幕。检查Overwrite existing file
并按下Write INI file
按钮。然后点击下一步。
在最后一个屏幕上,检查Run DHCP server immediately
并点击“完成”。
DHCP 服务器和获取树莓派的 IP 地址
这将使用您刚刚在上一个向导中创建的配置启动实际的 DHCP 服务器。单击该Continue as tray app
按钮,DHCP 服务器将最小化到您的系统托盘。
从现在起 1 秒到 5 分钟的任何时间,您都会在系统托盘上看到一条警报,其中包含您的笔记本电脑和您的 RPi 的新 IP 地址。此警报非常快,您可能会错过它。通常您的 RPi 的 IP 是169.254.0.2
,但也可能是*.01
,甚至是其他的。在http://localhost/dhcpstatus.xml访问 DHCP 服务器的 Web UI 更容易。这会将主机名列为“raspberrypi”及其 IP 地址。
现在您可以将腻子或远程桌面放入您的 RPi,并配置其无线设置或任何您想做的事情。
故障排除
这可能有点挑剔。我的连接似乎断开了,并且无法使用该 IP 地址通过 SSH 重新连接。通常,我可以重新启动 Pi 并再次获取 IP 地址。有时我必须重新启动 RPi 和 DHCP 服务器。有时我必须多次这样做。有一次,当我 15 分钟没有连接时,我将 dhcpsrv2.5.1 文件夹中的所有文件复制到一个新文件夹并再次尝试;它立即起作用了。
You could use a cross-over ethernet cable - http://en.wikipedia.org/wiki/Ethernet_crossover_cable
Assuming your RPi is a DCHP Client, then best to run a simple DHCP server on your notebook to assign the RPi an IP address.
对我有用的是 Nicole Finnie 和 Ciro Santilli 的答案以及其他地方的一些答案的组合。
我们需要做两件事:在 pi 上激活 ssh,并将 pi 配置为使用静态 ip。
ssh
在 sd 卡的引导分区(不是/boot
根分区中的文件夹)中添加一个名为的文件。这是有据可查的其他地方。
在 pi 的 SD 卡上打开/etc/dhcpcd.conf
,取消对静态 ip 示例的注释(从第 40 行开始)。将地址设置为
# Example static IP configuration:
interface eth0
static ip_address=10.42.0.182/24
static routers=10.42.0.1
static domain_name_servers=10.42.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
首先,确保您networkmanager
的笔记本电脑上安装了(带有 GUI)。然后,确保dnsmasq
没有作为服务运行:如果
systemctl status dnsmasq
此命令显示服务已停止,那么你很好。
接下来我们要配置networkmanager
。打开/etc/NetworkManager/NetworkManager.conf
并在顶部添加以下两行:
[main]
DNS=dnsmasq
然后重新启动。此步骤可能不是必需的。重新启动服务可能就足够了NetworkManager
。现在转到NetworkManager
GUI(通常通过屏幕角落的图标访问)并选择Edit Connections...
在弹出的窗口中,单击+
图标以创建新连接。选择Ethernet
类型并按Create...
。转到IPv4 Settings
选项卡并选择方法Shared to other computers
。给连接起一个好名字并保存。
连接 Raspberry Pi 并确保您的笔记本电脑使用新连接作为其以太网连接。如果是的话,你的 pi 现在应该有你的电脑给它的 ip。你可以通过第一次运行找到它ifconfig
。这应该给你几个文本块,一个用于每个网络接口。您对类似enp0s25
or的内容感兴趣eth0
。它应该有一行读取类似于
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
查看广播地址的内容(在本例中10.42.0.255
)。如果它与我的不同,请关闭 pi 并将 SD 卡放回笔记本电脑,以static ip_address
将前三个数字与广播地址中的相同。static routers
还将 the和 first更改domain_name_servers
为您的笔记本电脑的inet
地址。重新打开 pi 并连接它。再次运行ifconfig
以查看地址没有更改。
ssh pi@10.42.0.182
如果得到connection refused
,则 pi 没有运行ssh
服务器。如果你得到了host unreachable
,我很抱歉。
希望这对某人有帮助!
是的,您可以将覆盆子直接连接到您的 PC,而无需路由器。为此,覆盆子和您的计算机必须位于同一子网中,并且它们都配置了静态 ip(以及两个设备之间连接的以太网电缆)。
理想的配置如下:
eth0 上的树莓派:IP:192.168.1.10 子网:255.255.255.0
您的 PC: IP:192.168.1.11 子网 255.255.255.0
要在覆盆子上设置手动 IP,您可以按照本指南进行操作
在您的 PC 中,您可以在网络适配器设置中手动设置 IP,具体步骤取决于您的操作系统。
当您配置了两个静态 IP 后,您可以使用 IP 集 (192.168.1.10) 通过 SSH 连接到树莓派。
另一种更简单的方法是在 GPIO 上附加一个按钮来关闭树莓派!看看这里!