nmcli

From PGWiki
Revision as of 23:48, 26 May 2018 by Potatogim (talk | contribs) (일부 불필요한 개행 제거)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

nmcliNetworkManager의 명령줄 관리 도구다.

옵션

-t | --terse
간단한 형식으로 출력한다. 이 모드는 스크립트 처리를 위해 설계되어 이에 적합하다.
-p | --pretty
보기 좋게 꾸민 형식으로 출력한다. 헤더가 출력되고 값이 열 맞춤이 되는 등과 같이 사람이 읽기 편하도록 출력이 이루어진다.
-m | --mode {tabular | multiline}
표 형식 혹은 줄 단위 출력을 선택한다.
tabular
한 줄이 하나의 항목을 나타내는 테이블이 출력된다. 열들은 해당 항목의 특정 속성들을 정의한다.
multiline
각 항목들은 여러 줄로 이루어지고, 줄마다 각 속성이 출력된다. 속성 이름이 각 값들의 접두사로 붙는다.
생략될 경우, 대부분의 명령에서의 기본값은 표 형식(tabular) 출력이다. 한줄로 출력할 수 없는 더 구조화된 정보를 만들어내는 명령들에 대해서는 기본값은 줄 단위 출력이다. 현재는 다음과 같은 명령들이 여기에 해당한다:
-c | --colors {yes | no | auto}
이 옵션은 터미널 이스케이프 시퀀스를 사용하여 출력의 색상을 제어한다. yes는 색상을 표현하도록 하고, no는 색상없이 출력한다. auto는 표준 출력이 터미널로 보내질 때에만 색상을 표현한다. 기본값은 auto이다.
-f | --fields {field1,field2... | all | common}
이 옵션은 어떤 필드(열 이름)가 출력될 것인지를 지정하기 위해 사용된다. 유효한 필드 이름들은 각 명령마다 다르다. --fields 옵션에 유효하지 않은 값을 넘겨줌으로써 사용 가능한 필드들을 나열할 수 있다. all은 명령의 모든 유효한 필드 값들을 출력하기 위해 사용된다. common은 명령의 일반적인 필드 값들을 출력하기 위해 사용된다.
생략될 경우 기본값으로 common이 사용된다.
-g | --get-values {field1,field2... | all | common}
이 옵션은 지정된 필드로부터 값을 출력하기 위해 사용된다. 기본적으로 --mode tabular --terse --fields의 축약형이며 특정 필드에 대한 값들을 편리하게 조회하는 방법 중 하나다. 이 값들은 헤더가 없이 한 줄당 하나씩 출력된다.
-e | --escape {yes | no}
간략화된 표 형식 출력 모드에서 : 혹은 \ 문자를 이스케이프할 것 인지 아닌지를 나타낸다. 이스케이프 문자열은 \이다.
생략될 경우 기본값은 yes다.
-a | --ask
이 옵션이 사용되면 nmcli는 누락된 필수 인자들이 있는 경우 동작을 일시적으로 중단하고 사용자에게 누락된 인자를 묻는다. 따라서 스크립트와 같이 비-대화형 처리를 목적으로 하는 경우에는 이 옵션을 사용하지 않아야 한다. 이 옵션은 네트워크에 연결하는 동안에 암호가 필요한 경우 이를 묻는 메시지가 표시될지를 제어한다.
-s | --show-secrets
이 옵션이 사용되면 nmcli는 명령의 출력에 포함될 수도 있는 암호와 보안 정보를 표시하게 된다. 또한 사용자가 입력하는 패스워드를 보여지게 한다.
-w | --wait seconds
이 옵션은은 nmcli가 NetworkManager가 명령을 마칠 때까지 대기하는 만료 시간을 설정한다. 특이 연결 활성화와 같이 완료까지의 시간이 많이 걸리는 명령에 대해 유용하다.
--complete-args
이 옵션은 마지막 인자에 대해 완성될 수 있는 목록을 나열한다. 이 옵션은 셸에서 인자 완성을 구현할 때 유용하다.
종료 상태는 성공을 나타내며, 65가 반환될 경우에는 마지막 인자가 파일 이름임을 나타낸다.
NetworkManager는 GNU Bash에 대해 명령 자동 완성을 포함한다.
-v | --version
nmcli의 버전을 출력한다.
-h | --help
도움말을 출력한다.

사용 가능한 명령들과 용례

agent

