Підключіть Raspberry Pi через Ethernet до ноутбука без маршрутизатора? [зачинено]


99

Я працюю над проектом на повітряній кулі з Raspberry Pi. Коли ми потенційно відновимо Raspberry Pi, він, швидше за все, буде в сільській місцевості, і я хотів би безпечно вимкнути Pi в цьому місці.

Без маршрутизатора чи мережі поблизу, мені було цікаво, чи є спосіб підключити Raspberry Pi кабелем Ethernet безпосередньо до ноутбука?


Ви розглядали можливість встановити її як точку доступу? Це те, що я робив у минулому.
Спенсер

Відповіді:


75

Це рішення для Ubuntu (ідея також працює для Windows або Mac) Я тільки що спробував сьогодні, і це працює як шарм.

Матеріал

  1. перехресний кабель Ethernet (назва фантазії, але це просто звичайний кабель Ethernet)
  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. Перезавантажте ноутбук

Поділіться Wi-Fi підключенням свого ноутбука за допомогою кроссовера Ethernet

  1. Підключіть RPI до свого ноутбука за допомогою кабелю Ethernet

  2. Знайдіть адресу трансляції з'єднання Ethernet (ноутбук),

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

  1. Використовуйте цю адресу, щоб дізнатися IP-адресу вашого RPi, в моєму випадку це 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 зі свого ноутбука (-Y з переадресацією X)

    $ssh -Y pi@10.42.0.96

  2. Ось і ось! Тепер ваш RPI підключений до вашого ноутбука, і RPI може поділитися з’єднанням Wi-Fi.

    pi@raspberrypi ~ $

Діліться дисплеєм та клавіатурою свого ноутбука за допомогою RPi

  1. Встановіть vncserver на Raspberry Pi

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. Встановіть vncviewer на свій ноутбук, завантаживши RealVNC (він підтримує декілька платформ) http://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. Запустіть vncserver на вашому RPi (Ви маєте перезапустити 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 і введе IP-адресу вашого RPi (надану вашим ноутбуком), а потім порт 1, який є вашим сервером VNC. наприклад: у моєму випадку 10,42,0,96 хв.

  3. Підключіть його до vncserver, розміщений на вашому RPi, ввівши пароль (налаштуйте пароль самостійно)

    12.Зараз ви можете бачити робочий стіл RPi на своєму ноутбуці, і я відкрив свій браузер, щоб показати, що спільне з’єднання Wi-Fi працює також.

Дивіться на робочому столі Raspberry Pi на своєму ubuntu


Вибачте, я не можу розмістити більше двох посилань, тому що я новачок у Stackoverflow, однак, це мої посилання: Спільний доступ до Wi-Fi через ethernet в ubuntu. Надіслати дисплей, встановивши VNC на Raspberry для Linux, поділитися дисплеєм, встановивши VNC на Raspberry для Windows
Ніколь Фінні

Посилання на вирішення проблеми копіювання та вставки між сервером VNC та клієнтом VNC TightVNC копіювати / вставляти між локальною ОС та Raspberry Pi
Ніколь Фінні

Дякую, я взяв у закладки вашу відповідь для моєї майбутньої довідки!
Mohd Shahril

Дякую! Це чудова відповідь, я полював на таку чітку процедуру скрізь в Інтернеті! Один незначний коментар - для деяких людей ви можете перевірити eth0, а не eth1 (в одній із команд у відповіді).
Нішант Келкар

3
Ви впевнені, що кросоверські кабелі є нормальними? Я думаю , що немає, см: en.wikipedia.org/wiki/Ethernet_crossover_cable нормальні робити роботу , як ви сказали на Ubuntu 16.04, RPI 2 Raspbian 2016.05. 16.04 не потрібно встановлювати network-manager, просто використовуйте графічний інтерфейс "Налаштування мережі" за замовчуванням. І ви, швидше за все, натисніть "Додати" замість "Редагувати". Не потрібно nmap, просто cat /var/lib/misc/dnsmasq.leases. Дивіться: interlockroc.org/2012/12/06/raspberry-pi-macgyver
Ciro Santilli 郝海东 冠状 病 六四 事件

