Як налаштувати кілька мереж WiFi?


113

Я повертаюся туди-сюди від школи до школи зі своїм Пі. Я щойно влаштував WiFi, який працював минулої ночі вдома, використовуючи wpa.confзамість того wpa_supplicant.conf, щоб книжка, якою я користувався, ходила через це. Я помітив, що багато, здається, використовують, wpa_supplicantале не знаю, чому ...

У будь-якому разі я знаю, як зробити IP Wi-Fi статичним для моєї домашньої мережі, але як налаштувати автоматичне підключення до моєї шкільної Wi-Fi та використовувати інший статичний IP-адресу для цієї мережі?

Для мережі я просто додам ще один network={}у свій wpa.confфайл? Як другий статичний IP-адрес, як я прив’яжу це до шкільної мережі?

Відповіді:


106

Відредагуйте /etc/wpa_supplicant/wpa_supplicant.conf та додайте id_str = "школа" під школи wpa info та id_str = "home" під ваші будинки wpa info. Тепер ваш файл повинен виглядати приблизно так:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="SCHOOLS NETWORK NAME"
    psk="SCHOOLS PASSWORD"
    id_str="school"
}

network={
    ssid="HOME NETWORK NAME"
    psk="HOME PASSWORD"
    id_str="home"
}

Потім встановіть / etc / network / інтерфейси з iface school inet static та iface home inet static в ньому, щоб воно виглядало так:

Це стосується Raspbian Wheezy до 2015-05-05 для подальшого (та Джессі) Див. Як встановити мережу / WiFi / Статичний IP

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface school inet static
address <school address>
gateway <school gateway>
netmask <school netmask>

iface home inet static
address <home address>
gateway <home gateway>
netmask <home netmask>

Можливо, варто відзначити: Якщо я правильно розумію документацію, щоб використовувати цей підхід, у вашому файлі wpa_supplicant.conf ви повинні мати і властивість id_str для КОЖНОЇ мережі. Інакше це не спрацює. Ви можете підтвердити?
PICyourBrain

Я не вірю, що це так.
les

3
Такий підхід працює, однак чи можливо переключити WiFi без перезавантаження Pi?
MetalGodwin

2
Якщо не id_strвказано, значення буде default.
Раптор

1
@MetalGodwin Ви можете використовувати wpa_cliяк запропоновано тут: raspberrypi.org/forums/viewtopic.php?t=179387
iwillnot

34

Нещодавно я наткнувся на консольний додаток, який розбирає всю бездротову конфігурацію. Ви також можете використовувати цей інструмент для налаштування інтерфейсу LAN.

sudo apt-get install wicd-curses

Він встановить досить багато інших пакетів, але він працює у власному демоні на задньому плані. Це керує мережами та гарантує підключення до тих, що потрібно. Запустіть його:

sudo wicd-curses

Скріншот відьом-прокльонів

Якщо ви отримаєте повідомлення про те, що не виявлено мереж, натисніть кнопку P(має бути великою літерою, тому використовуйте [SHIFT] p) і введіть wlan0 у полі бездротового інтерфейсу та натисніть F10 для збереження.

  1. R оновити список.
  2. Використовуйте курсори на клавіатурі для навігації по списку вгору та вниз
  3. Натисніть праворуч, щоб налаштувати бездротове з'єднання
  4. Натисніть кілька разів і поставте прапорець "Автоматично підключитися до цієї мережі"
  5. Знову натисніть кілька разів і введіть свій пароль у ключовому полі
  6. Натисніть F10, щоб зберегти
  7. Почніть з 1, щоб зробити це ще раз для будь-яких інших мереж

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

Можливо, вам доведеться натиснути, Cщоб підключитися до точки доступу. Якщо ви були підключені по кабелю, це, швидше за все, знищить інтерфейс локальної мережі та підключить бездротовий зв'язок.

Він також управляє з’єднанням, тому він підключиться до будь-яких налаштованих точок бездротового доступу, якщо він випаде з будь-якої причини, але також спробує підключитися до будь-яких доступних мереж, як у Windows, Macintosh або Linux Desktop.

Сподіваюся, це допомагає!


2
цей тип інструменту - саме те, що я шукав. всю гнучкість, яку пропонує графічний інтерфейс, але замість нього термінал. Дякую!
FoamyGuy

Оновлення: Після цього я здійснив розширене сканування IP двох підмереж, і моя Rpi3 з'являється в обох. Цікаво, що коли я пішов інсталювати це спочатку, мені сказали, що я вже маю останню версію.
SDsolar

Одна незначна деталь: Щоб отримати додатковий діапазон, я використовую wlan1 із зовнішньою антеною, тому в прокльонах мені довелося зайти в префікси, щоб вказати цей адаптер. Не потрібно було відключати wlan0, але я все одно це робив з sudo ifcongig wlan0.
SDsolar

32

З Jessieвипуском програми Raspbian вам не доведеться редагувати interfaceфайл. Достатньо лише оновити wpa_supplicantфайл у кількох мережах. Ось як це виглядає -

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="SCHOOLS NETWORK NAME"
    psk="SCHOOLS PASSWORD"
    id_str="school"
}

network={
    ssid="HOME NETWORK NAME"
    psk="HOME PASSWORD"
    id_str="home"
}

Це працювало для мене, і мій wifi завжди підключений до списку доступних мереж, згаданих у вищевказаному файлі. Сподіваюся, це допомагає.


23

Насправді ви можете додати параметр пріоритету. Так:

network={
      ssid="open"
      key_mgmt=NONE
      id_str="open"
      priority=3
}

network={
        ssid="secure"
        key_mgmt=WPA-EAP
        proto=WPA2
        group=CCMP
        pairwise=CCMP
        eap=TLS
        ca_cert="/etc/certs/cacert.pem"
        client_cert="/etc/certs/client.pem"
        private_key="/etc/certs/client.key"
        private_key_passwd="somepwd"
        identity="me"
        priority=5
}

network={
        ssid="AndroidAP"
        key_mgmt=WPA-PSK
        proto=WPA2
        pairwise=CCMP
        group=CCMP
        psk="SomeP4ssw0rd"
        priority=4
}


network={
        ssid="Spooky"
        key_mgmt=NONE
        group=WEP104
        psk="A4ABC2FC27412D4D23CAEBCA23"
        priority=2
}

network={
        ssid="another"
        key_mgmt=WPA-PSK
        proto=WPA2
        pairwise=CCMP
        group=CCMP
        psk="A very long and secret passphrase here"
        priority=1
}

пріоритет: коли кілька мереж доступні одночасно, вибирається та, яка має найвище значення пріоритету.

id_str: для кожної мережі ви можете надати цьому параметру певне значення (рядок). Якщо нічого не передбачено, "текстовий рядок" використовується за замовчуванням. Цей рядок використовується в / etc / network / інтерфейсах як ідентифікатор віртуального інтерфейсу. Це дозволяє створити конкретні блоки конфігурації для кожної мережі. Єдина вимога - мати фізичний інтерфейс, використовуючи метод "inet manual" (це ОБОВ'ЯЗКОВО).


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

@ericmjl Він спробував жирний код, я його відредагую.
Патрік Кук

Чи є спосіб зробити це автоматично повторним переглядом і побачити, чи є мережа з більш високим пріоритетом і переключитися?
Міхал

@Michal Так, запустіть фоновий процес, який робить саме це.
les

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