nmcli를 NetworkManager 보안 에이전트[1] 혹은 폴킷(polkit, PolicyKit) 에이전트로 구동한다.

보안 에이전트(secret agent)
프로그램 구동 중에 암호와 같은 보안 정보를 사용자에게 물어 보거나, 키링을 검색하는 프로그램

all

NetworkManager의 시크릿/폴킷 에이전트 모두로써 구동한다.

polkit

nmcli를 사용자 세션과 인가(Authorization) 요청 청취를 위한 폴킷 에이전트로 등록한다. 일반적으로는 필요하지 않은 명령인데, 이는 nmcli가 NetworkManager의 명령과 관련된 폴킷 동작을 제어할 수 있기 때문이다. 하지만, 단순 텍스트 기반의 폴킷 에이전트를 구동하길 원하거나 데스크탑 환경의 에이전트가 없는 경우에 유용할 수 있다. 이 명령을 실행하는 것은 NetworkManager와 관계된 폴킷 요청 뿐만이 아니라 모든 폴킷 요청을 nmcli가 제어하게 되는 것을 유의해야 하는데, 이는 단일 세션에 대해 하나의 폴킷 에이전트만이 동작할 수 있기 때문이다.

secret

nmcli를 보안 요청 청취를 위한 보안 에이전트로 등록한다. 일반적으로는 필요하지 않은 명령인데, 이는 nmcli가 네트워크에 연결할 때 보안 요청을 처리할 수 있기 때문이다. 하지만, 사용할 수 있는 보안 에이전트가 없는 상태에서 연결을 활성화하기 위한 (nm-applet과 같은) 다른 도구를 사용할 때에 유용할 수 있다.

connection

nmcli connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} [ARGUMENTS...]

NetworkManager는 어떻게 네트워크를 만들고 연결할 지에 대한 데이터의 집합(2계층 상세 정보 등)인 모든 네트워크 설정을 "연결"이라는 개념으로 저장한다. 장치가 네트워크를 만들거나 연결되기 위한 연결의 설정을 사용할 때 이 연결은 "활성"된다. 하나의 장치에 적용되는 다수의 연결들이 있을 수도 있지만, 어떤 경우에라도 이들 중 하나에 대해서만 활성된다. 다른 부가적인 연결들은 각기 다른 네트워크와 설정들 사이의 전환이 빠르게 적용될 수 있도록 하기 위해 사용이 가능하다.

어떤 머신이 평소에는 DHCP가 가능한 네트워크에 연결되지만, 간혹 테스트를 목적으로 정적 IP 주소를 사용하는 네트워크에 연결된다고 가정하자. 네트워크를 변경할 때마다 eth0를 수동으로 설정하는 대신에 하나는 DHCP(default라는 이름의 기본 연결), 하나는 정적 주소 설정(testing이라는 이름의 테스트 연결)이 모두 eth0에 적용된 2개의 네트워크 설정으로 저장될 수 있다. 사용자가 DHCP가 가능한 네트워크에 연결하기 위해서는 nmcli connection up default를 실행하고, 정적 네트워크에 연결하기 위해서는 nmcli connection up testing를 실행함으로써 간편하게 네트워크 전환이 이루어진다.

show

nmcli connection show [--ᅟactive] [--order [+-]category:...]

디스크 혹은 메모리 상의 연결 프로파일들을 나열한다. 일부는 장치가 해당 연결 프로파일을 사용하고 있다면 활성될 수도 있다. 매개 변수가 없는 경우, 모든 프로파일이 나열된다. --active 옵션이 지정되면 활성된 프로파일만 보여진다.

임의 정렬된 연결들의 목록을 얻기 위해서 --order 옵션이 사용될 수 있다. 이 연결 목록은 활성 상태(active), 이름(name), 유형(type) 혹은 D-Bus 경로(path)를 기준으로 정렬될 수 있다. 기준에 따른 정렬 순서가 동일한 경우에는, 추가 기준이 적용될 수 있다. 기본 정렬 순서는 --order:active:name:path이다. + 혹은 접두사가 없는 것은 오름차순(알파벳 순서 혹은 숫자)을 나타내며, -는 내림차순을 나타낸다. 기준 표기는 --order -a:na와 같이 축약하여 표현될 수 있다.


nmcli connection show [--ᅟactive] [id | uuid | path | apath] ID...

