/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
물리적 인터페이스당 하나의 구성만 지정할 수 있으므로 여기서 논리적 인터페이스가 작동합니다. 물리적 인터페이스에는 여러 논리적 인터페이스가 있을 수 있습니다. 이것을 매핑이라고 합니다. 논리적 인터페이스를 물리적 인터페이스에 매핑하려면 다음 위치에 추가하세요./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
그렇다면 필요한 것은 장치마다 다른 구성을 적용하는 것뿐입니다. 그러나 어쨌든 이것은 우리에게 효과적이었습니다. 왜 이런 일이 일어나는지 아시는 분은 댓글을 남겨주세요.