我正在使用 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 卡,并在分区中创建一个名为sshfile的神奇空文件。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。现在转到NetworkManagerGUI(通常通过屏幕角落的图标访问)并选择Edit Connections...在弹出的窗口中,单击+图标以创建新连接。选择Ethernet类型并按Create...。转到IPv4 Settings选项卡并选择方法Shared to other computers。给连接起一个好名字并保存。
连接 Raspberry Pi 并确保您的笔记本电脑使用新连接作为其以太网连接。如果是的话,你的 pi 现在应该有你的电脑给它的 ip。你可以通过第一次运行找到它ifconfig。这应该给你几个文本块,一个用于每个网络接口。您对类似enp0s25or的内容感兴趣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 上附加一个按钮来关闭树莓派!看看这里!