지정된 연결에 대한 상세한 정보를 보여준다. 기본적으로, 정적 연결과 활성 연결이 모두 표시된다. --active 옵션이 지정되면, 활성화된 프로파일들만 보여진다. 해당 프로파일과 관련된 보안들을 표시하기 위해서는 --show-secrets 전역 옵션을 사용한다.


ID가 애매모호한 경우에는 id, uuid, path, apath 키워드를 사용할 수 있다. 보조 ID 지정 키워드들은 다음과 같다:

id
연결의 이름을 나타내는 식별자
uuid
연결의 UUID를 나타내는 식별자
path
/org/freedesktop/NetworkManager/Settings/num 혹은 num의 형식으로 표현되는 D-Bus 정적 연결 경로를 나타내는 식별자
apath
/org/freedesktop/NetworkManager/ActiveConnection/num 혹은 num의 형식으로 표현되는 D-Bus 활성 연결 경로를 나타내는 식별자


--fields 전역 옵션을 사용하여 출력을 필터할 수 있으며, 다음과 같은 값들이 사용된다:

profile
정적 프로파일 설정만 보여준다.
active
활성된 프로파일 설정만 보여준다.

또한 특별한 필드들을 지정할 수도 있다. 정적 설정에 대해 nm-settings의 매뉴얼 페이지에서 서술하는 설정과 속성명을 사용한다. 활성 데이터에 대해서는 GENERAL, IP4, DHCP4, IP6, DHCP6, VPN의 값들을 사용한다.

nmcli connection에 대해 아무런 명령이 주어지지 않는다면 기본 동작은 nmcli connection show가 된다.

add

nmcli connection add [save {yes | no}] {option value | [+|-]settings.property value} ...

지정된 속성들을 사용하여 새로운 연결을 만든다.

새로 생성될 연결에 대한 속성과 속성값 쌍들을 지정해야 한다. nm-settings의 매뉴얼을 통해 자세한 내용을 참고할 수 있다. 또한 #속성 별칭 절에서 설명하는 별칭(alias)들을 사용할 수 있다. 이 문법은 nmcli connection modify 명령에서와 동일하다.

유효한 연결을 만들기 위해선 connection.type 속성(혹은 type 별칭을 사용하는)을 알려진 NetworkManager 연결 유형 중 하나로 지정을 해야 한다.

  • ethernet
  • wifi
  • wimax
  • pppoe
  • gsm
  • cdma
  • infiniband
  • bluetooth
  • vlan
  • bond
  • bond-slave
  • team
  • team-slave
  • bridge
  • bridge-slave
  • vpn
  • olpc-mesh
  • adsl
  • tun
  • ip-tunnel
  • macvlan
  • vxlan
  • dummy

보편적인 사용은 #예제 절에 설명이 되어 있다.


속성과 값들 외에도 특별한 두 가지의 옵션이 허용된다:

save
NetworkManager가 생성될 연결을 디스크에 저장할 것인지를 나타낸다. (기본값은 yes)
--
단일 매개 변수가 발견되면 무시한다. 이는 이전 버전의 nmcli와의 호환성을 위한 것이다.

up

nmcli connection up [id | uuid | path] ID [ifname ifname] [ap BSSID] [passwd-file file]

연결을 활성화한다. 연결은 이름, UUID 혹은 D-Bus 경로로 지정될 수 있다. ID가 애매모호할 경우, id, uuid, path 키워드를 사용할 수 있다. 특정 장치에 대해 연결을 활성화하도록 요청할 때, 인터페이스 이름을 지정하는 ifname 옵션이 주어져야 한다. ID가 주어지지 않는다면 ifname이 주어져야 하며, NetworkManager는 주어진 ifname에 대해서 가장 적합한 사용 가능한 연결을 활성화할 것이다. VPN 연결에 대해, ifname 옵션은 기본 연결의 장치를 지정한다. ap 옵션은 Wi-Fi 연결을 위해 사용될 특정 AP를 지정한다.

--wait 옵션이 지정되지 않으면, 기본 만료 시간은 90초가 될 것이다.

ID 지정 키워드의 설명은 connection show 절을 참고하자.


가능한 옵션은 다음과 같다.

