Conectar o Raspberry Pi via Ethernet ao laptop sem roteador? [fechadas]


99

Estou trabalhando em um projeto de balão com um Raspberry Pi. Quando potencialmente recuperarmos o Raspberry Pi, provavelmente será em uma localização rural e eu gostaria de desligar o Pi nesse ponto com segurança.

Sem um roteador ou rede por perto, eu queria saber se há uma maneira de conectar um Raspberry Pi com um cabo Ethernet diretamente a um laptop.


Você considerou configurá-lo como um ponto de acesso? Isso é o que fiz no passado.
Spencer

Respostas:


75

É uma solução para Ubuntu (a ideia também funciona para Windows ou Mac) que experimentei hoje e funciona perfeitamente.

Material

  1. um cabo Ethernet cruzado (o nome é chique, mas é apenas um cabo Ethernet normal)
  2. um laptop (ubuntu)
  3. um Raspberry Pi (eu tenho o Pi2)

Pré-requisitos em seu ubuntu

  1. Instale o gerenciador de rede

    $sudo apt-get install network-manager

  2. Instale o nmap

    $sudo apt-get install nmap

Edite a conexão com fio em seu laptop (Ubuntu)

  1. Altere as configurações de IpV4 para "Compartilhar com outros computadores"
  2. Salve a configuração
  3. Reinicie seu laptop

Compartilhe a conexão WiFi do seu laptop via cabo cruzado Ethernet

  1. Conecte seu RPi com seu laptop usando o cabo Ethernet

  2. Procure o endereço de transmissão da conexão Ethernet (laptop),

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

  1. Use este endereço para descobrir o endereço IP do seu RPi, é 10.42.0.96 no meu caso porque 10.42.0.1 é meu laptop

    $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. Faça login em seu RPi de seu laptop (-Y com X-forwarding)

    $ssh -Y pi@10.42.0.96

  2. Vejam só! Agora seu RPi está conectado ao seu laptop e RPi pode compartilhar a conexão WiFi.

    pi@raspberrypi ~ $

Compartilhe a tela e o teclado do seu laptop com RPi

  1. Instale o vncserver no Raspberry Pi

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. Instale o vncviewer em seu laptop baixando o RealVNC (ele suporta múltiplas plataformas) http://www.realvnc.com/download/vnc/

  3. Para poder copiar e colar do servidor VNC <--> VNC viewer, você precisa instalar o autocutsel em seu RPi.

$sudo apt-get install autocutsel

Se este site não funcionar, tente baixar o .deb diretamente de um site espelho, por exemplo, mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
e instale-o

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

  1. Inicie o vncserver em seu RPi (você deve reiniciar o vncserver após instalar o autocutsel, você pode emitir $vncserver -kill :1)

    $vncserver :1

  2. Adicione 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 o vncviewer em seu laptop

    $vncviewer

  2. Uma janela vncviewer aparecerá e digite o endereço IP do seu RPi (fornecido pelo seu laptop) seguido pela porta 1, que é o seu servidor VNC. por exemplo: 10.42.0.96:1 no meu caso.

  3. Conecte-o ao vncserver hospedado em seu RPi digitando uma senha (configure uma senha você mesmo)

    12.Agora você pode ver a área de trabalho do RPi em seu laptop, e abri meu navegador para mostrar que a conexão WiFi compartilhada também está funcionando.

Veja a área de trabalho Raspberry Pi em seu ubuntu


desculpe, não posso postar mais de dois links porque sou um novato no Stackoverflow, no entanto, estas são as minhas referências: Compartilhando Wifi via ethernet no ubuntu Compartilhe a exibição instalando o VNC no Raspberry para Linux Compartilhe a exibição instalando o VNC no Raspberry para Windows
Nicole Finnie

A referência para corrigir o problema de copiar e colar entre o servidor VNC e o cliente VNC TightVNC copiar / colar entre o sistema operacional local e o Raspberry Pi
Nicole Finnie

Obrigado, eu marquei sua resposta para minha referência futura!
Mohd Shahril de

Obrigado! Esta é uma ótima resposta, eu estava procurando por um procedimento tão claro em todos os lugares na internet! Um pequeno comentário - para algumas pessoas, você pode querer verificar eth0, em vez de eth1 (em um dos comandos na resposta).
Nishant Kelkar de

3
Tem certeza de que os cabos cruzados são normais? Acho que não, consulte: en.wikipedia.org/wiki/Ethernet_crossover_cable Os normais funcionam como você disse no Ubuntu 16.04, RPI 2 Raspbian 2016.05. Em 16.04, não há necessidade de instalar network-manager, basta usar a GUI padrão "Configurações de rede". E você provavelmente deve clicar em "Adicionar" em vez de "Editar". Não há necessidade nmap, apenas cat /var/lib/misc/dnsmasq.leases. Ver: interlockroc.org/2012/12/06/raspberry-pi-macgyver
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

