¿Conectar Raspberry Pi a través de Ethernet a una computadora portátil sin enrutador? [cerrado]

99

Estoy trabajando en un proyecto de globo con una Raspberry Pi. Cuando recuperemos potencialmente la Raspberry Pi, lo más probable es que esté en una ubicación rural y me gustaría apagar la Pi en ese punto de manera segura.

Sin un enrutador o una red cerca, me preguntaba si hay alguna manera de conectar una Raspberry Pi con un cable Ethernet directamente a una computadora portátil.

usuario2170780
fuente
¿Consideró configurarlo como un punto de acceso? Eso es lo que hice en el pasado.
Spencer

Respuestas:

75

Es una solución para Ubuntu (la idea también funciona para Windows o Mac) que acabo de probar hoy y funciona de maravilla.

Material

  1. un cable Ethernet cruzado (el nombre es elegante pero es solo un cable Ethernet normal)
  2. una computadora portátil (ubuntu)
  3. una Raspberry Pi (tengo la Pi2)

Requisitos previos en su ubuntu

  1. Instalar administrador de red

    $sudo apt-get install network-manager

  2. Instalar nmap

    $sudo apt-get install nmap

Edite la conexión por cable en su computadora portátil (Ubuntu)

  1. Cambie la configuración de IpV4 a "Compartir con otras computadoras"
  2. Guardar la configuración
  3. Reinicia tu laptop

Comparta la conexión WiFi de su computadora portátil a través de un cable cruzado Ethernet

  1. Conecte su RPi con su computadora portátil usando el cable Ethernet

  2. Busque la dirección de transmisión de la conexión Ethernet (computadora portátil),

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

  1. Use esta dirección para averiguar la dirección IP de su RPi, es 10.42.0.96 en mi caso porque 10.42.0.1 es mi computadora portátil

    $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. Inicie sesión en su RPi desde su computadora portátil (-Y con X-forwarding)

    $ssh -Y [email protected]

  2. ¡He aquí! Ahora su RPi está conectado a su computadora portátil y RPi puede compartir la conexión WiFi.

    pi@raspberrypi ~ $

Comparta la pantalla y el teclado de su computadora portátil con RPi

  1. Instalar vncserver en Raspberry Pi

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. Instale vncviewer en su computadora portátil descargando RealVNC (es compatible con múltiples plataformas) http://www.realvnc.com/download/vnc/

  3. Para poder copiar y pegar desde el servidor VNC <--> visor VNC, debe instalar autocutsel en su RPi.

$sudo apt-get install autocutsel

Si este sitio no funciona, intente descargar el .deb directamente desde un sitio espejo, por ejemplo, mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
e instálelo

$sudo dpkg -i autocutsel_0.10.0-1_armhf.deb

  1. Inicie vncserver en su RPi (debe reiniciar vncserver después de instalar autocutsel, puede emitir $vncserver -kill :1)

    $vncserver :1

  2. Agregue autocutsel -fork a /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. Inicie vncviewer en su computadora portátil

    $vncviewer

  2. Aparecerá una ventana de vncviewer y escriba la dirección IP de su RPi (proporcionada por su computadora portátil) seguida del puerto 1, que es su servidor VNC. por ejemplo: 10.42.0.96:1 en mi caso.

  3. Conéctelo al servidor vnc alojado en su RPi escribiendo una contraseña (configure una contraseña usted mismo)

    12.Ahora puede ver el escritorio de RPi en su computadora portátil y abrí mi navegador para mostrar que la conexión WiFi compartida también funciona.

Vea el escritorio Raspberry Pi en su ubuntu