ifname
활성화를 위해 사용될 인터페이스
ap
Wi-Fi 연결을 위해 사용될 AP의 BSSID
passwd-file
몇몇 네트워크들은 활성화를 위해 자격 증명(credential)을 요구할 수도 있다. 이 옵션을 통해서 이러한 자격 증명을 지정할 수 있다. 지정되는 파일의 각 줄은 아래와 같은 형식으로 하나의 암호를 포함해야 한다.
setting_name.property_name:the password
예를 들어, PSK 방식의 WPA Wi-Fi 네트워크 인증을 위해서는
802-11-wireless-security.psk:secret12345
802.1X 패스워드의 경우
802-1x.password:my 1X password
또한 nmcli는 802-11-wireless-security 대신에 wifi-sec와 wifi 문자열을 받는다. NetworkManager가 암호를 요구하고 그 암호가 주어지지 않는다면, nmcli--ask 옵션과 함께 실행되었을 때에 이를 묻는다. 다른 보안 에이전트(일반적으로 nm-applet, gnome-shell과 같은 GUI 보안 에이전트)가 실행 중이라면 NetworkManager는 이 보안 에이전트에 암호를 묻는다.

down

nmcli connection down [id | uuid | path | apath] ID...

장치의 자동 활성화를 막지 않고 장치로부터의 연결을 비활성화하단. 다수의 연결들이 명령에 전달될 수 있다.

이 명령은 지정된 활성 연결을 비활성화하지만 활성화되었던 해당 연결의 장치는 여전히 연결될 준비가 된 상태이고 'autoconnect' 플래그가 설정된 연결을 찾아서 자동 활성화가 될 수 있음을 주의하자. 여기에는 비활성화된 연결만 포함된다. 따라서 해당 연결이 자동 연결이 활성화되었다면 연결 해제된 장치 상에서 다시 자동으로 시작된다.

대부분의 경우 device disconnect 명령이 대신 사용될 것이다.

연결은 이름, UUID 혹은 D-Bus 경로로 식별된다. ID가 애매모호한 경우, id, uuid, path, apath 키워드가 사용될 수 있다.

ID 지정 키워드에 대한 자세한 설명은 connection show 절을 참고하자.

--wait 옵션이 지정된 경우, 기본 만료 시간은 10초가 된다.

edit

nmcli connection edit {[id | uuid | path] ID [type type] [con-name name] }

대화형 편집기를 사용하여 존재하는 연결을 편집하거나 새로운 연결을 추가한다.

존재하는 연결은 이름, UUID 혹은 D-Bus 경로를 통해 식별된다. ID가 애매모호한 경우에는 id, uuid, path 키워드가 사용될 수 있다. ID 지정 키워드의 설명에 대해서는 connection show 절을 참고하자. ID를 제공하지 않는 것은 새로운 연결이 추가된다는 것을 의미한다.

대화형 편집기는 연결의 편집을 좀 더 쉽게할 수 있도록 하며, 단순한 메뉴 기반의 인터페이스를 통해 필요에 따라 연결의 매개 변수들을 변경할 수 있도록 한다. 이 편집기는 어떤 설정과 속성들이 수정될 수 있는지를 표시하며, 인라인 도움말을 제공한다.

가능한 옵션들은 다음과 같다:

type
새로운 연결의 유형; 유효한 유형은 connection add 명령에서 설명하는 바와 동일하다.
con-name
새로운 연결의 이름. 이는 추후 편집기를 통해 변경될 수 있다.

모든 NetworkManager 설정들과 속성 이름들과 그에 대한 설명은 nm-settings 매뉴얼을 참고하자. nmcli-examples의 매뉴얼을 통해 예시 편집기 세션을 참고할 수 있다.

modify

nmcli connection modify [--temporary] [id | uuid | path] ID {option value | [+|-]setting.property value}...

연결 프로파일의 속성들을 추가, 수정 혹은 제거한다.

속성 이름과 그 값을 지정하여 속성을 설정한다. 빈 값("")은 속성 값을 제거한다.

속성 외에도, 일부 속성들의 축약 이름을 사용할 수 있다. 자세한 내용은 #속성 별칭 절을 참고하자.

기존 값에 항목을 추가하고자 하는 경우에는 속성 이름에 + 접두사를 사용하고, 컨테이너 유형의 속성에서 하나의 값을 제거하는 경우에는 - 접두사를 속성 이름에 지정한 후 0부터 시작되는 제거될 항목의 색인이나 값(혹은 명명 옵션을 사용한 속성에 대한 옵션 이름)을 value로 지정한다. +-를 사용한 수정은 ipv4.dns, ipv4.addresses, bond.options 등과 같이 다중 값(컨테이너) 속성에 대해서만 실질적으로 적용된다.