21

Вам не потрібен перехресний кабель. Ви можете використовувати звичайний мережевий кабель, оскільки мікросхема Raspberry Pi LAN досить розумна, щоб перенастроїти себе на прямі мережеві з'єднання. Ура


21

Без маршрутизатора + без екрана + звичайний кабель Ethernet + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10

Спочатку ми повинні включити SSH-сервер на Pi, який відключений за замовчуванням для безпеки.

Якщо у вас вже є оболонка на Pi за допомогою не-SSH методу, такого як екран + клавіатура або UART (див. Нижче), просто запустіть:

sudo systemctl enable ssh
sudo service sshd start

як пояснено на веб-сторінці : /raspberrypi/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

Якщо ви не включите демон SSHD на Pi, то з'єднання SSH не вдасться:

ssh: connect to host 10.42.0.160 port 22: Connection refused

коли ми спробуємо це згодом.

Після ввімкнення сервера SSH

Потім завантажте Pi та підключіть кабель Ethernet зі свого ноутбука безпосередньо до Pi:

введіть тут опис зображення

У Ubuntu 17.04, щоб обійти цю помилку, як згадується у цій відповіді , спочатку потрібно:

sudo apt-get install dnsmasq-base

На хості відкрийте менеджер мережі:

nm-connection-editor

І йдіть:

  1. + підписати (Додати нове з'єднання)
  2. Ethernet
  3. Створіть
  4. Налаштування IPv4
  5. Спосіб: Спільний доступ до інших комп'ютерів
  6. Встановіть гарне ім’я
  7. Зберегти

введіть тут опис зображення

Знайдіть IP-адресу Pi на хості:

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 бере Ethernet, але хост також підключений до Інтернету через WiFi.

Перехресний кабель не потрібен, якщо хост мережева карта підтримує Auto MDI-X . Це стосується самого останнього обладнання, включаючи, наприклад, тестований Lenovo T430 2012, з яким «Intel® 82579LM Gigabit Network Connection», який підтверджує підтримку Auto MDI-X .

Тепер ви також можете:

Послідовний USB-перетворювач UART

Це альтернатива SSH, якщо ви просто хочете отримати оболонку на Pi: https://en.wikipedia.org/wiki/Serial_port

Для цього використовується не SSH, а сама мережа, а старший, простіший, пряміший, надійніший, менша пропускна здатність, серійний інтерфейс з меншою відстані. Pi не матиме доступу до Інтернету цим методом.

Настільні комп'ютери все ще мають послідовний порт, до якого можна підключити безпосередньо провід до проводу з Pi, але вони приховані у більшості ноутбуків, і тому нам потрібно придбати дешевий USB-адаптер. Тут я використав: https://www.amazon.co.uk/gp/product/B072K3Z3TL Дивіться також: /unix/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 / your), що config.txtє одним із них. Другий розділ містить фактичну кореневу файлову систему Linux.

Тепер підключіть комп’ютер до Pi як:

введіть тут опис зображення

Вам потрібно підключити лише 3 кабелю:

  • Земля до землі
  • Tx на Pi - Rx на USB - серійний порт
  • Rx на Pi-Tx на USB-послідовний порт

Це також задокументовано за адресою: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Будьте обережні, щоб не підключити Ground до 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: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection


1
Єдиний метод (спробував близько десятка різних стратегій), який працює для мене (я на Fedora 29). Дякую!
Даніель Шютте

У моєму випадку файл
/var/lib/misc/dnsmasq.leases

@Kirjain дякую за доповідь. Чи ваша програма абсолютно ідентична моїй (хост, гість, апаратне забезпечення)? Якщо ні, то які відмінності у вас є?
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

1
@CiroSantilli 事件 改造 中心 996ICU 六四 事件 танки для простягання. У мене таке ж обладнання, але мій PI запускає найновіший (червень 2019 року) випуск розпбіян-бастер, а мій хост - ubuntu 18.04. Після надання моєму хосту і моїм PI статичних IP-адрес, я дійшов до того, як пінгнути PI від хоста. Але коли я спробую ssh, я отримую помилку підключення, яку ви згадали у своїй відповіді. І так, я створив порожній файл ssh у завантажувальному розділі мого PI. Відповідно до приміток до випуску downloads.raspberrypi.org/raspbian/release_notes.txt , однак це все ж повинен бути правильним підходом.
borizzzzz

@AlexeyGy Хм, хіба це не перше, що я кажу у відповіді? :-)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

