명령줄을 사용하여 Linux에서 Wi-Fi와 이더넷 간의 자동 전환

명령줄을 사용하여 Linux에서 Wi-Fi와 이더넷 간의 자동 전환

Linux(Ubuntu 10.04)에서 Wi-Fi와 이더넷 간을 전환하고 싶습니다. 여러 가지 방법을 검색해 본 결과 유선 네트워크와 무선 네트워크 간의 자동 전환인 Firestarter를 사용하여 이를 수행할 수 있다는 것을 알았습니다.

이를 위해서는 Ubuntu에 Firestarter 패키지를 설치해야 합니다.

이것이 eth0과 wifi 사이를 전환하는 올바른 방법입니까? 새 패키지를 설치하지 않고 명령줄을 사용하여 구현하고 싶었습니다.

도와주세요. 미리 감사드립니다

답변1

Connman(1)유선 네트워크를 선호하고 유선 연결을 사용할 수 없을 때 무선에 자동 연결되도록 연결 우선 순위를 지정하는 데 사용할 수 있습니다. Intel에서 지원하므로 Intel이 아닌 네트워킹 하드웨어에 적대적일 수 있습니다. Connman(1)Wi-Fi 드라이버가 Intel에서 어댑터를 활성화할 것으로 예상하는 플래그를 설정하지 않기 때문에 사용할 수 없습니다 . "이동통신사 없음" 오류가 발생하고 Wi-Fi에 연결되지 않습니다. 그런데 유선으로 연결하니 금방 연결되는 것 같습니다.

/etc/connman/main.conf/main.conf 다음과 같이 구성해야 합니다 .

  BackgroundScanning = false
  DefaultAutoConnectTechnologies = ethernet,wifi 
  PreferredTechnologies = ethernet,wifi
  SingleConnectedTechnology = true

Wi-Fi 또는 이더넷만 연결되어 있는지 확인하세요. 그런 다음 connmanctl(1)매뉴얼 페이지에 표시된 대로 대화형 세션을 사용하여 처음으로 Wi-Fi에 연결하거나 에 있는 인터페이스에 대한 설정 파일을 편집합니다 /var/lib/connman(나에게는 더 쉬워 보이지만 다시 시작해야 함).connman-service.config(5)

해당 변형이 설치되어 있는 경우 ifupdown설치하기 전에 충돌을 피하기 위해 해당 변형을 제거할 수 있습니다.connman(1)

답변2

Wi-Fi 및 이더넷 연결 및 연결 해제 스크립트를 만들었습니다.

Wi-Fi 연결을 끊으세요.

killall wpa_supplicant
wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname down

Wi-Fi를 연결하세요

wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname up > /dev/null 2>&1 &
killall wpa_supplicant > /dev/null 2>&1 &
iwconfig $wirelessname power off > /dev/null 2>&1 &
wpa_passphrase $1 $2 > /root/wps.conf
wpa_supplicant -Dwext -i$wirelessname -c/root/wps.conf > /dev/null 2>&1 &
sleep 5
dhclient -r > /dev/null 2>&1 &
dhclient $wirelessname > /dev/null 2>&1 &

이더넷 연결

ifconfig $(ip link show | grep eth | grep state | awk '{printf $2}'| sed -e 's/:$//') up
ifconfig $(ifconfig | grep eth | awk '{print $1}'| head -1 ) $(ifconfig  | grep Bcast | awk '{printf $2}' | cut  -c6-) up

이더넷 연결 끊기

ifconfig $(ifconfig | grep eth | awk '{print $1}' | head -1 )  down 

관련 정보