설정 및 속성 이름들과 이에 대한 설명 혹은 기본값은 nm-settings 매뉴얼을 참고하자. settingproperty가 애매모호하지 않은 경우에는 축약될 수 있다.

delete

nmcli connection delete [id | uuid | path] ID...

설정된 연결을 삭제한다. 삭제될 연결은 이름, UUID 혹은 D-Bus 경로를 통해 식별된다. ID가 애매모호한 경우, id, uuid, path 키워드를 사용할 수 있다. ID 지정 키워드에 대한 자세한 설명은 connection show를 참고하자.

--wait 옵션이 지정되지 않은 경우에 기본 만료 시간은 10초가 된다.

clone

nmcli connection clone [--temporary] [id | uuid | path] ID new_name

연결을 복제한다. 복제될 연결은 이름, UUID 혹은 D-Bus 경로를 통해 식별된다. ID가 애매모호한 경우에는 id, uuid, path 키워드가 사용될 수 있다. ID 지정 키워드에 대한 자세한 설명은 connection show 절을 참고하자. new_name은 새로 복제될 연결의 이름이다. 새로운 연결은 connection.id(new_name)connection.uuid(생성됨) 속성을 제외하고는 모두 동일하게 복사된다.

--temporary 옵션이 지정되지 않는다면 새로운 연결 프로파일은 영구적으로 저장된다. 지정되는 경우, NetworkManager가 재시작되면 복제했던 새로운 프로파일이 사라질 것이다.

monitor

nmcli connection monitor [id | uuid | path] ID...

연결 프로파일의 변경을 감시한다. 이 명령은 지정된 연결이 변경될 때마다 문자열 줄을 출력한다. 감시될 연결은 이름, UUID 혹은 D-Bus 경로를 통해 식별된다. ID가 애매모호한 경우에는 id, uuid, path 키워드가 사용될 수 있다. ID 지정 키워드에 대한 자세한 설명은 connection show 절을 참고하자.

별도로 연결이 지정되지 않는다면 모든 연결 프로파일에 대해 감시를 한다. 이 명령은 모든 감시될 연결들이 사라지는 경우에 종료된다. 연결의 생성을 감시하고 싶은 경우에는 nmcli monitor 명령을 사용하여 전역적으로 감시하는 방법이 있다.

load

nmcli connection load filename...

하나 이상의 연결에 대한 파일들을 디스크로부터 읽어서 구성/재구성을 한다. 수동으로 연결에 대한 설정 파일을 수정한 후에 이 명령을 수행하면 NetworkManager가 최신 상태를 인식하는 것을 확인할 수 있다.

reload

nmcli connection reload

모든 연결 파일들을 디스크로부터 읽어와 재구성을 한다. NetworkManager는 기본적으로 연결 파일들의 변화는 감시하지 않는다. 따라서 연결 프로파일들이 변경되었을 때 이를 NetworkManager가 디스크로부터 다시 읽어오도록 하기 위해서는 이 명령을 사용할 필요가 있다. 하지만 자동 재구성이 활성화된 경우에는 NetworkManager가 변경을 감시하여 언제든지 연결 파일들을 재구성하게 된다. (NetworkManager.conf의 monitor-connection-files=true)

export

nmcli connection export [id | uuid | path] ID [file]

연결 설정을 내보낸다.

현재는 VPN 연결에 대해서만 지원된다. nmcli를 통해 연결이 내보내지므로 적절한 VPN 플러그인이 설치되어 있어야 한다. file이 지정되지 않으면 VPN 설정 정보가 표준 출력으로 출력된다.

import

nmcli connection import [--temporary] type type file file

외부 설정으로부터 NetworkManager 연결 프로파일을 가져온다. 입력 파일의 유형은 type 옵션으로 지정된다.

현재는 VPN 설정만 지원한다. 이 설정은 NetworkManager의 VPN 플러그인을 통해 가져오게 된다. type 값들은 nmcli connection add 에서의 vpn-type 옵션과 동일하다. VPN 플러그인을 통해 가져오므로 nmcli가 데이터를 가져올 수 있도록 적절한 VPN 플러그인이 설치되어 있어야 한다.

--temporary 옵션이 지정되지 않는다면 가져온 연결 프로파일은 영구적으로 저장되며, 이 경우 NetworkManager가 재시작한 후에는 가지고 온 새로운 프로파일은 없어지게 된다.

device