8

Я щойно це успішно реалізував і протестував. Така ж ситуація і з моїм проектом, я хочу підключитися до Raspberry Pi без маршрутизатора або wifi. Просто простий кабель Ethernet.

За допомогою програми ssh putty адресу поставте як

малинові.локальні

Увійдіть і увійдіть, і ви можете отримати доступ до терміналу.

Крім того, якщо сервер VNC налаштований, використовуйте сервер VNC і поставте

малинові.локальні: 1

У адресу сервера. введіть пароль свого сервера VNC, і тепер у вас є доступ до GUI, щоб робити те, що ви хочете.

У цьому випадку сценарії запускалися у віддаленому місці. У ситуації з плакатами безпечно вимкніть Pi. Симплексні прищі.


1
"ssh pi@raspberrypi.local" працює для звичайної старої свіжої установки rasberrian на терміналі монетного двору Linux.
Елліот Роберт

Варто зазначити, що це залежить від імені хоста. Отже, якщо ви змінили ім'я хоста пі, це може бути тепер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 щодо підключення до RPi, використовуючи лише кабель Ethernet та сервер DHCP. Не потрібно перехрещувати кабель, оскільки RPI може це впоратися. У мене є повідомлення в блозі , що документи ці з фотографіями тут , які можуть бути легше слідувати.

Завантаження

Завантажте сервер DHCP для Windows (посилання для завантаження тут ). Розпакуйте zip-файл і відкрийте програму dhcpwiz, яка налаштує DHCP-сервер.

Конфігурація сервера DHCP

Натисніть на наступному на першому екрані.

На другому екрані шукайте рядок "Місцеве з'єднання" та переконайтеся, що його IP-адреса 0.0.0.0та її статус enabled. Підключіть кабель Ethernet від RPi до ноутбука та увімкніть Pi. Натисніть оновити на цьому екрані, поки IP-адреса не зміниться на 169.254.*.*. Якщо це ще щось, то слід змінити налаштування мережі для локального підключення (переконайтеся, що це не статичний IP / DNS). Клацніть цей рядок з локальним підключенням і натисніть на наступний.

Перевірити HTTP (Web Server). Це значно полегшує пошук IP-адреси RPi. Натисніть Далі.

Візьміть параметри за замовчуванням і натисніть кнопку Далі, поки не вийдете на Writing the INI fileекран. Перевірте Overwrite existing fileі натисніть Write INI fileкнопку. Потім натисніть Далі.

