Podłączyć Raspberry Pi przez Ethernet do laptopa bez routera? [Zamknięte]

99

Pracuję nad projektem balonu z Raspberry Pi. Kiedy potencjalnie odzyskamy Raspberry Pi, najprawdopodobniej będzie to na wsi i chciałbym bezpiecznie wyłączyć Pi w tym momencie.

Bez routera lub sieci w pobliżu zastanawiałem się, czy jest sposób, aby podłączyć Raspberry Pi kablem Ethernet bezpośrednio do laptopa?

user2170780
źródło
Czy rozważałeś skonfigurowanie go jako punktu dostępu? To właśnie robiłem w przeszłości.
Spencer

Odpowiedzi:

75

To rozwiązanie dla Ubuntu (pomysł działa również na Windows lub Mac), które właśnie wypróbowałem dzisiaj i działa jak urok.

Materiał

  1. kabel Ethernet z przeplotem (nazwa jest fantazyjna, ale to zwykły kabel Ethernet)
  2. laptop (ubuntu)
  3. Raspberry Pi (mam Pi2)

Wymagania wstępne dotyczące twojego Ubuntu

  1. Zainstaluj menedżera sieci

    $sudo apt-get install network-manager

  2. Zainstaluj nmap

    $sudo apt-get install nmap

Edytuj połączenie przewodowe na swoim laptopie (Ubuntu)

  1. Zmień ustawienia IpV4 na „Udostępnij innym komputerom”
  2. Zapisz ustawienie
  3. Uruchom ponownie laptopa

Udostępniaj połączenie WiFi swojego laptopa za pomocą skrosowanego kabla Ethernet

  1. Podłącz RPi do laptopa za pomocą kabla Ethernet

  2. Wyszukaj adres rozgłoszeniowy połączenia Ethernet (Laptop),

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

  1. Użyj tego adresu, aby znaleźć adres IP swojego RPi, w moim przypadku jest to 10.42.0.96, ponieważ 10.42.0.1 to mój 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. Zaloguj się do RPi z laptopa (-Y z przekazywaniem X)

    $ssh -Y [email protected]

  2. Oto i oto! Teraz RPi jest podłączone do laptopa, a RPi może udostępniać połączenie Wi-Fi.

    pi@raspberrypi ~ $

Udostępnij wyświetlacz i klawiaturę swojego laptopa za pomocą RPi

  1. Zainstaluj vncserver na Raspberry Pi

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. Zainstaluj vncviewer na swoim laptopie, pobierając RealVNC (obsługuje wiele platform) http://www.realvnc.com/download/vnc/

  3. Aby móc kopiować i wklejać z serwera VNC <--> przeglądarkę VNC, musisz zainstalować autocutsel na swoim RPi.

$sudo apt-get install autocutsel

Jeśli ta witryna nie działa, spróbuj pobrać plik .deb bezpośrednio z witryny lustrzanej, np. Mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb
i zainstaluj go

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

  1. Uruchom vncserver na swoim RPi (musisz ponownie uruchomić vncserver po zainstalowaniu autocutsel, możesz wydać $vncserver -kill :1)

    $vncserver :1

  2. Dodaj autocutsel -fork do /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. Uruchom vncviewer na swoim laptopie

    $vncviewer

  2. Pojawi się okno vncviewer i wpisz adres IP twojego RPi (podany przez twój laptop), a następnie port 1, który jest twoim serwerem VNC. na przykład: 10.42.0.96:1 w moim przypadku.

  3. Połącz go z serwerem vncs hostowanym na twoim RPi, wpisując hasło (ustaw je samodzielnie)

    12. Teraz możesz zobaczyć pulpit RPi na swoim laptopie i otworzyłem przeglądarkę, aby pokazać, że współdzielone połączenie Wi-Fi również działa.

Zobacz pulpit Raspberry Pi na swoim Ubuntu