nmcli device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} [ARGUMENTS]

네트워크 인터페이스를 관리하고 보여준다.

status

nmcli device status

장치의 상태를 출력한다.

nmcli device에 명령이 지정되지 않았을 때의 기본 동작이다.

show

nmcli device show [ifname]

장치들에 대한 자세한 정보를 보여준다. 인자가 없는 경우, 모든 장치들이 보여진다. 지정한 장치에 대한 정보를 얻기 위해서는 인터페이스 이름이 제공되어야 한다.

set

nmcli device set [ifname] ifname [autoconnect {yes | no}] [managed {yes | no}]

장치 속성을 설정한다.

connect

nmcli device connect ifname

장치를 연결한다. NetworkManager는 활성화될 적절한 연결을 찾게 된다. 이 명령은 자동 연결로 설정되지 않은 연결도 고려한다.

--wait 옵션이 지정되지 않았을 때의 기본 만료 시간은 90초가 된다.

reapply

nmcli device reapply ifname

현재 활성 연결에 대해 마지막 적용 이후의 변경 사항으로 장치를 갱신한다.

modify

nmcli device modify ifname {option value | [+|-]setting.property value}...

현재 장치에서 활성화된 설정을 변경한다.

이 명령은 활성화된 특정 장치의 설정을 일시적으로 변경한다. 이 변경은 연결 프로파일에 유지되지 않는다.

nm-settings 매뉴얼을 통해 사용 가능한 속성들의 목록을 참고하자. 이미 연결된 장치들에 대한 일부 속성들은 변경될 수 없음을 유의하자.

또한 #속성 별칭 절에서 설명하는 별칭들을 사용할 수도 있다. 이는 nmcli connection modify 명령과 동일한 문법을 사용한다.

disconnect

nmcli disconnect ifname

장치의 연결을 해제하고 그 장치가 사용자/수동 개입 없이 자동으로 활성화되는 것을 방지한다. 소프트웨어 장치의 연결 해제는 해당 장치가 사라지는 것을 의미함을 참고하자.

--wait 옵션이 지정되지 않았을 때의 기본 만료 시간은 10초가 된다.

delete

nmcli device delete ifname...

장치를 제거한다. 이 명령은 시스템으로부터 인터페이스를 제거한다. 또한 이 명령은 본드(bond), 브릿지(bridge), 팀(team) 등의 소프트웨어 장치에 대해서만 동작함에 유의하자. (이더넷과 같은) 하드웨어 장치는 이 명령을 통해 제거할 수 없다.

--wait 옵션이 지정되지 않았을 때의 기본 만료 시간은 10초가 된다.

monitor

nmcli device monitor [ifname...]

장치의 변경을 감시한다. 이 명령은 지정된 장치의 상태가 변경될 때마다 문자열 줄을 출력한다.

인터페이스가 지정되지 않는 경우에는 모든 장치들을 감시한다. 모든 지정된 장치들이 없어질 경우에는 감시를 종료한다. 장치의 추가를 감시하고 싶은 경우에는 nmcli monitor 명령을 사용하여 전역적으로 감시하는 방법이 있다.

lldp

  • list

wifi

  • connect
  • hotspot
  • list
  • rescan

general

nmcli general {status | hostname | permissions | logging} [ARGUMENTS...]

이 명령은 NetworkManager의 상태와 권한을 보여준다. 시스템 호스트명, NetworkManager 로깅 수준과 도메인을 변경하거나 확인할 수 있다.

status

nmcli general status

NetworkManager의 전반적인 상태를 보여준다. 이 명령은 nmcli general에 대한 추가 명령이 없을 때의 기본 동작이다.

hostname

nmcli general hostname [hostname]

시스템 호스트명을 가져오거나 변경한다. 인자가 없는 경우에는 현재 설정된 호스트명을 출력한다. 호스트명을 전달했을 때에는 그 호스트명이 NetworkManager에 전달이 되며, 새로운 시스템 호스트명으로 설정될 것이다.

"시스템" 호스트명이라는 용어는 다른 프로그램이나 도구에서 "영구적" 혹은 "정적"으로 참조되기도 한다. 대부분의 배포판에서 호스트명은 /etc/hostname 파일에 저장된다. 예를 들어, systemd-hostnamed 서비스는 "정적" 호스트명이라는 용어를 사용하고 프로세스가 시작될 때 /etc/hostname 파일만을 읽는다.

permissions

