여러 위치에 대한 무선 인터페이스 구성

여러 위치에 대한 무선 인터페이스 구성

/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.confSSID에 따라 어떤 구성이 사용될지 결정하는 여러 위치를 정의할 수 있습니다 . 좋다:

network={
    ssid="ssid2"
    psk="ssid2 PASSWORD"
}

network={
    ssid="ssid1"
    psk="ssid1 PASSWORD"
}

구성에 새 SSID를 추가할 때마다 서비스를 다시 시작하십시오.

AP에 연결하면 wpa_supplicantSSID 이름을 기준으로 해당 구성이 자동으로 선택됩니다.

답변2

여러 위치에서 작동하도록 구성하려면 /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

답변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

어쩌면 데비안 네트워킹 스택이 파일을 직접 dhclient지원 하고 자동으로 수행할 수도 있습니다(내 /etc/network/interfaces* 파일은 비어 있음을 참고하세요). wpa_supplicant-<device>.conf그렇다면 필요한 것은 장치마다 다른 구성을 적용하는 것뿐입니다. 그러나 어쨌든 이것은 우리에게 효과적이었습니다. 왜 이런 일이 일어나는지 아시는 분은 댓글을 남겨주세요.

관련 정보