Nicole Finnie
fuente
lo siento, no puedo publicar más de dos enlaces porque soy un novato en Stackoverflow, sin embargo, estas son mis referencias: Compartir Wifi a través de ethernet en ubuntu Share display instalando VNC en Raspberry para Linux Share display instalando VNC en Raspberry para Windows
Nicole Finnie
La referencia de solucionar el problema de copiar y pegar entre el servidor VNC y el cliente VNC, copiar / pegar TightVNC entre el sistema operativo local y Raspberry Pi
Nicole Finnie
Gracias, había marcado tu respuesta como favorita para mi futura referencia.
Mohd Shahril
¡Gracias! Esta es una gran respuesta, ¡estaba buscando un procedimiento tan claro en todas partes de Internet! Un comentario menor: para algunas personas, es posible que desee marcar eth0, en lugar de eth1 (en uno de los comandos de la respuesta).
Nishant Kelkar
3
¿Estás seguro de que los cables cruzados son los normales? Creo que no, consulte: en.wikipedia.org/wiki/Ethernet_crossover_cable Los normales funcionan como ha dicho en Ubuntu 16.04, RPI 2 Raspbian 2016.05. En 16.04, no es necesario instalar network-manager, solo use la GUI predeterminada de "Configuración de red". Y probablemente debería hacer clic en "Agregar" en lugar de "Editar". No es necesario nmap, solo cat /var/lib/misc/dnsmasq.leases. Ver: interlockroc.org/2012/12/06/raspberry-pi-macgyver
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
21

No necesita un cable cruzado. Puede utilizar un cable de red normal, ya que el chip LAN de Raspberry Pi es lo suficientemente inteligente como para reconfigurarse para conexiones de red directas. Salud

Vas
fuente
21

Sin enrutador + sin pantalla + cable Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Primero debemos habilitar el servidor SSH en la Pi, que está deshabilitado por defecto por seguridad.

Si ya tiene un shell en el Pi a través de un método que no es SSH, como pantalla + teclado o UART (ver más abajo), simplemente ejecute:

sudo systemctl enable ssh
sudo service sshd start

como se explica en: /raspberrypi/58478/ssh-not-working-with-fresh-install Esto persiste en las botas.

De lo contrario, inserte la tarjeta SD en su host y cree un archivo mágico vacío llamado ssharchivo en la boot/partición.

En los hosts de Ubuntu, se monta automáticamente y puede hacer simplemente:

sudo touch /media/$USER/boot/ssh

que puedes confirmar con:

lsblk

que contiene:

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

Si no habilita el demonio SSHD en la Pi, la conexión SSH fallará con:

ssh: connect to host 10.42.0.160 port 22: Connection refused

cuando lo probamos más tarde.

Después de habilitar el servidor SSH

A continuación, inicie el Pi y conecte un cable Ethernet desde su computadora portátil directamente al Pi:

ingrese la descripción de la imagen aquí

En Ubuntu 17.04 para solucionar este error como se menciona en esta respuesta , primero necesita:

sudo apt-get install dnsmasq-base

En el host, abra el administrador de red:

nm-connection-editor

Y ve:

  1. + firmar (Agregar una nueva conexión)
  2. Ethernet
  3. Crear
  4. Configuración de IPv4
  5. Método: compartido con otras computadoras
  6. Ponle un buen nombre
  7. Salvar

ingrese la descripción de la imagen aquí

Encuentre la IP del Pi en el host:

cat /var/lib/misc/dnsmasq.leases

produce algo como:

1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69

10.42.0.160 es la IP, entonces como de costumbre:

ssh [email protected]

También tengo lo siguiente en mi .bashrc:

piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )

Desde el interior de la Pi, observe que puede acceder a Internet normalmente a través de las otras interfaces de su host:

ping google.com

Por ejemplo, en mi computadora portátil, el Pi utiliza Ethernet, pero el host también está conectado a Internet a través de WiFi.

El cable cruzado no es necesario si la tarjeta de red del host admite Auto MDI-X . Este es el caso del hardware más reciente, incluido, por ejemplo, el Lenovo T430 de 2012 con el que probé, que tiene una "Conexión de red Intel® 82579LM Gigabit" que documenta la compatibilidad con Auto MDI-X .

Ahora también puedes:

Convertidor USB serie UART

Esta es una alternativa a SSH si solo desea obtener un shell en el Pi: https://en.wikipedia.org/wiki/Serial_port

Esto no usa SSH o redes en sí, sino la interfaz serial más antigua, más simple, más directa, más confiable, de menor ancho de banda y menor distancia. El Pi no tendrá acceso a Internet con este método.