nmcli general permissions

네트워킹 활성/비활성, Wi-Fi 변경, WWAN 상태, 연결 수정 등과 같이 NetworkManager가 제공하는 다양한 인증된 명령에 대하여 이 명령의 호출 사용자가 갖는 권한을 보여준다.

logging

nmcli general logging [level level] [domains domains...]

NetworkManager의 로깅 수준과 도메인을 얻거나 변경한다. 인자가 없는 경우에는 현재 로깅 수준과 도메인을 보여준다. 로깅 상태를 변경하기 위해서는, level이나 그와 함께 domain 매개변수을 제공한다. 사용 가능한 수준과 도메인 값들에 대해서는 NetworkManager.conf를 참고하자.

monitor

nmcli monitor

NetworkManager의 활동을 감시한다. 연결 상태, 장치 혹은 연결 프로파일의 변화를 감시한다.

특정 장치 혹은 연결에 대한 변화를 감시하기 위해서는 nmcli connection monitornmcli device monitor를 참고하자.

networking

nmcli networking {on | off | connectivity} [ARGUMENTS...]

NetworkManager 네트워킹 상태를 질의하거나 네트워킹을 활성화/비활성화한다.

on, off

nmcli networking {on | off}

NetworkManager에 의한 네트워킹 제어를 활성/비활성한다. NetworkManager에 의해 관리되는 모든 인터페이스들은 네트워킹이 비활성화될 때 같이 비활성화된다.

connectivity

nmcli networking connectivity [check]

네트워크 연결 상태를 가져온다. 부수적인 check 인자를 전달하면 NetworkManager에게 연결 상태를 재검사하도록 요청하고, 이외에는 재검사 없이 가장 최근의 연결 상태가 보여진다.

가능한 상태들은 다음과 같다:

none
호스트가 어떤 네트워크와도 연결되어 있지 않음
portal
호스트가 폐쇄된 포털 뒤에 있고, 완전히 인터넷에 접근할 수 없음
limited
호스트가 네트워크에 연결되어 있지만 인터넷에 접근할 수 없음
full
호스트가 네트워크에 연결되어 있고 완전히 인터넷에 접근할 수 있음
unknown
연결 상태를 알 수 없음

radio

all

  • on
  • off

wifi

  • on
  • off

wwan

  • on
  • off

예제

nmcli -t -f RUNNING general
NetworkManager가 동작 중인지 아닌지를 알린다.


nmcli -t -f STATE general
NetworkManager의 전반적인 상태를 보여준다.


nmcli radio wifi off
Wi-Fi를 끈다.


nmcli connection show
NetworkManager가 관리하는 모든 연결들을 나열한다.


nmcli -p -m multiline -f all con show
모든 설정된 연결들을 줄 단위 모드로 출력하여 보여준다.


nmcli connection show --active
현재 활성화된 모든 연결들을 나열한다.


nmcli -f name,autoconnect c s
모든 연결 프로파일의 이름과 자동 연결 속성을 보여준다.


nmcli -p connection show "My default em1"
"My default em1" 연결 프로파일의 상세한 정보를 보여준다.


nmcli --show-secrets connection show "My Home WiFi"
"My Home WiFi" 연결 프로파일에 대한 상세 정보를 모든 암호와 함께 보여준다. --show-secrets 옵션이 없다면 보안 정보는 보여지지 않게 된다.
nmcli -f active connection show "My default em1"
"My default em1" 활성 연결에 대해 IP, DHCP 정보와 같은 상세 정보를 보여준다.


nmcli -f profile con s "My wired connection"
"My wired connection"이라는 이름의 연결 프로파일의 상세한 정적 설정을 보여준다.


nmcli -p con up "My wired connection" ifname eth0
eth0 인터페이스 상에서 "My wired connection"이라는 이름의 연결 프로파일을 활성화한다. -p 옵션은 nmcli가 활성화의 진행 상태를 보여주도록 한다.


nmcli con up 6b028a27-6dc9-4411-9886-e9ad1dd43761 ap 00:3A:98:7C:42:D3
UUID가 6b028a27-6dc9-4411-9886-e9ad1dd43761인 Wi-Fi 연결을 BSSID가 00:3A:98:7C:42:D3인 AP에 연결한다.


nmcli device status
모든 장치의 상태를 보여준다.


