Debian

為多個位置配置無線介面

  • February 1, 2022

我想配置我/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 等),但它們似乎都不能在我的筆記型電腦上執行。無論如何,我更喜歡通過命令行來完成。

為了配置/etc/network/interfaces為使用多個位置,您必須了解邏輯介面和物理介面之間的區別。物理介面對應於您在系統中安裝的硬體設備,它們由特定的命名方案(wlan0、wlan1、eth0、ra0 等)標識。

在您的/etc/network/interfaces中,您只能為每個物理介面指定一個配置,因此這就是邏輯介面發揮作用的地方。一個物理介面可以有多個邏輯介面。這稱為映射。要將邏輯介面映射到物理介面,請將其添加到/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

要解決多個 wifi 配置/ssid,您最好在該wpa_supplicant級別工作。

只需將您的界面保留為:

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 時,根據 SSID 名稱,wpa_supplicant自動選擇相應的配置。

引用自:https://unix.stackexchange.com/questions/367277