Nicole Finnie
źródło
przepraszam, nie mogę opublikować więcej niż dwóch linków, ponieważ jestem nowicjuszem w Stackoverflow, jednak są to moje odniesienia: Udostępnianie Wi-Fi przez Ethernet na ubuntu Udostępnij wyświetlacz, instalując VNC na Raspberry dla Linuksa Udostępnij wyświetlacz, instalując VNC na Raspberry dla Windows
Nicole Finnie
Odniesienie do naprawy problemu kopiowania i wklejania między serwerem VNC a klientem VNC TightVNC kopiuj / wklej między lokalnym systemem operacyjnym a Raspberry Pi
Nicole Finnie
Dzięki, dodałem twoją odpowiedź do zakładek, aby móc z niej skorzystać w przyszłości
Mohd Shahril
Dziękuję Ci! To świetna odpowiedź, wszędzie w internecie szukałem takiej przejrzystej procedury! Jeden drobny komentarz - dla niektórych osób możesz chcieć sprawdzić eth0 zamiast eth1 (w jednym z poleceń w odpowiedzi).
Nishant Kelkar
3
Czy na pewno kable z przeplotem są normalne? Myślę, że nie, zobacz: en.wikipedia.org/wiki/Ethernet_crossover_cable Normalne działają tak, jak powiedziałeś w Ubuntu 16.04, RPI 2 Raspbian 2016.05. W dniu 16.04 nie trzeba instalować network-manager, wystarczy użyć domyślnego interfejsu GUI „Ustawienia sieciowe”. I prawdopodobnie powinieneś kliknąć „Dodaj” zamiast „Edytuj”. Po nmapprostu nie ma takiej potrzeby cat /var/lib/misc/dnsmasq.leases. Zobacz: interlockroc.org/2012/12/06/raspberry-pi-macgyver
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
21

Nie potrzebujesz kabla z przeplotem. Możesz użyć normalnego kabla sieciowego, ponieważ układ Raspberry Pi LAN jest wystarczająco inteligentny, aby ponownie skonfigurować się do bezpośrednich połączeń sieciowych. Twoje zdrowie

Vas
źródło
21

Bez routera + bez ekranu + zwykły kabel Ethernet + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Najpierw musimy włączyć serwer SSH na Pi, który jest domyślnie wyłączony ze względów bezpieczeństwa.

Jeśli masz już powłokę na Pi za pomocą metody innej niż SSH, takiej jak ekran + klawiatura lub UART (patrz poniżej), po prostu uruchom:

sudo systemctl enable ssh
sudo service sshd start

jak wyjaśniono na: /raspberrypi/58478/ssh-not-working-with-fresh-install To utrzymuje się przez różne buty.

W przeciwnym razie włóż kartę SD do swojego hosta i utwórz magiczny pusty plik o nazwie sshfile na boot/partycji.

Na hostach Ubuntu jest montowany automatycznie i możesz po prostu:

sudo touch /media/$USER/boot/ssh

które możesz potwierdzić:

lsblk

który zawiera:

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

Jeśli nie włączysz demona SSHD na Pi, połączenie SSH nie powiedzie się z:

ssh: connect to host 10.42.0.160 port 22: Connection refused

kiedy spróbujemy później.

Po włączeniu serwera SSH

Następnie uruchom Pi i podłącz kabel Ethernet z laptopa bezpośrednio do Pi:

wprowadź opis obrazu tutaj

W systemie Ubuntu 17.04, aby obejść ten błąd, jak wspomniano w tej odpowiedzi , najpierw potrzebujesz:

sudo apt-get install dnsmasq-base

Na hoście otwórz menedżera sieci:

nm-connection-editor

I idź:

  1. + znak (Dodaj nowe połączenie)
  2. Ethernet
  3. Stwórz
  4. Ustawienia IPv4
  5. Metoda: udostępniona innym komputerom
  6. Nadaj mu dobrą nazwę
  7. Zapisać

wprowadź opis obrazu tutaj

Znajdź adres IP Pi na hoście:

cat /var/lib/misc/dnsmasq.leases

wyświetla coś takiego:

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

10.42.0.160 jest adresem IP, to jak zwykle:

ssh [email protected]

Mam również w moim .bashrc:

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

Z wnętrza Pi zwróć uwagę, że może on normalnie uzyskać dostęp do Internetu przez inne interfejsy twojego hosta:

ping google.com

Na przykład na moim laptopie Pi zajmuje Ethernet, ale host jest również podłączony do Internetu przez WiFi.

Kabel krosowy nie jest wymagany, jeśli karta sieciowa hosta obsługuje funkcję Auto MDI-X . Tak jest w przypadku najnowszego sprzętu, w tym na przykład testowanego przeze mnie Lenovo T430 z 2012 r., Który ma „Intel® 82579LM Gigabit Network Connection”, które dokumentuje obsługę funkcji Auto MDI-X .

Teraz możesz również:

Szeregowy konwerter USB UART

Jest to alternatywa dla SSH, jeśli chcesz tylko uzyskać powłokę na Pi: https://en.wikipedia.org/wiki/Serial_port