nmcli dev disconnect em2
em2 인터페이스의 연결을 해제하고 이 장치가 자동 연결될 수 없도록한다. 결과적으로 'autoconnect'가 설정되어 있거나 사용자가 수동으로 연결을 활성화하지 않는 한, 이 장치에 대한 연결을 자동으로 활성화되지 않는다.


nmcli -f GENERAL,WIFI_PROPERTIES dev show wlan0
wlan0 인터페이스에 대한 상세 정보를 보여준다; GENERAL, WIFI-PROPERTIES 절에 대한 정보만 보여진다.


nmcli -f CONNECTIONS device show wlp3s0
wlp3s0 인터페이스에 대해 사용 가능한 모든 연결 프로파일을 보여준다.


nmcli dev wifi
NetworkManager가 알고 있는 사용 가능한 Wi-Fi 액세스 포인트를 나열한다.


nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"
"My cafe"라는 이름의 새로운 연결을 생성한 뒤에 SSID가 "Cafe Hotspot 1"인 AP에 연결한다. 또한 연결에 필요한 암호로 "caffeine"를 사용한다.
이 예시는 "Cafe Hotspot 1"에 처음으로 연결할 때에 유용하다. 이후로는 이미 존재하는 연결 프로파일을 사용할 수 있기 때문에 nmcli con up id "My cafe" 명령을 사용하면 되며, 동일한 연결 프로파일이 새로 만들어지지 않게 된다.


nmcli -s dev wifi hotspot con-name QuickHotspot
핫스팟 프로파일을 만들고 여기에 연결한다. 다른 장치에서 이 핫스팟에 연결하기 위한 암호가 출력되며, 이를 사용해서 연결을 해야 한다.


nmcli dev modify em1 ipv4.method shared
em1 장치를 사용하는 IPv4 연결 공유를 시작한다. 장치가 연결 해제되면 공유가 자동으로 해제된다.


nmcli dev modify em1 ipv6.address 2001:db8::a:bad:c0de
장치에 일시적으로 IP 주소를 추가한다. 해당 장치에 대한 연결이 다시 활성화되면 이 주소는 제거된다.


nmcli connection add type ethernet autoconnect no ifname eth0
비대화형 방식으로 동적 IP 설정(DHCP) 방식으로 eth0 인터페이스의 이더넷 연결을 추가하고, 연결의 autoconnect 플래그를 비활성화 한다.


nmcli c a ifname Maxipes-fik type vlan dev eth0 id 55
비대화형 방식으로 ID 55를 갖는 VLAN 연결을 추가한다. 연결은 eth0를 사용하고 Maxipes-fik라는 이름의 VLAN 인터페이스가 추가된다.


nmcli c a ifname eth0 type ethernet ipv4.method disabled ipv6.method link-local
비대화형 방식으로 eth0 이더넷 인터페이스를 사용하고 IPv6 링크 로컬 주소를 갖도록 설정된다.


nmcli connection edit ethernet-em1-2
존재하는 "ethernet-em1-2" 연결을 대화형 편집기를 통해 수정한다.


nmcli connection edit type ethernet con-name "yet another Ethernet connection"
새로운 이더넷 연결을 대화형 편집기를 통해 추가한다.


nmcli con mod ethernet-2 connection.autoconnect no
'ethernet-2' 연결의 'connection' 설정에서 'autoconnect' 속성을 비활성화 하도록 수정한다.


nmcli con mod "Home Wi-Fi" wifi.mtu 1350
'Home Wi-Fi' 연결의 'wifi' 설정에서 'mtu' 속성을 1350으로 수정한다.


nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.23/24 192.168.1.1, 10.10.1.5/8, 10.0.0.11"
em1-1 프로파일의 정적 주소를 설정한다.


nmcli con modify ABC +ipv4.dns 8.8.8.8
ABC 프로파일에서 구글 공개 DNS 서버의 주소를 DNS 서버로 추가한다.


nmcli con modify ABC -ipv4.addresses "192.168.100.25/24 192.168.1.1
ABC 프로파일에서 지정된 정적 IP 주소를 제거한다.


nmcli con import type openvpn file ~/Downloads/frootvpn.ovpn
OpenVPN 설정을 NetworkManager로 가져온다.


nmcli con export corp-vpnc /home/joe/corpvpn.conf
표준 시스코 VPN 설정(vpnc)에 따른 corp-vpnc라는 이름의 VPN 프로파일을 NetworkManager에서 가져와 /home/joe/corpvpn.conf 파일로 내보낸다.

각주