通过以太网将Raspberry Pi连接到没有路由器的笔记本电脑?[关闭]


99

我正在使用Raspberry Pi进行气球项目。当我们有可能恢复Raspberry Pi时,它很可能会在农村地区,我想在那时安全地关闭Pi。

在附近没有路由器或网络的情况下,我想知道是否可以通过以太网电缆将Raspberry Pi连接到笔记本电脑?


您是否考虑过将其设置为接入点?那是我过去所做的。
Spencer

Answers:


75

这是我今天尝试过的Ubuntu的解决方案(该想法也适用于Windows或Mac),它就像一个魅力。

材料

  1. 交叉以太网电缆(名称叫花哨,但这只是普通的以太网电缆)
  2. 一台笔记本电脑(ubuntu)
  3. 一个Raspberry Pi(我有Pi2)

Ubuntu上的前提条件

  1. 安装网络管理器

    $sudo apt-get install network-manager

  2. 安装nmap

    $sudo apt-get install nmap

在笔记本电脑上编辑有线连接(Ubuntu)

  1. 将IpV4设置更改为“共享到其他计算机”
  2. 保存设置
  3. 重新启动笔记本电脑

通过以太网交叉电缆共享笔记本电脑的WiFi连接

  1. 使用以太网电缆将RPi与笔记本电脑连接起来

  2. 查找以太网连接(笔记本电脑)的广播地址,

$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}' 10.42.0.255

  1. 使用此地址找出您的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
  1. 从笔记本电脑登录到RPi(带有X-forwarding的-Y)

    $ssh -Y pi@10.42.0.96

  2. 瞧!现在,您的RPi已连接到笔记本电脑,并且RPi可以共享WiFi连接。

    pi@raspberrypi ~ $

使用RPi共享笔记本电脑的显示器和键盘

  1. 在Raspberry Pi上安装vncserver

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. 通过下载RealVNC(它支持多个平台)在笔记本电脑上安装vncviewerhttp://www.realvnc.com/download/vnc/)

  3. 为了能够从VNC服务器<-> VNC查看器复制和粘贴,您需要在RPi上安装自动剪切器。

$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

  1. 在RPi上启动vncserver(安装自动剪切程序后必须重新启动vncserver,可以发出$vncserver -kill :1

    $vncserver :1

  2. 将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
  1. 在笔记本电脑上启动vncviewer

    $vncviewer

  2. 将弹出一个vncviewer窗口,并输入RPi的IP地址(由笔记本电脑提供),然后键入端口1,即您的VNC服务器。例如:在我的情况下为10.42.0.96:1。

  3. 通过输入密码(自行设置密码)将其连接到RPi上托管的vncserver。

    12.现在您可以在笔记本电脑上看到RPi的桌面,然后打开浏览器以显示共享的WiFi连接也正常工作。

在Ubuntu上查看Raspberry Pi桌面


抱歉,我不能发布两个以上的链接,因为我是Stackoverflow上的新手,但是,这些是我的参考文献: 在ubuntu上通过以太网共享Wifi 在Linux的Raspberry上安装VNC 共享显示在Windows的Raspberry上安装VNC共享显示
Nicole Finnie

修复VNC服务器和VNC客户端之间的复制和粘贴问题的参考TightVNC复制/本地操作系统和Raspberry Pi之间的粘贴
Nicole Finnie

谢谢,我已将您的回答加为书签,以供将来参考!
Mohd Shahril

谢谢!这是一个很好的答案,我正在互联网上到处寻找这样一个清晰的程序!一个小注释-对于某些人,您可能需要检查eth0而不是eth1(在答案中的命令之一中)。
Nishant Kelkar,2016年

3
您确定交叉电缆是普通电缆吗?我认为不是,请参阅:en.wikipedia.org/wiki/Ethernet_crossover_cable正常的工具确实可以正常工作,就像您在Ubuntu 16.04,RPI 2 Raspbian 2016.05上所说的那样。在16.04上,无需安装network-manager,只需使用默认的“网络设置” GUI。您应该单击“添加”而不是“编辑”。nmap只是不需要cat /var/lib/misc/dnsmasq.leases。请参阅:interlockroc.org/2012/12/06/raspberry-pi-macgyver
Ciro Santilli郝海东冠状病六四事件法轮功2016年

21

您不需要交叉电缆。您可以使用普通的网络电缆,因为Raspberry Pi LAN芯片足够聪明,可以将其自身重新配置为直接网络连接。干杯


21

没有路由器+没有屏幕+常规以太网电缆+ RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

首先,我们必须在Pi上启用SSH服务器,为安全起见默认禁用该服务器。

如果您已经通过非SSH方法(例如屏幕+键盘或UART)在Pi上安装了外壳,请运行:

sudo systemctl enable ssh
sudo service sshd start

如以下网址所述:https : //raspberrypi.stackexchange.com/questions/58478/ssh-not-working-with-fresh-install这在整个引导过程中仍然存在。

否则,请将SD卡插入主机,然后sshboot/分区中创建一个名为file的空文件。

在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

当我们稍后尝试时。

启用S​​SH服务器后

接下来,启动Pi,并将以太网电缆从笔记本电脑直接连接到Pi:

在此处输入图片说明

在Ubuntu 17.04上,要解决此答案中提到的错误,您首先需要:

sudo apt-get install dnsmasq-base

在主机上,打开网络管理器:

nm-connection-editor

去:

  1. + 签名(添加新连接)
  2. 乙太网路
  3. 创造
  4. IPv4设置
  5. 方法:共享到其他计算机
  6. 给它起个好名字
  7. 保存

在此处输入图片说明

在主机上找到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

例如,在我的笔记本电脑上,Pi占用了以太网,但是主机也通过WiFi连接到了互联网。

是交叉线并非如果主机网卡需要支持自动MDI-X 。大多数最新硬件就是这种情况,例如我测试过的2012联想T430,它具有 “英特尔®82579LM千兆网络连接”,其中记录了对Auto MDI-X的支持

现在您还可以:

UART串行USB转换器

如果您只想在Pi上安装Shell,则可以使用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-和-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条电缆:

  • 地对地
  • Pi上的Tx到USB到串行端口上的Rx
  • Pi上的Rx到USB上的Tx到串行端口

这也记录在: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


1
唯一适用于我的方法(尝试了十二种不同的策略)(我使用Fedora 29)。谢谢!
DanielSchütte18年

在我的情况下,
var / lib / misc / dnsmasq.leases

@Kirjain感谢您的报告。您的设置与我的设置(主机,来宾,硬件)是否完全相同?如果没有,您有什么区别?
西罗Santilli郝海东冠状病六四事件法轮功

1
@CiroSantilli新疆改造中心996ICU六四事件坦克伸出。我使用相同的硬件,但我的PI运行的是最新版本(2019年6月)的raspbian buster,我的主机是ubuntu 18.04。给主机和PI静态IP地址后,我就可以从主机ping PI了。但是当我尝试ssh时,我得到您在答案中提到的拒绝连接错误。是的,我确实在PI的启动分区中创建了一个空的ssh文件。但是,根据发行说明downloads.raspberrypi.org/raspbian/release_notes.txt,这仍然是有效的方法。
borizzzzz

@AlexeyGy嗯,这不是我在回答中说的第一句话吗?:-)
Ciro Santilli郝海东冠状病六四事件法轮功