21

Você não precisa de um cabo cruzado. Você pode usar um cabo de rede normal, pois o chip Raspberry Pi LAN é inteligente o suficiente para se reconfigurar para conexões diretas de rede. Felicidades


21

Sem roteador + sem tela + cabo Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Primeiro, devemos habilitar o servidor SSH no Pi, que é desabilitado por padrão para segurança.

Se você já tem um shell no Pi por meio de um método não SSH, como tela + teclado ou UART (veja abaixo), basta executar:

sudo systemctl enable ssh
sudo service sshd start

conforme explicado em: /raspberrypi/58478/ssh-not-working-with-fresh-install Isso persiste nas inicializações.

Caso contrário, insira o cartão SD em seu host e crie um arquivo vazio mágico chamado ssharquivo na boot/partição.

Em hosts Ubuntu, ele é montado automaticamente e você pode fazer apenas:

sudo touch /media/$USER/boot/ssh

que você pode confirmar com:

lsblk

que contém:

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

Se você não habilitar o daemon SSHD no Pi, a conexão SSH falhará com:

ssh: connect to host 10.42.0.160 port 22: Connection refused

quando tentamos mais tarde.

Depois de habilitar o servidor SSH

Em seguida, inicialize o Pi e conecte um cabo Ethernet do seu laptop diretamente ao Pi:

insira a descrição da imagem aqui

No Ubuntu 17.04, para contornar esse bug, conforme mencionado nesta resposta, você precisa primeiro:

sudo apt-get install dnsmasq-base

No host, abra o gerenciador de rede:

nm-connection-editor

E ir:

  1. + assinar (adicionar uma nova conexão)
  2. Ethernet
  3. Crio
  4. Configurações IPv4
  5. Método: Compartilhado com outros computadores
  6. Defina um bom nome para isso
  7. Salve 

insira a descrição da imagem aqui

Encontre o IP do Pi no host:

cat /var/lib/misc/dnsmasq.leases

produz 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 é o IP, então, como de costume:

ssh pi@10.42.0.160

Eu também tenho o seguinte no meu .bashrc:

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

De dentro do Pi, observe que ele pode acessar a Internet normalmente por meio de outras interfaces do seu host:

ping google.com

Por exemplo, no meu laptop, o Pi assume a Ethernet, mas o host também está conectado à Internet por WiFi.

O cabo crossover não é necessário se a placa de rede do host suportar Auto MDI-X . Este é o caso do hardware mais recente, incluindo, por exemplo, o Lenovo T430 de 2012 com o qual testei, que possui uma "Conexão de rede Gigabit Intel® 82579LM" que documenta suporte para MDI-X automático .

Agora você também pode:

Conversor serial USB UART

Esta é uma alternativa ao SSH se você deseja apenas obter um shell no Pi: https://en.wikipedia.org/wiki/Serial_port

Isso não usa SSH ou rede em si, mas sim a interface serial mais antiga, mais simples, mais direta, mais confiável, largura de banda menor e menor distância. O Pi não terá acesso à Internet com este método.

Os computadores desktop ainda têm uma porta serial que você pode conectar diretamente com fio a fio com o Pi, mas elas estão escondidas na maioria dos laptops, então precisamos comprar um adaptador USB barato. Aqui eu usei: https://www.amazon.co.uk/gp/product/B072K3Z3TL Veja também: /unix/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882

Primeiro, conecte o cartão SD no host e edite o config.txtarquivo presente na primeira partição para adicionar:

enable_uart=1

conforme explicado em: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Esta primeira partição contém o bootloader, seus arquivos de configuração e o kernel (Linux / seu), config.txtsendo um deles. A segunda partição contém o sistema de arquivos raiz Linux real.

Agora conecte seu computador ao Pi como:

insira a descrição da imagem aqui

Você só precisa conectar 3 cabos:

  • Terra a Terra
  • Tx on Pi para Rx no USB para porta serial
  • Rx no Pi para Tx no USB para porta serial

Isso também está documentado em: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Tenha cuidado para não conectar o aterramento ao 5V, já queimei 2 UART para chips USB e um RPI UART fazendo isso!

Você não precisa conectar o 5V ao 5V. Eu acho que você pode energizar seu Pi assim, mas li que isso é uma má ideia, basta usar a fonte de alimentação USB usual.

Por fim, conecte o lado USB do conector ao computador host e obtenha um shell com:

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

Saia com Ctrl-A \.

Aqui está um vídeo de Adafruit mostrando isso: https://www.youtube.com/watch?v=zUBPeoLW16Q

Veja também