Nie wykorzystuje SSH ani samej sieci, ale raczej starszy, prostszy, bardziej bezpośredni, bardziej niezawodny, o mniejszej przepustowości i mniejszym dystansie interfejs szeregowy. Pi nie będzie miał dostępu do Internetu tą metodą.

Komputery stacjonarne nadal mają port szeregowy, który można podłączyć bezpośrednio przewodem do kabla z Pi, ale są one ukryte w większości laptopów, więc musimy kupić tani adapter USB. Tutaj użyłem: https://www.amazon.co.uk/gp/product/B072K3Z3TL Zobacz też: /unix/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882

Najpierw podłącz kartę SD do hosta i edytuj config.txtplik obecny na pierwszej partycji, aby dodać:

enable_uart=1

jak wyjaśniono na: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195

Ta pierwsza partycja zawiera program ładujący, jego pliki konfiguracyjne i jądro (Linux / twoje), config.txtbędące jednym z nich. Druga partycja zawiera rzeczywisty główny system plików Linuksa.

Teraz podłącz komputer do Pi jako:

wprowadź opis obrazu tutaj

Wystarczy podłączyć 3 kable:

  • Ziemia do ziemi
  • Tx na Pi do Rx na USB do portu szeregowego
  • Rx na Pi do Tx na tye USB do portu szeregowego

Jest to również udokumentowane pod adresem : https://www.raspberrypi.org/documentation/usage/gpio/README.md

Uważaj, aby nie połączyć masy z 5V, już spaliłem 2 układy UART na USB i RPI UART w ten sposób!

W ogóle nie musisz podłączać 5V do 5V. Myślę, że możesz tak zasilać swoje Pi, ale przeczytałem, że to zły pomysł, po prostu użyj zwykłego źródła zasilania USB.

Na koniec podłącz stronę USB złącza do komputera głównego i uzyskaj powłokę z:

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

Wyjdź za pomocą Ctrl-A \.

Oto wideo autorstwa Adafruit pokazujące to: https://www.youtube.com/watch?v=zUBPeoLW16Q

Zobacz też

Podobne pytanie w RPI SE: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło
1
Jedyna metoda (wypróbowałem kilkanaście różnych strategii), która działa dla mnie (jestem na Fedorze 29). Dzięki!
Daniel Schütte,
W moim przypadku plik /var/lib/misc/dnsmasq.leases jest pusty ...
borizzzzz
@Kirjain dzięki za raport. Czy Twoja konfiguracja jest absolutnie identyczna z moją (host, gość, sprzęt)? Jeśli nie, jakie masz różnice?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
@CiroSantilli 新疆 改造 中心 996ICU 六四 事件 za wyciągnięcie ręki. Mam ten sam sprzęt, ale na moim PI działa najnowsza (czerwiec 2019) wersja raspbian buster, a moim hostem jest ubuntu 18.04. Po podaniu mojego hosta i statycznych adresów IP PI dotarłem do tego, aby pingować PI z hosta. Ale kiedy próbuję ssh, pojawia się błąd odmowy połączenia, o którym wspomniałeś w swojej odpowiedzi. I tak, utworzyłem pusty plik ssh na partycji rozruchowej mojego PI. Jednak zgodnie z uwagami do wydania downloads.raspberrypi.org/raspbian/release_notes.txt powinno to być nadal prawidłowe podejście.
borizzzzz
@AlexeyGy hmm, czy to nie jest pierwsza rzecz, którą mówię w odpowiedzi? :-)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
8

Właśnie to zaimplementowałem i pomyślnie przetestowałem. Taka sama sytuacja z moim projektem, chcę połączyć się z Raspberry Pi bez routera lub Wi-Fi. Po prostu zwykły kabel Ethernet.

Używając programu ssh putty wpisz adres jako

raspberrypi.local

Zaloguj się i zaloguj, aby uzyskać dostęp do terminala.

Alternatywnie, jeśli skonfigurowano serwer VNC, użyj serwera VNC i włóż

raspberrypi.local: 1

W adresie serwera. wprowadź hasło do serwera VNC i masz teraz dostęp do GUI, aby robić, co chcesz.

W przypadku, gdy został uruchomiony skrypty w zdalnej lokalizacji. W przypadku plakatów bezpiecznie wyłącz Pi. Simples Pryszcze.

Stuart Llewellyn
źródło
1
"ssh [email protected]" działa dla zwykłej, świeżej instalacji rasberrian na terminalu linux mint.
Elliot Robert
Warto zauważyć, że zależy to od nazwy hosta. Więc jeśli zmienisz nazwę hosta pi, może to być terazelderberryphi.local
lucidbrot
7