8

我刚刚实施并成功测试了它。与我的项目一样,要连接到没有路由器或wifi的Raspberry Pi。只需一条简单的以太网电缆。

使用ssh putty程序将地址作为

raspberrypi.local

登录并可以访问终端。

或者,如果设置了VNC服务器,请使用VNC服务器并放置

raspberrypi.local:1

在服务器地址。输入您的VNC服务器密码,您现在可以使用GUI进行所需的操作。

在可能的情况下,它是在远程位置运行脚本。在张贴海报的情况下,请安全关闭Pi。简单的丘疹。


1
“ ssh pi@raspberrypi.local”适用于linux mint终端上的rasberrian的旧旧全新安装。
艾略特·罗伯特

值得注意的是,这取决于主机名。因此,如果您更改了pi的主机名,则现在可能是elderberryphi.local
lucidbrot

7

为您的笔记本电脑和树莓派配置静态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

4

在树莓派上配置静态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

3

这是Windows用户仅通过以太网电缆和DHCP服务器连接到RPi的说明。无需交叉电缆,因为RPi可以处理。我有一个博客贴子,这个文件与图片在这里这可能是更容易遵循。

资料下载

下载适用于WindowsDHCP服务器(下载链接在此处)。解压缩该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服务器并获取Raspberry PI的IP地址

这将使用您在上一个向导中刚刚创建的配置启动实际的DHCP服务器。单击Continue as tray app按钮,DHCP服务器将最小化到您的系统托盘中。

从现在开始的1秒钟到5分钟之间,您将在笔记本电脑的系统托盘上看到警报,并在RPi的新IP地址上看到警报。此警报真的很快,您可能会错过它。通常,您的RPi的IP是169.254.0.2,但也可能是IP *.01。通过http://localhost/dhcpstatus.xml可以更轻松地访问DHCP服务器的Web UI 。这会将主机名列为“ raspberrypi”及其IP地址。

现在,您可以将腻子或远程桌面放入RPi,并配置其无线设置或您想要执行的任何操作。

故障排除

这可能有点挑剔。我的连接似乎断开了,无法使用IP地址重新进行SSH。通常,我可以重新启动Pi并再次获取IP地址。有时我必须重新启动RPi和DHCP服务器。有时我必须做多次。在有15分钟没有连接的时候,我将dhcpsrv2.5.1文件夹中的所有文件复制到一个新文件夹中,然后重试。它立即起作用。


1
失望的选民请发表评论,否则您的投票对大多数人毫无用处。
byronyasgur


1

是的,您可以将树莓派直接连接到PC,而无需路由器。为此,有必要将树莓派和您的计算机放在同一子网中,并且它们都配置了静态ip(并且在两个设备之间连接了以太网电缆)。

理想的配置如下:

eth0上的Raspberry: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上附加一个按钮以关闭树莓派!在这里看看!


1

对我有用的是Nicole Finnie和Ciro Santilli的答案以及其他地方的一些答案的结合。

设置pi

我们将需要做两件事:在pi上激活ssh,并将pi配置为使用静态ip。

激活ssh

在sd卡ssh的启动分区(而不是/boot根分区中的文件夹)中添加一个名为的文件。这在其他地方有据可查。

静态IP

/etc/dhcpcd.conf在pi的SD卡上打开,然后取消注释静态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现在应该已经有一个由您的PC提供的ip。您可以先运行来找到它ifconfig。这应该给您几个文本块,每个网络接口一个。您对类似enp0s25或的东西感兴趣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和的第一个更改为domain_name_servers笔记本电脑的inet地址。重新打开pi并连接。ifconfig再次运行以查看地址未更改。

ssh进入pi

ssh pi@10.42.0.182
如果得到connection refused,则pi不在ssh服务器上运行。如果得到host unreachable,对不起。

希望这对某人有帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.