Как автоматически подключиться к известному wifi и, если он не находит его, подключиться к локальной сети Ethernet?

Я хотел, чтобы Raspberry Pi 3 автоматически подключался к известному wifi, поэтому я отредактировал файл /etc/network/interfaces:

auto wlan0
iface wlan0 inet dhcp
wpa-ssid ssid
wpa-psk  password

и затем я выполнил эту команду sudo dhclient wlan0

И он работает нормально, но теперь, когда я хочу подключить его к локальной сети, он не работает должным образом. Я делаю все без головы. Так как я могу настроить свой Pi так, чтобы он мог сначала попытаться подключиться к моему известному Wi-Fi, а в случае сбоя подключиться к моей локальной сети?

2 голоса | спросил Ujjwal Gupta 1 FebruaryEurope/MoscowbThu, 01 Feb 2018 19:39:04 +0300000000pmThu, 01 Feb 2018 19:39:04 +030018 2018, 19:39:04

1 ответ


0

Это типичный сценарий отработки отказа, и он обрабатывается соединением Вы можете найти информацию на Debian - склеивание . Вот например я сделал протестированная конфигурация с Raspbian на Raspberry Pi 3, которая будет связывать wlan0 и eth0 и прозрачное переключение между этими двумя интерфейсами.

Кто заинтересован в том, чтобы делать это с systemd-networkd, может посмотреть на Как перейти с сети на systemd-networkd с динамическим переключением при сбое .

Для старого стиля сети вы должны настроить /etc/network/interfaces но я не смог получить его вместе с dhcpcd. Это слишком сложно с сетью /интерфейсами и dhcpcd и wpa-supplicant, resolvconf и связыванием. Так что для этого примера я отключить dhcpcd и использовать конфигурацию сети старого стиля. Сначала установите необходимые пакеты:

[email protected]:~ $ sudo apt install ifenslave
[email protected]:~ $ sudo apt install resolvconf

Затем настройте /etc /network /interfaces следующим образом:

[email protected]:~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# bond eth0 together with wlan0
# for status look at: cat /proc/net/bonding/bond0
auto bond0
iface bond0 inet static
    bond-slaves wlan0 eth0
    bond-primary wlan0
    bond-mode active-backup
    bond-miimon 100
    address 192.168.10.60
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameserver 192.168.10.10
    dns-search home.hoeft-online.de

allow-bond0 wlan0
iface wlan0 inet manual
    bond-give-a-chance 120
    wpa-bridge bond0
    wpa-ssid "[email protected]"
    wpa-key-mgmt WPA-PSK
    wpa-psk "dontBelieveItsMyPw"
[email protected]:~ $

Вы должны предоставить этот файл chmod 600 /etc/network/interfaces.

Отключить dhcpcd:

[email protected]:~ $ sudo systemctl stop dhcpcd
[email protected]:~ $ sudo systemctl disable dhcpcd

Перезагрузка

Посмотрите с помощью cat /proc/net/bonding/bond0, если он работает.

ответил Ingo 2 FebruaryEurope/MoscowbFri, 02 Feb 2018 05:37:39 +0300000000amFri, 02 Feb 2018 05:37:39 +030018 2018, 05:37:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132