На останньому екрані поставте прапорець Run DHCP server immediatelyі натисніть `Готово.

DHCP-сервер та отримання IP-адреси вашого Raspberry PI

Це запускає власне сервер DHCP, використовуючи конфігурацію, яку ви тільки що створили в попередньому майстрі. Натисніть Continue as tray appкнопку, і сервер DHCP буде мінімізований до вашої системної області.

Будь-де за 1 секунду до 5 хвилин відтепер ви побачите сповіщення на системному треї за допомогою свого ноутбука та нової IP-адреси вашого RPi. Це сповіщення дійсно швидке, і ви, мабуть, його пропустите. Зазвичай IP вашої RPi є 169.254.0.2, але це може бути *.01або навіть щось інше. Простіше отримати доступ до веб-інтерфейсу сервера DHCP за адресою http: //localhost/dhcpstatus.xml . Тут буде вказано ім'я хоста як "малиновий" із його IP-адресою.

Тепер ви можете помістити шпалери або віддалений робочий стіл у свій RPi, а також налаштувати його бездротові налаштування або все, що ви хочете зробити.

Вирішення проблем

Це може бути дещо вибагливим. У мене, здається, зв’язок припинився і не вдалося повернути SSH при використанні IP-адреси. Зазвичай я можу перезапустити Pi і знову отримати IP-адресу. Іноді мені доводиться перезапускати і RPi, і сервер DHCP. Іноді мені доводиться це робити кілька разів. Одного разу, коли я не отримав з'єднання протягом 15 хвилин, я скопіював усі файли в папці dhcpsrv2.5.1 в нову папку і спробував ще раз; це негайно спрацювало.


1
Виборці, будь ласка, прокоментуйте свої коментарі, або ваш голос для більшості людей марний.
byronyasgur

2

Ви можете використати перехресний кабель Ethernet - http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Припустимо, що ваш RPi є клієнтом DCHP, тоді найкраще запустити простий сервер DHCP на своєму ноутбуку, щоб призначити RPi IP-адресу.


3
Вам не потрібен перехресний кабель, оскільки RPi має програмне забезпечення, яке може працювати із звичайним Ethernet-кабелем.
Меттью Мойсен

1

Так, ви можете підключити малину безпосередньо до ПК без маршрутизатора. Для цього необхідно, щоб малинка і ваш комп'ютер були в одній підмережі, і вони обидва мають статичний ip налаштований (і кабель Ethernet, з'єднаний між двома пристроями).

Ідеальною конфігурацією була б така:

Малина на eth0: IP: 192.168.1.10 SubNet: 255.255.255.0

Ваш ПК: IP: 192.168.1.11 SubNet 255.255.255.0

Для встановлення вручну IP-адреси на малину ви можете дотримуватися цього посібника

На своєму ПК ви можете встановити вручну IP в налаштуваннях мережевого адаптера, і процедура залежить від вашої операційної системи.

Коли ви налаштували два статичних IP-адреси, ви можете підключитися до малини через SSH за допомогою IP-набору (192.168.1.10).

Ще один простіший метод - прикріпити на GPIO кнопку, щоб вимкнути малину! Погляньте тут!


1

Що для мене спрацювало - це поєднання відповідей Ніколь Фіні та Сіро Сантіллі, а також відповіді з інших країн.

Налаштування пі

Нам потрібно буде зробити дві речі: активувати ssh на pi та налаштувати pi на використання статичного ip.

Активація ssh

Додайте файл, викликаний sshу завантажувальний розділ sd карти (а не /bootпапку в кореневому розділі). Це добре задокументовано в інших місцях.

Статичний ip

Відкрийте /etc/dhcpcd.confна SD-картці pi і коментуйте приклад для статичного 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графічного інтерфейсу (до нього зазвичай звертається піктограма в куті екрану) і виберіть Edit Connections...У вікні, що з'явиться, натисніть на +піктограму, щоб створити нове з'єднання. Виберіть Ethernetяк тип і натисніть Create.... Перейдіть на IPv4 Settingsвкладку і виберіть метод Shared to other computers. Назвіть з'єднання добре ім’я та збережіть.

Підключіть Raspberry Pi і переконайтеся, що ваш ноутбук використовує ваше нове підключення як своє Ethernet-з'єднання. Якщо це так, тепер у вашого pi має бути ip, наданий вашим ПК. Ви можете знайти це, попередньо запустивши ifconfig. Це має дати кілька блоків тексту, по одному для кожного мережевого інтерфейсу. Вас цікавить той, що є чимось на кшталт enp0s25або eth0. Він повинен мати рядок, який читає щось подібне, щоб
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
переглянути адресу трансляції (у цьому випадку 10.42.0.255). Якщо вона відрізняється від моєї, вимкніть пі та покладіть SD-карту назад у свій ноутбук, щоб змінити значення static ip_addressна те, де перші три номери такі ж, як у вашій радіомовної адреси. Також змініть static routersі перший із domain_name_serversсвоїх ноутбуківinetадреса. Увімкніть пі і знову підключіть його. Запустіть ifconfigще раз, щоб побачити, що адреси не змінилися.

ssh в пі

ssh pi@10.42.0.182
Якщо ви отримаєте connection refused, пі не працює із sshсервером. Якщо дістанешся host unreachable, пробач.

Сподіваюся, це комусь допоможе!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.