Jak skonfigurować wiele sieci WiFi?


113

Chodzę tam iz powrotem z domu do szkoły z moim Pi. Właśnie wczoraj wieczorem uruchomiłem WiFi w domu, wpa.confzamiast tego, wpa_supplicant.confże książka, z której korzystałem, miała w zamian za to przejście. Zauważyłem, że wiele z nich korzysta, wpa_supplicantale nie jestem pewien, dlaczego ...

W każdym razie wiem, jak ustawić statyczny adres IP Wi-Fi dla mojej sieci domowej, ale jak skonfigurować automatyczne łączenie się z moją szkolną siecią Wi-Fi i użyć innego statycznego adresu IP dla tej sieci?

Czy dla sieci po prostu dodaję inny plik do network={}mojego wpa.confpliku? W przypadku drugiego statycznego adresu IP jak powiązać to z siecią szkolną?

Odpowiedzi:


106

Edytuj /etc/wpa_supplicant/wpa_supplicant.conf i dodaj id_str = "szkoła" w ramach informacji o szkołach wpa i id_str = "home" w obszarze informacji o wpa swoich domów. Twój plik powinien teraz wyglądać podobnie do tego:

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"
}

Następnie skonfiguruj / etc / network / interfaces z iface school inet static i iface home inet static w nim, aby wyglądało to tak:

Dotyczy to Raspbian Wheezy przed 2015-05-05 dla późniejszych (i Jessie) Zobacz Jak skonfigurować sieć / WiFi / Statyczne 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>

Warto zauważyć: jeśli dobrze rozumiem dokumentację, aby skorzystać z tego podejścia, musisz mieć właściwość i id_str KAŻDEJ sieci w pliku wpa_supplicant.conf. W przeciwnym razie to nie zadziała. Czy możesz potwierdzić?
PICyourBrain

Nie sądzę, żeby tak było.
les

3
To podejście działa jednak, czy można przełączyć WiFi bez konieczności restartowania Pi?
MetalGodwin

2
Jeśli nie id_strpodano, wartość będzie default.
Raptor

1
@MetalGodwin Możesz używać wpa_clizgodnie z sugestią tutaj: raspberrypi.org/forums/viewtopic.php?t=179387
iwillnot

34

Niedawno natknąłem się na aplikację konsolową, która rozwiązuje całą konfigurację bezprzewodową. Możesz także użyć tego narzędzia do skonfigurowania interfejsu LAN.

sudo apt-get install wicd-curses

Zainstaluje jeszcze kilka innych pakietów, ale w tle uruchamia własnego demona. To zarządza sieciami i zapewnia połączenie z tymi, które chcesz. Uruchom z:

sudo wicd-curses

Zrzut ekranu przekleństw wicd

Jeśli pojawi się komunikat informujący, że nie wykryto sieci, naciśnij P(musi być duże, więc użyj [SHIFT] p) i wpisz wlan0 w polu interfejsu bezprzewodowego i naciśnij F10, aby zapisać.

  1. R aby odświeżyć listę.
  2. Użyj kursorów na klawiaturze, aby poruszać się w górę i w dół listy
  3. Naciśnij w prawo, aby skonfigurować połączenie bezprzewodowe
  4. Naciśnij kilka razy i zaznacz „Automatycznie połącz z tą siecią”
  5. Naciśnij jeszcze kilka razy i wpisz hasło w polu klucza
  6. Naciśnij F10, aby zapisać
  7. Zacznij od 1, aby zrobić to ponownie dla innych sieci

wprowadź opis zdjęcia tutaj

Być może trzeba będzie nacisnąć, Caby połączyć się z punktem dostępu. Jeśli byłeś podłączony kablem, najprawdopodobniej zabije to interfejs LAN i przyniesie połączenie bezprzewodowe.

Zarządza także połączeniem, więc połączy się z dowolnym skonfigurowanym punktem dostępu bezprzewodowego, jeśli z jakiegokolwiek powodu przestanie działać, ale spróbuje także połączyć się z dowolną dostępną siecią, tak jak w Windows, Macintosh lub Linux Desktop.

Mam nadzieję, że to pomoże!


2
tego typu narzędzie było dokładnie tym, czego szukałem. cała elastyczność oferowana przez GUI, ale zamiast tego terminal. Dziękuję Ci!
FoamyGuy

Upvote: Po uruchomieniu tego zrobiłem Zaawansowane skanowanie IP dwóch podsieci i moje Rpi3 pokazuje się na obu z nich. Co ciekawe, kiedy początkowo zdecydowałem się na zainstalowanie tego, powiedział mi, że mam już najnowszą wersję.
SDsolar

Jeden drobny szczegół: Aby uzyskać dodatkowy zasięg, używam wlan1 z anteną zewnętrzną, więc w przekleństwach musiałem przejść do prefs, aby określić ten adapter. Nie trzeba było wyłączać wlan0, ale i tak zrobiłem z sudo ifcongig wlan0.
SDsolar

32

W Jessiewersji Raspbian nie musisz edytować interfacepliku. Wystarczy aktualizacja wpa_supplicantpliku w wielu sieciach. Oto jak to wygląda -

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"
}

To działało dla mnie, a moje wifi jest zawsze podłączone do listy dostępnych sieci wymienionych w powyższym pliku. Mam nadzieję, że to pomoże.


23

W rzeczywistości możesz dodać opcję priorytetu. Tak jak:

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
}

priorytet: gdy dostępnych jest wiele sieci jednocześnie, wybierana jest ta o najwyższym priorytecie.

id_str: dla każdej sieci możesz nadać temu parametrowi określoną wartość (ciąg znaków). Jeśli nie zostanie podany żaden, jako ciąg tekstowy zostanie użyty „default”. Ten ciąg jest używany w / etc / network / interfaces jako identyfikator interfejsu wirtualnego. Umożliwia to tworzenie określonych bloków konfiguracji dla każdej sieci. Jedynym wymogiem jest posiadanie interfejsu fizycznego przy użyciu metody „inet manual” (jest to MUSI).


Wystarczy podwójnie sprawdzić tutaj, czy priorytet jest ujęty w gwiazdki? Z tego, co przeczytałem, nie powinny być ujęte w podwójne gwiazdki, ale mogę się tutaj mylić.
ericmjl

@ericmjl Próbował pogrubić kod, zmodyfikuję go.
Patrick Cook

Czy istnieje sposób na automatyczne ponowne skanowanie i sprawdzenie, czy dostępna jest sieć o wyższym priorytecie i zmiana?
Michał

@Michal Tak, uruchom proces w tle, który właśnie to robi.
les

@les Jak to by działało, które polecenie?
luckydonald
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.