/etc/network/interfaces
さまざまなアクセスポイントを検出し、それに応じて接続するように設定したいと思います。ファイルの現在の状態は次のとおりです。
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
auto ra0
iface ra0 inet dhcp
wpa-ssid MyNet
wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f
これにより、イーサネット接続が正常に検出され、可能であれば MyNet に接続されます。複数のアクセスポイントを検出するように設定するにはどうすればよいですか?
ここ答えのようですが、指示を理解できません。
さまざまなGUI(nm、wicdなど)を試してみましたが、どちらも私のラップトップで動作しないようです。とにかく、私はコマンドラインを介して実行することを好みます。
答え1
wpa_supplicant
複数のWi-Fi設定/SSIDを解決するには、そのレベルで作業することをお勧めします。
インターフェイスを次のようにしてください。
auto ra0
iface ra0 inet dhcp
wpa_supplicantをインストールします。
apt get install wpasupplicant
wpa_supplicant.conf
SSIDによって、どの構成が使用されるかを決定する複数の場所を定義できます。良い:
network={
ssid="ssid2"
psk="ssid2 PASSWORD"
}
network={
ssid="ssid1"
psk="ssid1 PASSWORD"
}
構成に新しいSSIDを追加するたびにサービスを再起動します。
AP に接続すると、wpa_supplicant
SSID 名に基づいて対応する設定が自動的に選択されます。
答え2
複数の場所で動作するように構成するには、/etc/network/interfaces
論理インターフェイスと物理インターフェイスの違いを理解する必要があります。物理インターフェイスは、システムにインストールされているハードウェアデバイスに対応し、特定の命名スキーム(wlan0、wlan1、eth0、ra0など)によって識別されます。
あなたの場合、/etc/network/interfaces
物理インターフェイスごとに1つの設定しか指定できないため、ここで論理インターフェイスが機能します。物理インターフェイスには複数の論理インターフェイスがあります。これをマッピングといいます。論理インターフェイスを物理インターフェイスにマッピングするには、次の場所に追加します。/etc/network/interfaces
mapping ra0 # map physical interface ra0...
map home work # ...to 'home' and 'work' logical interfaces
次に、各インターフェイスの設定を作成します。
iface home inet dhcp # configuration stanza for 'home' logical interface
wpa-ssid Home
wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f
iface work inet dhcp # configuration stanza for 'work' logical interface
wpa-ssid Work
wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f
もちろん、システムがどのインタフェースを使用すべきかわからないので、これはうまくいきません。したがって、guessnet
システムが設定を選択するのに役立つようにします。
sudo apt-get install guessnet
次に、guessnet
マッピングセクションで次を使用します。
mapping ra0
script /usr/sbin/guessnet-ifupdown # <-- We added this
map home work
Guessnet
特定の基準(IP、ESSID、MACアドレス)に対してネットワークをテストし、これらのテストに失敗しない構成を選択してこれを実行します。次の例では、ESSIDが「Work」のネットワークを使用できる場合、前に定義したインターフェースがra0
そのネットワークに接続され、この構成が適用されます。
iface work inet dhcp
test wireless essid Work # We test if the ESSID of the network is 'Work'
wpa-ssid Work
wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f
答え3
私たちの場合は、特定のデバイスに異なる無線LANを専用に使用したいと思います。このために、私たちはsystemdテンプレートを作成しました。
# cat /usr/lib/systemd/system/wpa_supplicant\@.service
[Unit]
Description=WPA supplicant for %i
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true
[Service]
ExecStart=/sbin/wpa_supplicant -s -O /run/wpa_supplicant-%i -c/etc/wpa_supplicant/wpa_supplicant-%i.conf -i%i
[Install]
WantedBy=multi-user.target
次に、次のように構成を作成します。
==> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <==
network={
ssid="net0"
psk="secretpass0"
}
==> /etc/wpa_supplicant/wpa_supplicant-wlan1.conf <==
network={
ssid="net1"
psk="secretpass1"
}
次のように起動します。
systemctl enable --now wpa_supplicant@wlan0
systemctl enable --now wpa_supplicant@wlan1
警告する:
奇妙なことに、私のサービスを無視して次から実行しているようですdhcpcd
。
# ps ax|grep wpa
653 ? Ss 0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
668 ? Ss 0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
# systemctl status 668
● dhcpcd.service - DHCP Client Daemon
Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/dhcpcd.service.d
└─wait.conf
Active: active (running) since Sat 2023-07-08 21:16:25 BST; 1min 23s ago
Docs: man:dhcpcd(8)
Process: 545 ExecStart=/usr/sbin/dhcpcd -w -q (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 1993)
Memory: 4.3M
CPU: 775ms
CGroup: /system.slice/dhcpcd.service
├─653 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
├─668 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
└─701 /usr/sbin/dhcpcd -w -q
たぶん、Debian Networking Stackはファイルを直接dhclient
サポートし、自動的に実行することができます(私の/ etc / network / interfaces *ファイルは空です)。wpa_supplicant-<device>.conf
その場合、必要なのはデバイスごとに異なる構成を適用することだけです。しかし、とにかくこれは私たちにとって効果的でした。なぜこれが起こるのかご存知の方はコメントを残してください。