Pergunta semelhante no RPI SE: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection


1
O único método (tentei uma dúzia de estratégias diferentes) que funciona para mim (estou no Fedora 29). Obrigado!
Daniel Schütte

No meu caso, o arquivo /var/lib/misc/dnsmasq.leases está vazio ...
borizzzzz

@Kirjain obrigado pelo relatório. A sua configuração é absolutamente idêntica à minha (host, convidado, hardware)? Se não, quais diferenças você tem?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

1
@CiroSantilli 新疆 改造 中心 996ICU 六四 事件 tanques para alcançar. Tenho o mesmo hardware, mas meu PI está executando a versão mais recente (junho de 2019) do raspbian buster e meu host é o ubuntu 18.04. Depois de fornecer ao meu host e aos meus endereços IP estáticos de PI, cheguei ao ponto de fazer o ping do PI do host. Mas quando tento ssh, recebo o erro de conexão recusada que você mencionou em sua resposta. E sim, eu criei o arquivo ssh vazio na partição de inicialização do meu PI. De acordo com as notas de lançamento downloads.raspberrypi.org/raspbian/release_notes.txt, esta ainda deve ser uma abordagem válida.
borizzzzz

@AlexeyGy hmm, não é a primeira coisa que digo na resposta? :-)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

8

Acabei de implementar e testar com sucesso. Mesma situação com meu projeto, quero me conectar a um Raspberry Pi sem roteador ou wi-fi. Apenas um simples cabo Ethernet.

Usando o programa ssh putty coloque o endereço como

raspberrypi.local

Faça o login e você pode acessar o terminal.

Alternativamente, se o servidor VNC estiver configurado, use o servidor VNC e coloque

raspberrypi.local: 1

No endereço do servidor. insira sua senha do servidor VNC e agora você tem acesso GUI para fazer o que quiser.

Em alguns casos, foram executados scripts em local remoto. Na situação dos pôsteres, desligue o Pi com segurança. Simples Pimples.


1
"ssh pi@raspberrypi.local" funciona para uma instalação nova e simples do rasberrian no terminal linux mint.
Elliot Robert

é importante notar que isso depende do nome do host. Então, se você alterou o nome do host do pi, agora pode serelderberryphi.local
lucidbrot

7

Configure o ip estático para o seu laptop e o raspberry pi. No rapberryPI configure da seguinte forma.

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

Em seguida, configure o seguinte conforme necessário para conectar ao seu laptop.

iface eth0 inet static

address 192.168.1.81

netmask 255.255.255.0

broadcast 192.168.1.255

4

configure o ip estático no raspberry pi:

sudo nano /etc/network/interfaces

e depois adicione:

iface eth0 inet static
     address 169.254.0.2
     netmask 255.255.255.0
     broadcast 169.254.0.255

então você pode acessar sua framboesa via ssh

ssh pi@169.254.0.2

3

Aqui estão as instruções para usuários do Windows sobre como conectar-se a um RPi usando apenas um cabo Ethernet e um servidor DHCP. Não há necessidade de um cabo cruzado, pois o RPi pode lidar com isso. Eu tenho uma postagem no blog que documenta isso com fotos aqui que podem ser mais fáceis de seguir.

Transferências

Baixe o servidor DHCP para Windows (o link para download está aqui ). Descompacte o arquivo zip e abra o aplicativo dhcpwiz, que configurará o servidor DHCP.

Configuração do servidor DHCP

Clique em próximo na primeira tela.

Na segunda tela, procure a linha "Conexão de área local" e verifique se o endereço IP 0.0.0.0e o status são enabled. Conecte o cabo Ethernet do RPi ao seu laptop e ligue o Pi. Clique em atualizar nesta tela até que o endereço IP mude para 169.254.*.*. Se for qualquer outra coisa, você deve alterar as configurações de rede para a Conexão de área local (certifique-se de que não seja um IP / DNS estático). Clique nesta linha de conexão de área local e clique em próximo.

Verifique HTTP (Web Server). Isso torna muito mais fácil localizar o endereço IP do RPi. Clique em Avançar.

Pegue os padrões e clique em Avançar até chegar à Writing the INI filetela. Verifique Overwrite existing filee aperte o Write INI filebotão. Em seguida, clique em Avançar.

