Предполагая, что вы работаете с Linux (raspian, debian и т.д ...):
Вы задаете два разных вопроса. Сначала я отвечу на заглавный вопрос:
Заставить Raspberry получить интернет из определенной сети
Я собираюсь заблокировать ваше слово «сеть» (в отличие от «интерфейс») и ответить на это в чистом смысле IP:
Если у вас есть несколько подключений, которые могут обеспечить Интернет, вы можете контролировать, какие будут использоваться через таблицу маршрутов.
Для просмотра таблицы маршрутизации, которую я обычно использую netstat -rn
( -r
для «show routing», -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 of 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
К вашему сведению, route
я использую FYI , но некоторые считают его устаревшим и вместо этого рекомендуют использовать ip route
команду, см. Комментарий @Fred ниже о синтаксисе. ссылка на амортизацию
Есть ли способ оставаться на связи через интерфейс ключа
Прошло много времени с тех пор, как я работал с ppp
и wvdial
без конфигов (или, по крайней мере, со ссылками на руководства, которые вы использовали при их настройке), очень трудно догадаться, с какими проблемами вы столкнулись, но вот несколько идей:
- Соединение действительно разорвано, или вы просто потеряли маршрут по умолчанию, когда появился eth0?
- Проверьте это в обоих
netstat -rn
и ifconfig
.
- Интерфейс в
netstat -rn
? если так, есть ли маршрут к нему по умолчанию?
- В
ifconfig
вы видите интерфейс для ключа (скорее всего ppp
)? это так UP
?
- Я не могу вспомнить, где
ppp
/ wvdial
журнал, но это должно быть проверено. Этот журнал покажет вам состояние соединения и должен сообщить вам, если вся система по какой-то причине закрылась
- Если вы видите интерфейс, попробуйте
ping
что-нибудь (... что-нибудь ...) на нем, и посмотрите, установится ли соединение.
- Я знаю, что
ppp
/ wvdial
combo имеет некоторые возможности автоматического подключения (в зависимости от конфигурации)
- Таким образом, если соединение установило ping (или соединение не прекращалось все время): это может быть (ppp) маршрут по умолчанию, потерянный при подключении к Ethernet.
- Если это проблема, вам просто нужно добавить маршрут по умолчанию, и вся система вернется в режим онлайн.