데비안이 설치된 노트북이 있습니다. 네트워크는 NetworkManager를 통해 구성됩니다. 이제는 때때로 장치를 유선 이더넷 포트에 연결한 다음 무선으로 연결하고 싶습니다. 지금까지는 매우 좋았습니다. 이더넷 포트를 무시하려면 먼저 NetworkManager를 수동으로 종료해야 합니다. 그렇지 않으면 이더넷 포트를 구성하려고 시도하여 필요한 정적 주소를 방해하게 됩니다. 지금 내 질문은 다음과 같습니다. dbus 명령을 사용하여 NetworkManager에 일정 기간 동안 eth0을 무시해야 한다고 지시하려면 어떻게 해야 합니까? 그러다가 관리해?
답변1
답변2
긴 이야기 짧게
nmcli device set eth0 managed false
.
.
.
nmcli device set eth0 managed true
참고: 루트일 필요는 없습니다.
네트워크 관리자
오래되었지만 이것은 여전히 매우 좋은 질문이며 답변은 수년에 걸쳐 변경되었습니다. 다행히도 이제는 훨씬 쉬워졌습니다. 이 nmcli
명령은 명령줄에서 Network Manager를 제어하고 특정 인터페이스가 관리되지 않는 상태로 유지되어야 함을 알리는 데 사용할 수 있습니다.
nmcli device set eth0 managed false
Network Mangler가 인터페이스 관리를 다시 시작하도록 하려면 반대 명령을 실행하면 됩니다.
nmcli device set eth0 managed true
다음을 입력하여 컴퓨터의 다양한 네트워크 인터페이스(네트워크 관리자는 이를 "장치"라고 함)의 상태를 볼 수 있습니다 nmcli devices
.
$ nmcli device
DEVICE TYPE STATE CONNECTION
wlan0 wifi connected Mother Brain (66GHz)
p2p-dev-wlan0 wifi-p2p disconnected --
eth1 ethernet unavailable --
enx00505b01d4d3 ethernet unavailable --
eth0 ethernet unmanaged --
lo loopback unmanaged --
nmcli 사용법
nmcli에는 명령줄에서 -h를 사용하여 언제든지 검색할 수 있는 뛰어난 사용 정보가 있습니다. 예를 들어:
$ nmcli device set -h
Usage: nmcli device set { ARGUMENTS | help }
ARGUMENTS := DEVICE { PROPERTY [ PROPERTY ... ] }
DEVICE := [ifname] <ifname>
PROPERTY := { autoconnect { yes | no } |
{ managed { yes | no }
Modify device properties.
탭 완성 기능을 활성화한 경우 apt install bash-completion
nmcli의 상황에 맞는 완성 기능이 매우 유용합니다. 예를 들어, 설정하려는 장치의 이름이 기억나지 않는 경우 nmcli device set
TAB을 두 번 입력하고 누르면 모든 가능성을 볼 수 있습니다. 또한 시간과 오타도 절약됩니다. 내 컴퓨터에 입력할 수 있습니다.
nmcli device set enx
탭을 클릭하면 완료됩니다.
nmcli device set enx00505b01d4d3
답변3
안타깝지만 그건 불가능합니다. 이것D 버스 API모든 유형의 무선 장치를 비활성화할 수 있지만 유선 장치는 비활성화할 수 없습니다. 유선 연결을 비활성화하는 유일한 방법은 비활성화하는 것입니다.모두무선 장치를 포함한 장치.
아마도유선 장치의 경우 "자동 연결" 상자를 선택 취소하면 도움이 됩니다. 이렇게 하면 NetworkManager가 자동으로 연결되지 않습니다.
답변4
nmcli
맨페이지에서 찾은 내용입니다 . 이것이 어떤 배포판에서 작동하는지 모르겠지만 사용하고 있습니다Ubuntu 12.04 LTS
이는 장치의 연결이 끊어진 것으로 표시되므로 네트워크 관리자의 제어를 받지 않습니다.
nmcli dev disconnect iface eth0
케이블을 뽑지 않는 한 괜찮습니다.
다음을 통해 장치 상태를 확인할 수 있습니다.
nmcli dev status
현재 다음 기관과 활성 링크가 설정되어 있습니다.
nmcli con status
이 도우미 스크립트를 만들었습니다.nm-manual-interface
#!/bin/bash
DEV=${1:-help}
shift
OPER=${1:-manual}
shift
if [ "$DEV" == "help" ]; then
echo -n "$0 "
cat <<'EOH';
<DEV> [manual|auto]
Change <DEV> to disconnected state for nm.
In short take manual control of <DEV>.
All changes are temporary.
Usage:
Change to manual:
EOH
echo $0 eth0 manual
echo
echo Change back to nm control:
echo $0 eth0 auto
echo
exit 1
fi
# store last uuid of device here
LASTUUIDFILE="/tmp/.nm-last-uuid-${DEV}"
if [ "$OPER" == "manual" ]; then
if [ -n "$DEV" ] ; then
UUIDNET=$(nmcli con status |grep "$DEV" | perl -anle 'print @F[1]')
if [ -n "$UUIDNET" ]; then
echo "$UUIDNET" > $LASTUUIDFILE
nmcli dev disconnect iface "$DEV"
fi
fi
fi
if [ "$OPER" == "auto" ]; then
if [ -f "$LASTUUIDFILE" ]; then
nmcli con up uuid $(cat "$LASTUUIDFILE") --nowait
rm "$LASTUUIDFILE"
else
echo No last-state uuid file for iface "$DEV"
fi
fi