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

时间:2013-04-16 14:46:01

标签: ssh raspberry-pi ethernet

我正在研究带有覆盆子pi的气球项目。当我们有可能恢复树莓派时,它很可能会在农村地区,我想安全地关闭pi。如果没有附近的路由器或网络,我想知道是否有办法将带有以太网电缆的树莓派直接连接到笔记本电脑上?

10 个答案:

答案 0 :(得分:72)

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

<强>材料

  1. 交叉以太网电缆(这个名称很花哨,但它只是一根普通的以太网电缆)
  2. 一台笔记本电脑(ubuntu)
  3. Raspberry Pi(我有Pi2)
  4. ubuntu上的先决条件

    1. 安装网络管理员

      $sudo apt-get install network-manager

    2. 安装nmap

      $sudo apt-get install nmap

    3. 编辑笔记本电脑上的有线连接(Ubuntu)

      1. 将IpV4设置更改为&#34;分享到其他计算机&#34;
      2. 保存设置
      3. 重新启动笔记本电脑
      4. 通过以太网交叉线分享笔记本电脑的WiFi连接

        1. 使用以太网电缆连接笔记本电脑

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

        3. $/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

          2.   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(-Y带X-forwarding)

              $ssh -Y pi@10.42.0.96

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

              pi@raspberrypi ~ $

            3. 分享展示&amp;带RPi的笔记本电脑键盘

              1. 在Raspberry Pi上安装 vncserver

                $ sudo apt-get update

                $ sudo apt-get install tightvncserver

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

              3. 能够复制&amp;从VNC服务器粘贴&lt; - &gt; VNC查看器,您需要在RPi上安装自动裁剪程序。

              4. $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(您必须在安装autocutsel后重新启动vncserver,您可以发出$vncserver -kill :1

                  $vncserver :1

                2. 将autocutsel -fork添加到/home/pi/.vnc/xstartup

                3.  #!/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连接正在运行。

                  4. See Raspberry Pi desktop on your ubuntu

答案 1 :(得分:21)

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

答案 2 :(得分:15)

没有路由器+没有屏幕+常规以太网线+ 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分区中创建名为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:

enter image description here

在Ubuntu 17.04上解决this bug所提到的on this answer首先需要:

sudo apt-get install dnsmasq-base

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

nm-connection-editor

然后去:

  1. +签名(添加新连接)
  2. 以太网
  3. 创建
  4. IPv4设置
  5. 方法:与其他计算机共享
  6. 为它设置一个好名字
  7. 保存
  8. enter image description here

    在主机上找到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内部,请注意它可以通过主机的其他界面正常访问互联网:

    ping google.com
    

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

    如果主机网卡支持Auto MDI-X,则无需 交叉电缆。这是最新硬件的情况,例如我使用which has测试的2012联想T430和documents support for Auto MDI-X的“英特尔®82579LM千兆网络连接”。

    现在你也可以:

    UART串行USB转换器

    如果你只想在Pi上获得一个shell,这是SSH的替代方案:https://en.wikipedia.org/wiki/Serial_port

    这不使用SSH或网络本身,而是使用更旧,更简单,更直接,更可靠,带宽更低,距离更短的串行接口。 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:

    enter image description here

    您只需要连接3根电缆:

    • 地面接地
    • USB到串口上的Pi到Rx的Tx
    • 关于Tye USB到串口的Pi到Tx的Rx

    这也记录在:https://www.raspberrypi.org/documentation/usage/gpio/README.md

    注意不要将地线连接到5V,我已经烧掉了2个UART到USB芯片和RPI UART!

    您根本不需要将5V连接到5V。我认为你可以像这样为你的Pi供电,但我已经读到这是一个坏主意,只需使用通常的USB电源。

    最后,将连接器的USB端插入主机,然后获取一个shell:

    sudo apt install screen
    sudo usermod -a -G dialout $USER
    screen /dev/ttyUSB0 115200
    

    Ctrl-A \退出。

    以下是Adafruit的视频展示:https://www.youtube.com/watch?v=zUBPeoLW16Q

答案 3 :(得分:8)

我刚刚成功实施并测试了这一点。与我的项目相同的情况,想要连接到没有路由器或wifi的Raspberry Pi。只需一根简单的以太网线。

使用ssh putty程序将地址设为

raspberrypi.local

登录并进入终端。

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

raspberrypi.local:1

在服务器地址中。输入您的VNC服务器密码,您现在可以通过GUI访问来执行您想要的操作。

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

答案 4 :(得分:7)

为笔记本电脑和覆盆子pi配置静态IP。 在树莓PI上配置如下。

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

答案 5 :(得分:4)

在raspberry pi上配置静态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

答案 6 :(得分:3)

以下是Windows用户仅使用以太网电缆和DHCP服务器连接到RPi的说明。不需要交叉电缆,因为RPi可以处理它。我有一篇博文,用图片here对此进行记录,这可能更容易理解。

<强>下载

下载DHCP Server for Windows(下载链接为here)。解压缩zip文件并打开dhcpwiz应用程序,它将配置DHCP服务器。

DHCP服务器配置

在第一个屏幕上点击下一步。

在第二个屏幕上,查找“本地连接”行并验证其IP地址为0.0.0.0,其状态为enabled。将以太网电缆从RPi连接到笔记本电脑,然后打开Pi。点击此屏幕上的刷新,直到IP地址变为169.254.*.*。如果是其他任何内容,则应更改本地连接的网络设置(确保它不是静态IP / DNS)。单击此Local Area Connection行并点击下一步。

检查HTTP (Web Server)。这使得查找RPi的IP地址变得更加容易。点击下一步。

取默认值并点击下一步,直至进入Writing the INI file屏幕。点击Overwrite existing file,然后点击Write INI file按钮。然后点击Next。

在最后一个屏幕上,选中Run DHCP server immediately并点击“完成”。

DHCP服务器并获取Raspberry PI的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更容易。这将使用其IP地址将主机名列为“raspberrypi”。

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

故障排除

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

答案 7 :(得分:2)

您可以使用交叉以太网电缆 - http://en.wikipedia.org/wiki/Ethernet_crossover_cable

假设您的RPi是DCHP客户端,那么最好在笔记本上运行一个简单的DHCP服务器,为RPi分配一个IP地址。

答案 8 :(得分:1)

是的,您可以在没有路由器的情况下将树莓果直接连接到您的PC。 为此,树莓和您的计算机必须位于同一子网上,并且它们都配置了静态IP(以及连接在两个设备之间的以太网电缆)。

理想的配置如下:

eth0上的

Raspberry :IP:192.168.1.10 SubNet:255.255.255.0

您的电脑: IP:192.168.1.11 SubNet 255.255.255.0

要在树莓上设置手动IP,您可以关注this guide

在PC中,您可以在网络适配器设置中设置手动IP,该过程取决于您的操作系统。

配置了两个静态IP后,可以使用IP set(192.168.1.10)通过SSH连接到raspberry。

另一种更简单的方法是在GPIO上附加一个关闭覆盆子的按钮! Take a look here!

答案 9 :(得分:0)

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

设置pi

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

激活ssh

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

静态ip

打开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现在应该已由您的PC提供了一个IP。您可以先运行ifconfig来找到它。这应该给您几个文本块,每个网络接口一个。您对enp0s25eth0之类的东西感兴趣。它应该有一行内容类似于
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 routersdomain_name_servers的第一个更改为笔记本电脑的inet地址。重新打开pi并连接。再次运行ifconfig,以查看地址未更改。

ssh进入pi

ssh pi@10.42.0.182
如果得到connection refused,则说明pi未运行ssh服务器。如果您得到host unreachable,对不起。

希望这对某人有帮助!