Las computadoras de escritorio todavía tienen un puerto serie que puede conectar directamente cable a cable con el Pi, pero estos están ocultos en la mayoría de las computadoras portátiles, por lo que debemos comprar un adaptador USB barato. Aquí he usado: https://www.amazon.co.uk/gp/product/B072K3Z3TL Vea también: /unix/307390/what-is-the-difference-between- ttys0-ttyusb0-y-ttyama0-en-linux / 367882 # 367882

Primero conecte la tarjeta SD en el host y edite el config.txtarchivo presente en la primera partición para agregar:

enable_uart=1

como se explica en: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Esta primera partición contiene el gestor de arranque, sus archivos de configuración y el kernel (Linux / your), config.txtsiendo uno de ellos. La segunda partición contiene el sistema de archivos raíz real de Linux.

Ahora conecte su computadora al Pi como:

ingrese la descripción de la imagen aquí

Solo necesitas conectar 3 cables:

  • Tierra a tierra
  • Tx en Pi a Rx en el puerto USB a serie
  • Rx en Pi a Tx en tye USB a puerto serie

Esto también está documentado en: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Tenga cuidado de no conectar la tierra a los 5V, ¡ya quemé 2 UART a chips USB y un RPI UART al hacer eso!

No es necesario conectar el 5V al 5V en absoluto. Creo que puedes alimentar tu Pi así, pero he leído que es una mala idea, solo usa la fuente de alimentación USB habitual.

Finalmente, conecte el lado USB del conector a su computadora host y obtenga una carcasa con:

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

Salir con Ctrl-A \.

Aquí hay un video de Adafruit que lo muestra: https://www.youtube.com/watch?v=zUBPeoLW16Q

Ver también

Pregunta similar en RPI SE: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
1
El único método (probé alrededor de una docena de estrategias diferentes) que funciona para mí (estoy en Fedora 29). ¡Gracias!
Daniel Schütte
En mi caso, el archivo /var/lib/misc/dnsmasq.leases está vacío ...
borizzzzz
@Kirjain gracias por el informe. ¿Su configuración es absolutamente idéntica a la mía (host, invitado, hardware)? Si no es así, ¿qué diferencias tienes?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
@CiroSantilli 新疆 改造 中心 996ICU 六四 事件 tanques para extender la mano. Tengo el mismo hardware, pero mi PI está ejecutando la versión más reciente (junio de 2019) de raspbian buster, y mi host es ubuntu 18.04. Después de dar a mi host y a mi PI direcciones IP estáticas, llegué a hacer ping al PI desde el host. Pero cuando intento ssh, obtengo el error de conexión rechazada que mencionaste en tu respuesta. Y sí, creé el archivo ssh vacío en la partición de arranque de mi PI. Sin embargo, de acuerdo con las notas de lanzamiento downloads.raspberrypi.org/raspbian/release_notes.txt, este debería ser un enfoque válido.
borizzzzz
@AlexeyGy hmm, ¿no es eso lo primero que digo en la respuesta? :-)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
8

Acabo de implementar y probar esto con éxito. La misma situación con mi proyecto, quiero conectarme a una Raspberry Pi sin enrutador ni wifi. Solo un simple cable Ethernet.

Usando el programa de masilla ssh, ponga la dirección como

raspberrypi.local

Inicie sesión y podrá acceder a la terminal.

Alternativamente, si el servidor VNC está configurado, use el servidor VNC y coloque

raspberrypi.local: 1

En la dirección del servidor. ingrese su contraseña del servidor VNC y ahora tiene acceso a la GUI para hacer lo que quiera.

En tal caso, se ejecutaron scripts en una ubicación remota. En la situación de los carteles, apague de forma segura el Pi. Espinillas Simples.

Stuart Llewellyn
fuente
1
"ssh [email protected]" funciona para una instalación nueva y sencilla de rasberrian en la terminal linux mint.
Elliot Robert
Vale la pena señalar que esto depende del nombre de host. Entonces, si cambió el nombre de host de pi, ahora podría serelderberryphi.local
lucidbrot
7