Skonfiguruj statyczne IP dla swojego laptopa i Raspberry Pi. Na rapberryPI skonfiguruj go w następujący sposób.

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

Następnie skonfiguruj następujące zgodnie z wymaganiami, aby połączyć się z laptopem.

iface eth0 inet static

address 192.168.1.81

netmask 255.255.255.0

broadcast 192.168.1.255
Don Srinath
źródło
4

Skonfiguruj statyczne IP na Raspberry Pi:

sudo nano /etc/network/interfaces

a następnie dodaj:

iface eth0 inet static
     address 169.254.0.2
     netmask 255.255.255.0
     broadcast 169.254.0.255

wtedy możesz uzyskać dostęp do swojej maliny przez ssh

ssh [email protected]
Queky
źródło
3

Oto instrukcje dla użytkowników systemu Windows dotyczące łączenia się z RPi za pomocą kabla Ethernet i serwera DHCP. Nie ma potrzeby stosowania kabla z przeplotem, ponieważ RPi sobie z tym poradzi. Mam post na blogu, który dokumentuje to za pomocą zdjęć , które mogą być łatwiejsze do naśladowania.

Pliki do pobrania

Pobierz serwer DHCP dla systemu Windows (łącze pobierania jest tutaj ). Rozpakuj plik zip i otwórz aplikację dhcpwiz, która skonfiguruje serwer DHCP.

Konfiguracja serwera DHCP

Kliknij następny na pierwszym ekranie.

Na drugim ekranie poszukaj wiersza „Połączenie lokalne” i sprawdź, czy jego adres IP to, 0.0.0.0a stan to enabled. Podłącz kabel Ethernet z RPi do laptopa i włącz Pi. Uderz odświeżanie na tym ekranie, aż adres IP zmieni się na 169.254.*.*. Jeśli chodzi o coś innego, powinieneś zmienić ustawienia sieciowe dla połączenia lokalnego (upewnij się, że nie jest to statyczny adres IP / DNS). Kliknij wiersz Połączenie lokalne i naciśnij Dalej.

Sprawdź HTTP (Web Server). Dzięki temu znacznie łatwiej jest zlokalizować adres IP RPi. Kliknij Dalej.

Wybierz wartości domyślne i naciskaj Dalej, aż dojdziesz do Writing the INI fileekranu. Sprawdź Overwrite existing filei naciśnij Write INI fileprzycisk. Następnie naciśnij Dalej.

Na ostatnim ekranie zaznacz Run DHCP server immediatelyi naciśnij `` Zakończ.

Serwer DHCP i uzyskiwanie adresu IP twojego Raspberry PI

Spowoduje to uruchomienie właściwego serwera DHCP przy użyciu konfiguracji utworzonej w poprzednim kreatorze. Kliknij Continue as tray appprzycisk, a serwer DHCP zostanie zminimalizowany do paska zadań.

W dowolnym miejscu od 1 sekundy do 5 minut od teraz zobaczysz alert na pasku zadań z laptopem i nowym adresem IP RPi. Ten alert jest naprawdę szybki i prawdopodobnie go przegapisz. Zwykle IP twojego RPi jest 169.254.0.2, ale może być *.01lub nawet coś innego. Łatwiej jest uzyskać dostęp do interfejsu WWW serwera DHCP pod adresem http: //localhost/dhcpstatus.xml . Spowoduje to wyświetlenie nazwy hosta jako „raspberrypi” wraz z jego adresem IP.

Teraz możesz umieścić zdalny pulpit w swoim RPi i skonfigurować jego ustawienia bezprzewodowe lub cokolwiek chcesz zrobić.

Rozwiązywanie problemów

To może być nieco skomplikowane. Moje połączenie wydaje się zerwane i nie mogłem ponownie nawiązać połączenia SSH przy użyciu adresu IP. Zwykle mogę ponownie uruchomić Pi i ponownie uzyskać adres IP. Czasami muszę zrestartować zarówno serwer RPi, jak i DHCP. Czasami muszę to robić wiele razy. W pewnym momencie, gdy nie uzyskiwałem połączenia przez 15 minut, skopiowałem wszystkie pliki z folderu dhcpsrv2.5.1 do nowego folderu i spróbowałem ponownie; to od razu zadziałało.

Matthew Moisen
źródło
1
Wyborcy negatywni, prosimy o komentarz, inaczej Twój głos jest bezużyteczny dla większości ludzi.
byronyasgur
2

