유선 일 때 자동으로 wifi (무선)를 비활성화 하시겠습니까?


25

유선 이더넷 케이블을 연결할 때마다 Wi-Fi / 무선 연결을 자동으로 비활성화하는 가장 좋은 방법은 무엇입니까? 나중에 전선을 뽑을 때 다시 활성화하고 싶습니다.

또한 유선 연결을 다른 무선 사용자 (또는 그 반대)와 공유하기도합니다. 어떻게 든 이러한 설정을 면제 할 수 있다면 좋을 것입니다.

NetworkManager를 사용하는 11.10 Oneiric을 사용하고 있습니다.

답변:


30

다음 스크립트는 /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired주로 작동합니다. 무선으로 유선 공유하거나 그 반대로 공유하려는 경우에도 무선을 비활성화합니다.

이렇게하려면 터미널에서 다음 명령을 실행하십시오.

sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired

그리고 다음 코드를 텍스트 편집기에 붙여 넣습니다.

#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2

release=$(lsb_release -s -c)
case ${release} in
    trusty|utopic) nmobj=nm;;
    *) nmobj=radio;;
esac

case ${IFACE} in
    eth*|usb*|en*)
        case ${ACTION} in
            up)
                log "disabling wifi radio"
                nmcli "${nmobj}" wifi off
                ;;
            down)
                log "enabling wifi radio"
                nmcli "${nmobj}" wifi on
                ;;
        esac
        ;;
esac

그런 다음 저장하고 종료하십시오.

NetworkManager 매뉴얼 페이지에 설명 된대로 스크립트에서 다음 조건을 참고 하십시오 .

각 스크립트는 다음과 같아야합니다.

  • 일반 파일
  • 루트 소유
  • 그룹이나 다른 사람이 쓸 수없는
  • set-uid가 아닌
  • 소유자가 실행할 수 있습니다.

nmcli radio wifi off(또는 nmcli nm wifi off이전 버전의 NetworkManager) 대신 이 있습니다 rfkill block wifi. 그러나 rfkill대신에를 사용 하면 nmcli최신 버전의 NetworkManager가 부팅 중에 Wi-Fi를 다시 켭니다.


스크립트가 원하는 구성을 어떻게 알 수 있습니까? rfkill unblock wifi연결 한 후 eth0공유하고 싶을 rfkill block wifi때 왜 아무도하지 않습니까?
waltinator

@waltinator : 연결이되면 NetworkManager는 CONNECTION_UUID해당 연결의 식별자로 명명 된 환경 변수를 설정 합니다. 스크립트가 "표준"유선 연결을 선언했지만 eth0다른 연결로 활성화 된 경우 활성화 된 상태로 WiFi를 비활성화하는 것과 같은 작업을 수행 할 수 있다고 생각했습니다 . 나는 그것을 시도하지 않았으므로 그것이 작동하는지 모른다. 그러나 수동으로 제어하는 ​​것에 대한 요점은 좋은 것입니다.
Richard Hansen

1
사용 eth0|usb0)도 / 비활성화 USB 테 더링이 비활성화 / 활성화 될 때 무선 랜을 활성화합니다.
krlmlr

1
가장 유용한! rfkill을 사용하는 대신 nmcli nm wifi off및 명령을 사용했습니다 nmcli nm wifi on. 그러나 nmcli 명령이 더 낫다고 믿는 특별한 이유는 없습니다. 방금 NetworkManager 방식으로 모든 것을하고 싶었습니다.
Jesse Hallett

3
udev197부터 "예측 가능한 네트워크 인터페이스 이름"[1]이 도입되었으므로 switch 문은 "eth * | usb * | en *)"로 표시되어야합니다. 따라서 네트워크 카드의 이름은 eno1 / ens1이며 유사하며 이전 eth * 및 usb * 이름과 일치하지 않습니다. [1] freedesktop.org/wiki/Software/systemd/…
doublehelix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.