Configure la IP estática para su computadora portátil y Raspberry Pi. En rapberryPI configúrelo de la siguiente manera.

pi@rpi>sudo nano /etc/network/interfaces

Luego configure lo siguiente según sea necesario para conectarse a su computadora portátil.

iface eth0 inet static

address 192.168.1.81

netmask 255.255.255.0

broadcast 192.168.1.255
Don Srinath
fuente
4

configurar ip estática en la raspberry pi:

sudo nano /etc/network/interfaces

y luego agregue:

iface eth0 inet static
     address 169.254.0.2
     netmask 255.255.255.0
     broadcast 169.254.0.255

entonces puedes acceder a tu frambuesa a través de ssh

ssh [email protected]
Queky
fuente
3

Aquí están las instrucciones para los usuarios de Windows sobre cómo conectarse a un RPi usando solo un cable Ethernet y un servidor DHCP. No es necesario un cable cruzado, ya que el RPi puede manejarlo. Tengo una publicación de blog que documenta esto con imágenes aquí que pueden ser más fáciles de seguir.

Descargas

Descargue el servidor DHCP para Windows (el enlace de descarga está aquí ). Descomprima el archivo zip y abra la aplicación dhcpwiz, que configurará el servidor DHCP.

Configuración del servidor DHCP

Pulsa siguiente en la primera pantalla.

En la segunda pantalla, busque una fila de "Conexión de área local" y verifique que su dirección IP sea 0.0.0.0y su estado sea enabled. Conecte el cable Ethernet del RPi a su computadora portátil y encienda el Pi. Presione actualizar en esta pantalla hasta que la dirección IP cambie a 169.254.*.*. Si se trata de cualquier otra cosa, debe modificar la configuración de su red para la conexión de área local (asegúrese de que no sea una IP / DNS estática). Haga clic en esta fila de Conexión de área local y presione Siguiente.

Comprobar HTTP (Web Server). Esto hace que sea mucho más fácil localizar la dirección IP del RPi. Presiona Siguiente.

Tome los valores predeterminados y presione Siguiente hasta llegar a la Writing the INI filepantalla. Compruebe Overwrite existing filey presione el Write INI filebotón. Luego presione Siguiente.

