複数のWiFiネットワークをセットアップする方法は?


113

私は、Piを使って家から学校に行き来します。私が使用していた本のwpa.conf代わりにwpa_supplicant.confウォークスルーを使用した代わりに、昨夜自宅でWiFiを動作させました。私は多くの人が使用しているように見えることに気づきましたがwpa_supplicant、理由はわかりません...

とにかく、ホームネットワークのWiFi IPを静的にする方法は知っていますが、学校のWiFiに自動接続するための設定を行い、そのネットワークに別の静的IPを使用するにはどうすればよいですか?

ネットワークのために私は別のものを追加しないnetwork={}私にwpa.confファイル?2番目の静的IPの場合、学校のネットワークにどのようにバインドしますか?

回答:


106

/etc/wpa_supplicant/wpa_supplicant.confを編集し、schools wpa infoの下にid_str = "school"を追加し、homes wpa infoの下にid_str = "home"を追加します。ファイルは次のようになります。

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

次に、iface school inet staticiface home inet staticを含む/ etc / network / interfacesを設定して、次のようにします。

これは、2015-05-05より前のRaspbian Wheezy(およびJessie)に適用されます。ネットワーク/ 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 14年

これが事実だとは思わない。

3
このアプローチは機能しますが、Piを再起動せずにWiFiを切り替えることは可能ですか?
MetalGodwin

2
id_str指定がない場合、値はになりますdefault
ラプター

1
@MetalGodwin wpa_cliここで提案されているように使用できます:raspberrypi.org/forums/viewtopic.php
t

34

私は最近、すべてのワイヤレス設定を完全に整理するコンソールアプリケーションに出会いました。このツールを使用して、LANインターフェイスを構成することもできます。

sudo apt-get install wicd-curses

他のかなりの数のパッケージをインストールしますが、バックグラウンドで独自のデーモンを実行します。これにより、ネットワークが管理され、必要なネットワークに確実に接続できます。以下で実行します:

sudo wicd-curses

wicd-cursesのスクリーンショット

ネットワークが検出されないというメッセージが表示されたらP(大文字である必要があるため、[SHIFT] pを使用)、ワイヤレスインターフェースフィールドにwlan0と入力し、F10を押して保存します。

  1. R リストを更新します。
  2. キーボードのカーソルを使用して、リストを上下に移動します
  3. 右を押してワイヤレス接続を設定します
  4. 数回押して、「このネットワークに自動的に接続する」をチェックします
  5. もう一度数回押して、キーフィールドにパスワードを入力します
  6. F10を押して保存します
  7. 1から開始して、他のネットワークでこれを再度行います。

ここに画像の説明を入力してください

Cアクセスポイントに接続するために押す必要がある場合があります。ケーブルで接続している場合、ほとんどの場合、LANインターフェイスが停止し、ワイヤレスが起動します。

また、接続を管理するので、何らかの理由でドロップアウトした場合、設定済みのワイヤレスアクセスポイントに再接続しますが、Windows、Macintosh、またはLinuxデスクトップのように、利用可能なネットワークへの接続も試みます。

それが役に立てば幸い!


2
このタイプのツールはまさに私が探していたものです。GUIによって提供されるすべての柔軟性が、代わりにターミナルです。ありがとうございました!
FoamyGuy

賛成票:これを実行した後、2つのサブネットの高度なIPスキャンを行い、両方のサブネットにRpi3が表示されます。興味深いことに、最初にこれをインストールしようとしたときに、すでに最新バージョンがインストールされていることがわかりました。
–SDsolar

1つの小さな詳細:余分な範囲を取得するには、外部アンテナでwlan1を使用しているため、呪いでは、そのアダプターを指定するために設定を行う必要がありました。wlan0をシャットダウンする必要はありませんでしたが、とにかくsudo ifcongig wlan0を停止して実行しました。
–SDsolar

32

Raspbian Jessieリリースでは、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 / interfacesで仮想インターフェイス識別子として使用されます。これにより、ネットワークごとに特定の構成ブロックを作成できます。唯一の要件は、「inet manual」メソッドを使用して物理インターフェースを持つことです(これは必須です)。


ここでもう一度確認すると、優先順位はアスタリスクで囲まれていますか?私が読んだことから、それらは二重アスタリスクで囲まれることになっていないが、私はここで間違っているかもしれない。
ericmjl

@ericmjl彼はコードを太字にしようとしました。編集します。
パトリッククック

自動的に再スキャンし、優先度の高いネットワークが利用可能かどうかを確認して切り替える方法はありますか?
ミハル

@Michalはい、まさにそれを実行するバックグラウンドプロセスを実行します。

@lesどのコマンドがどのように機能しますか?
ラッキードナルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.