Na tela final, verifique Run DHCP server immediatelye clique em `Concluir.

Servidor DHCP e obtenção do endereço IP do Raspberry PI

Isso inicia o servidor DHCP real, usando a configuração que você acabou de criar no assistente anterior. Clique no Continue as tray appbotão e o servidor DHCP será minimizado na bandeja do sistema.

Em qualquer lugar de 1 segundo a 5 minutos a partir de agora, você verá um alerta na bandeja do sistema com seu laptop e o novo endereço IP de seu RPi. Este alerta é muito rápido e provavelmente você o perderá. Normalmente o IP do seu RPi é 169.254.0.2, mas pode ser *.01ou até outra coisa. É mais fácil acessar a IU da web do servidor DHCP em http: //localhost/dhcpstatus.xml . Isso listará o nome do host como "raspberrypi" com seu endereço IP.

Agora você pode colocar massa ou área de trabalho remota em seu RPi e definir suas configurações sem fio ou o que quiser.

Solução de problemas

Isso pode ser um pouco enjoado. Minha conexão parece ter caído e não consigo retornar ao SSH usando o endereço IP. Normalmente, posso reiniciar o Pi e obter o endereço IP novamente. Às vezes preciso reiniciar o RPi e o servidor DHCP. Às vezes, preciso fazer isso várias vezes. A certa altura, quando eu não conseguia uma conexão por 15 minutos, copiei todos os arquivos da pasta dhcpsrv2.5.1 para uma nova pasta e tentei novamente; funcionou imediatamente.


1
Eleitores abaixo, por favor, comente ou seu voto é inútil para a maioria das pessoas.
byronyasgur


1

Sim, você pode conectar o raspberry direto ao seu PC sem roteador. Para isso é necessário que o raspberry e o seu computador estejam na mesma sub-rede, e ambos tenham um ip estático configurado (e um cabo Ethernet conectado entre os dois dispositivos).

Uma configuração ideal seria a seguinte:

Raspberry na eth0: IP: 192.168.1.10 Subnet: 255.255.255.0

Seu PC: IP: 192.168.1.11 SubNet 255.255.255.0

Para definir um IP manual no raspberry, você pode seguir este guia

No seu PC, você pode definir um IP manual nas configurações do adaptador de rede e o procedimento depende do seu sistema operacional.

Quando você configurou os dois IP estáticos, você pode se conectar ao raspberry via SSH usando o conjunto de IP (192.168.1.10).

Outro método mais simples é colocar no GPIO um botão para desligar o framboesa! Dê uma olhada aqui!


1

O que funcionou para mim foi uma combinação das respostas de Nicole Finnie e Ciro Santilli junto com algumas respostas de outros lugares.

Configurando o pi

Precisamos fazer duas coisas: ativar o ssh no pi e configurar o pi para usar um ip estático.

Ativando ssh

Adicione um arquivo chamado sshna partição de inicialização do cartão SD (não a /bootpasta na partição raiz). Isso está bem documentado em outros lugares.

I.P. estático

Abra /etc/dhcpcd.confno cartão SD do pi e descomente o exemplo de um ip estático (começa em torno da linha 40). Defina os endereços para

# 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

Configurando seu laptop

Primeiro, certifique-se de ter networkmanager(com GUI) instalado em seu laptop. Em seguida, certifique- dnsmasqse de que não está executando como um serviço:
systemctl status dnsmasq
se este comando imprimir que o serviço foi interrompido, você está bem.

Em seguida, temos que configurar networkmanager. Abra /etc/NetworkManager/NetworkManager.confe adicione as duas linhas a seguir na parte superior:

[main]
DNS=dnsmasq

Em seguida, reinicie. Esta etapa pode não ser necessária. Pode ser suficiente reiniciar o NetworkManagerserviço. Agora vá para a NetworkManagerGUI (geralmente acessada por um ícone no canto da tela) e escolha Edit Connections...Na janela que aparece, clique no +ícone para criar uma nova conexão. Escolha Ethernetcomo o tipo e pressione Create.... Vá para a IPv4 Settingsguia e selecione o método Shared to other computers. Dê um bom nome à conexão e salve.

Conecte o Raspberry Pi e certifique-se de que seu laptop está usando sua nova conexão como conexão Ethernet. Se for, seu pi agora deve ter um ip fornecido pelo seu pc. Você pode encontrar isso executando primeiro ifconfig. Isso deve fornecer vários blocos de texto, um para cada interface de rede. Você está interessado naquele que é algo como enp0s25ou eth0. Ele deve ter uma linha que leia algo semelhante ao
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
olhar para o endereço de broadcast (neste caso 10.42.0.255). Se for diferente do meu, desligue o pi e coloque o cartão SD de volta no seu laptop para mudar o static ip_addresspara algo onde os três primeiros números sejam iguais aos do seu endereço de transmissão. Altere também o static routerse o primeiro do domain_name_serverspara o do seu laptopinetendereço. Ligue o pi novamente e conecte-o. Execute ifconfignovamente para ver se os endereços não mudaram.

ssh no pi

ssh pi@10.42.0.182
Se você obtiver connection refused, o pi não está executando um sshservidor. Se você conseguir host unreachable, sinto muito.

Espero que isso ajude alguém!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.