En la pantalla final, marque Run DHCP server immediatelyy presione `Finalizar.

Servidor DHCP y obtención de la dirección IP de su Raspberry PI

Esto inicia el servidor DHCP real, utilizando la configuración que acaba de crear en el asistente anterior. Haga clic en el Continue as tray appbotón y el servidor DHCP se minimizará en la bandeja del sistema.

En cualquier momento, entre 1 segundo y 5 minutos a partir de ahora, verá una alerta en la bandeja del sistema con su computadora portátil y la nueva dirección IP de su RPi. Esta alerta es muy rápida y probablemente la perderá. Normalmente la IP de tu RPi es 169.254.0.2, pero podría serlo *.01o incluso algo más. Es más fácil acceder a la interfaz de usuario web del servidor DHCP en http: //localhost/dhcpstatus.xml . Esto mostrará el nombre de host como "raspberrypi" con su dirección IP.

Ahora puede aplicar masilla o escritorio remoto en su RPi y configurar sus configuraciones inalámbricas o lo que quiera hacer.

Solución de problemas

Esto puede resultar algo delicado. Parece que mi conexión se interrumpe y no pude volver a SSH para usar la dirección IP. Normalmente, puedo reiniciar el Pi y obtener la dirección IP nuevamente. A veces tengo que reiniciar tanto el RPi como el servidor DHCP. A veces tengo que hacer esto varias veces. En un momento en que no conseguí una conexión durante 15 minutos, copié todos los archivos de la carpeta dhcpsrv2.5.1 en una nueva carpeta y lo intenté de nuevo; inmediatamente funcionó.

Matthew Moisen
fuente
1
Votantes en contra por favor comenten o su voto es inútil para la mayoría de la gente.
byronyasgur
2

Puede usar un cable ethernet cruzado: http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Suponiendo que su RPi es un cliente DCHP, lo mejor es ejecutar un servidor DHCP simple en su computadora portátil para asignarle una dirección IP al RPi.

MrDB
fuente
3
No necesita un cable cruzado, ya que el RPi tiene un software que puede funcionar con un cable Ethernet normal.
Matthew Moisen
1

Sí, puede conectar la frambuesa directamente a su PC sin enrutador. Para ello es necesario que la frambuesa y tu ordenador estén en la misma subred, y ambos tengan configurada una ip estática (y un cable Ethernet conectado entre los dos dispositivos).

Una configuración ideal sería la siguiente:

Frambuesa en eth0: IP: 192.168.1.10 Subred: 255.255.255.0

Su PC: IP: 192.168.1.11 Subred 255.255.255.0

Para configurar una IP manual en frambuesa, puede seguir esta guía

En su PC puede establecer una IP manual en la configuración del adaptador de red, y el procedimiento depende de su sistema operativo.

Cuando haya configurado las dos IP estáticas, puede conectarse a la frambuesa a través de SSH utilizando el conjunto de IP (192.168.1.10).

Otro método más simple es adjuntar en GPIO un botón para apagar la frambuesa. ¡Echa un vistazo aquí!

grausof
fuente
1

Lo que funcionó para mí fue una combinación de las respuestas de Nicole Finnie y Ciro Santilli junto con algunas respuestas de otros lugares.

Configurando el pi

Tendremos que hacer dos cosas: activar ssh en el pi y configurar el pi para usar una ip estática.

Activando ssh

Agregue un archivo llamado sshen la partición de arranque de la tarjeta sd (no la /bootcarpeta en la partición raíz). Esto está bien documentado en otros lugares.

IP estática

Abra /etc/dhcpcd.confen la tarjeta SD del pi y descomente el ejemplo de una ip estática (comienza alrededor de la línea 40). Establecer las direcciones a

# 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

Configurar su computadora portátil

Primero, asegúrese de tener networkmanager(con GUI) instalado en su computadora portátil. Luego, asegúrese de dnsmasqque no se esté ejecutando como un servicio:
systemctl status dnsmasq
si este comando imprime que el servicio está detenido, entonces está bien.

A continuación tenemos que config networkmanager. Abra /etc/NetworkManager/NetworkManager.confy agregue las siguientes dos líneas en la parte superior:

[main]
DNS=dnsmasq

Luego reinicia. Es posible que este paso no sea necesario. Podría ser suficiente reiniciar el NetworkManagerservicio. Ahora vaya a la NetworkManagerGUI (generalmente se accede mediante un icono en la esquina de la pantalla) y elija Edit Connections...En la ventana que aparece, haga clic en el +icono para crear una nueva conexión. Elija Ethernetcomo tipo y presione Create.... Vaya a la IPv4 Settingspestaña y seleccione el método Shared to other computers. Dale un buen nombre a la conexión y ahorra.

Conecte la Raspberry Pi y asegúrese de que su computadora portátil esté usando su nueva conexión como conexión Ethernet. Si es así, su pi ahora debería tener una IP proporcionada por su PC. Puede encontrar esto ejecutando primero ifconfig. Esto debería proporcionarle varios bloques de texto, uno para cada interfaz de red. Estás interesado en el que es algo así como enp0s25o eth0. Debe tener una línea que lea algo similar a
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
mirar la dirección de transmisión (en este caso 10.42.0.255). Si es diferente al mío, apague el pi y vuelva a colocar la tarjeta SD en su computadora portátil para cambiarla static ip_addressa algo donde los primeros tres números sean los mismos que en su dirección de transmisión. También cambie el static routersy el primero de los domain_name_serversa su computadora portátilinethabla a. Vuelva a encender el pi y conéctelo. Ejecute de ifconfignuevo para ver que las direcciones no hayan cambiado.

ssh en el pi

ssh [email protected]
Si lo obtiene connection refused, el pi no está ejecutando un sshservidor. Si lo consigue host unreachable, lo siento.

¡Espero que esto ayude a alguien!

Froff
fuente