Припустимо, що ви працюєте з 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
так), то я би зробив:
Видаліть поточний маршрут за замовчуванням
sudo route del default
Додайте новий маршрут за замовчуванням для іншої мережі
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
/ wvdial
combo має деякі можливості автоматичного підключення (залежно від конфігурації)
- Отже, якщо для з’єднання з'явився ping (або з’єднання залишилося в режимі постійної роботи): це може бути (ppp) маршрут за замовчуванням загублений, коли ви піднімали Ethernet.
- Якщо це проблема, вам просто потрібно буде додати маршрут за замовчуванням, і вся система повернеться в Інтернет.