Możesz użyć kabla Ethernet z przeplotem - http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Zakładając, że RPi jest klientem DCHP, najlepiej uruchomić prosty serwer DHCP na notebooku, aby przypisać RPi adres IP.

MrDB
źródło
3
Nie potrzebujesz kabla z przeplotem, ponieważ RPi ma oprogramowanie, które może współpracować ze zwykłym kablem Ethernet.
Matthew Moisen,
1

Tak, możesz podłączyć malinę bezpośrednio do komputera bez routera. W tym celu konieczne jest, aby malina i komputer znajdowały się w tej samej podsieci i oba miały skonfigurowany statyczny adres IP (i kabel Ethernet podłączony między dwoma urządzeniami).

Idealna konfiguracja byłaby następująca:

Raspberry na eth0: IP: 192.168.1.10 SubNet: 255.255.255.0

Twój komputer: IP: 192.168.1.11 SubNet 255.255.255.0

Aby ustawić ręczne IP na malinie, postępuj zgodnie z tym przewodnikiem

Na komputerze możesz ustawić ręczny adres IP w ustawieniach karty sieciowej, a procedura zależy od systemu operacyjnego.

Po skonfigurowaniu dwóch statycznych adresów IP można połączyć się z maliną przez SSH za pomocą zestawu adresów IP (192.168.1.10).

Inną prostszą metodą jest dołączenie do GPIO przycisku wyłączającego malinę! Spójrz tutaj!

grausof
źródło
1

U mnie zadziałało połączenie odpowiedzi Nicole Finnie i Ciro Santilli z kilkoma odpowiedziami z innych miejsc.

Konfigurowanie pi

Będziemy musieli zrobić dwie rzeczy: aktywować ssh na pi i skonfigurować pi tak, aby używał statycznego adresu IP.

Aktywacja ssh

Dodaj plik o nazwie sshna partycji rozruchowej karty SD (nie /bootfolder na partycji głównej). To jest dobrze udokumentowane w innych miejscach.

Stałe IP

Otwórz /etc/dhcpcd.confna karcie SD pi i odkomentuj przykład dla statycznego adresu IP (zaczyna się około linii 40). Ustaw adresy na

# 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

Konfigurowanie laptopa

Najpierw upewnij się, że masz networkmanagerzainstalowany (z GUI) na swoim laptopie. Następnie upewnij się, dnsmasqjest nie działa jako usługa:
systemctl status dnsmasq
Jeżeli komenda drukuje, że usługa zostanie zatrzymana, a następnie jesteś dobry.

Następnie musimy skonfigurować networkmanager. Otwórz /etc/NetworkManager/NetworkManager.confi dodaj następujące dwie linie u góry:

[main]
DNS=dnsmasq

Następnie uruchom ponownie. Ten krok może nie być konieczny. Może wystarczyć ponowne uruchomienie NetworkManagerusługi. Teraz przejdź do NetworkManagerGUI (zwykle dostępne za pomocą ikony w rogu ekranu) i wybierz Edit Connections...W wyświetlonym oknie kliknij +ikonę, aby utworzyć nowe połączenie. Wybierz Ethernetjako typ i naciśnij Create.... Przejdź do IPv4 Settingszakładki i wybierz metodę Shared to other computers. Nadaj połączeniu dobre imię i oszczędzaj.

Podłącz Raspberry Pi i upewnij się, że Twój laptop używa nowego połączenia jako połączenia Ethernet. Jeśli tak, twój pi powinien mieć teraz adres IP nadany mu przez twój komputer. Możesz to znaleźć, najpierw uruchamiając ifconfig. Powinno to dać ci kilka bloków tekstu, po jednym dla każdego interfejsu sieciowego. Interesuje Cię ten, który jest czymś w rodzaju enp0s25lub eth0. Powinien mieć wiersz, który brzmi podobnie, aby
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
spojrzeć na adres rozgłoszeniowy (w tym przypadku 10.42.0.255). Jeśli jest inny niż mój, wyłącz pi i włóż kartę SD z powrotem do laptopa, aby zmienić na static ip_addresscoś, w którym pierwsze trzy cyfry są takie same jak w adresie rozgłoszeniowym. Zmień także static routersi pierwszy z nich domain_name_serversna laptopainetadres. Ponownie włącz pi i podłącz je. Uruchom ifconfigponownie, aby zobaczyć, czy adresy się nie zmieniły.

ssh do pi

ssh [email protected]
Jeśli dostaniesz connection refused, pi nie obsługuje sshserwera. Jeśli dostaniesz host unreachable, przepraszam.

Mam nadzieję, że to komuś pomoże!

Froff
źródło