Примушуйте малину отримати Інтернет з певної мережі


13

Я налаштував свій RPi для підключення до 3G-ключа в завантаженні, встановивши ppp і wvdial

/etc/network/interfaces

Пі завантажується, і у мене є інтернет. Ідеально.

Тепер моя проблема полягає в тому, що кожного разу, коли я підключаю Pi до свого комп’ютера через ethernet (використовуючи цей підручник ), інтернет-з'єднання втрачається. Навіть після відключення від комп'ютера він все ще не підключається, мені потрібно перезавантажити, щоб він міг знову отримати з'єднання з Інтернетом.

Чи є спосіб зробити так, щоб Pi залишався підключеним до Інтернету через інтерфейс dongle, а не намагався зробити це через підключення до мого комп'ютера?


Чи використовують обидва з'єднання DHCP?
Лоуренс

Як виглядає ваш вихідний файл ifconfig?
Бекс

Встановлення вищого показника на eth0, ніж ppp0, повинно досягти того, що ви хочете. Нижній показник є вищим пріоритетом.
Лоуренс

Відповіді:


6

Припустимо, що ви працюєте з Linux (raspian, debian тощо):

Ви задаєте два різні питання, спочатку я відповім на заголовок питання:

Примушуйте малину отримати Інтернет з певної мережі

Я замикаюся на ваше слово "мережа" (на відміну від "інтерфейс") і відповім на це в чистому сенсі IP:

Якщо у вас є кілька підключень, які могли б забезпечити Інтернет, ви керуєте тим, яке буде використовуватися через таблицю маршрутів.

Для перегляду таблиці маршрутизації, яку я зазвичай використовую netstat -rn( -rпризначена для "показати маршрутизацію", -nпризначена для "покажіть мені номери, не намагайтеся робити пошук DNS, які можуть зависати, якщо мій Інтернет не налаштований правильно"). Справді простий приклад виглядав би так:

pi@homeServer ~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.9.1     0.0.0.0         UG        0 0          0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 wlan0
pi@homeServer ~ $ 

Рядок у цьому висновку, який показує, яким шляхом будуть йти IP-пакети, - це лінія з dest 0.0.0.0та genmask 0.0.0.0, що зазвичай називається default route(маска - 0.0.0.0це все підстановка, це дійсно маркер маршруту за замовчуванням), і оскільки в даний час вказується на конкретну адресу в діапазоні `192.168.9 ', інтернет-трафік буде проходити через інтерфейс Ethernet.

Якщо я хочу переключити свій Інтернет в іншу мережу, я б (як root) використовував routeкоманду, і в цьому випадку, враховуючи, що моє з'єднання Wi-Fi не є точковим, я повинен знати IP-адресу маршрутизатора, яка може пересилати трафік із цієї мережі (у моєму випадку це 172.20.10.1так), то я би зробив:

  1. Видаліть поточний маршрут за замовчуванням

    sudo route del default
    
  2. Додайте новий маршрут за замовчуванням для іншої мережі

    sudo route add default gw 172.20.10.1
    

FYI в той час, як routeце те, що я використовую, я бачу, що деякі вважають це застарілим, і замість цього рекомендують використовувати ip routeкоманду, див. Коментар @Fred нижче про синтаксис. довідка про депресію

Чи є спосіб залишитися на зв’язку через інтерфейс dongle

Минув час, коли я працював із pppта wvdialбез конфігурацій (або принаймні посилань на посібники, які ви дотримувались під час їх налаштування), по- справжньому важко здогадатися, з якими проблемами ви працюєте, але як кілька ідей:

  • Невже зв’язок справді відключений чи ви просто втратили маршрут за замовчуванням, коли з'явився ет0?
    • Перевірте це в обох netstat -rnі ifconfig.
    • Інтерфейс в netstat -rn? якщо так, чи існує маршрут за замовчуванням до нього?
    • У ifconfigви бачите інтерфейс для ключа (швидше за все ppp)? це UP?
  • Я не можу пригадати, де ppp/ wvdialжурнал, але це слід перевірити. Цей журнал повідомляє вам стан підключення і повинен повідомити вас, чи не закрилася вся система з якихось причин
  • Якщо ви бачите інтерфейс, спробуйте pingщось на ньому (... що-небудь ...), і подивіться, чи не з'явиться з'єднання.
    • Я знаю, що ppp/ wvdialcombo має деякі можливості автоматичного підключення (залежно від конфігурації)
      • Отже, якщо для з’єднання з'явився ping (або з’єднання залишилося в режимі постійної роботи): це може бути (ppp) маршрут за замовчуванням загублений, коли ви піднімали Ethernet.
      • Якщо це проблема, вам просто потрібно буде додати маршрут за замовчуванням, і вся система повернеться в Інтернет.

2
ip routeне зовсім використовує той самий синтаксис. Однак ви можете скопіювати та вставити його вихід, щоб використовувати його як вхід. Наприклад, якщо він відображається default via 192.168.9.1 dev eth0, ви можете видалити цей маршрут, просто виконавши його ip route del default via 192.168.9.1 dev eth0. Ви можете легко використовувати висновок як шаблон для додавання нових команд, наприклад ip route add default via 172.20.10.1 dev wlan0.
Фред
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.