nmcli

nmcli는 NetworkManager의 상태를 조회하고 connection profile과 device를 관리하는 command-line client다. server와 script에서는 GUI 대신 일관된 profile 관리와 machine-readable 출력을 제공한다.

# Fedora, RHEL 계열
sudo dnf install NetworkManager
sudo apt update
 
# Debian, Ubuntu
sudo apt install network-manager
# /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: NetworkManager
 
sudo netplan apply
sudo systemctl enable --now NetworkManager
 
nmcli --version

NetworkManager는 Linux daemon이므로 macOS Homebrew와 Windows winget용 공식 package는 제공되지 않는다.

nmcli [OPTIONS] OBJECT { COMMAND | help }
  • nmcli [OPTIONS] OBJECT COMMAND [ARGUMENTS…]
  • general, networking, radio, connection, device, agent, monitor를 OBJECT로 사용한다.
  • -a, –ask: 누락된 필수 값이나 password를 대화형으로 묻는다. 비대화형 script에서는 사용하지 않는다.
  • -c, –colors auto|yes|no: 출력 색상을 제어한다.
  • -e, –escape yes|no: terse tabular 출력에서 colon과 backslash를 escape한다.
  • -f, –fields FIELD,…|all|common: 출력 field를 선택한다.
  • -g, –get-values FIELD,…|all|common: header 없이 값만 출력한다. -m tabular -t -f의 축약이다.
  • -m, –mode tabular|multiline: 표 또는 여러 줄 형식으로 출력한다.
  • -o, –overview: overview mode를 사용한다.
  • -p, –pretty: 사람이 읽기 쉬운 정렬과 header를 사용한다.
  • -s, –show-secrets: password 등 secret도 출력한다.
  • -t, –terse: script 처리에 적합한 간결한 출력을 사용한다.
  • -w, –wait SECONDS: 작업 완료를 기다리는 제한 시간을 지정한다.
  • -v, –version: version을 출력한다.
–show-secrets 출력은 terminal scrollback, log, pipe 대상에 credential을 노출할 수 있다. 일반 점검에서는 사용하지 않는다. Wi-Fi password를 command argument로 직접 넣으면 shell history와 process 목록에 노출될 수 있으므로 대화형 –ask 또는 제한된 권한의 passwd-file을 검토한다.
nmcli general status
nmcli networking connectivity
nmcli radio
nmcli connection show
nmcli connection show --active
nmcli device status
nmcli device show enp1s0

script에서는 표시용 column 순서에 의존하지 말고 field를 명시한다.

nmcli -t -f NAME,TYPE,DEVICE connection show --active
nmcli -g GENERAL.STATE general status
nmcli -g IP4.ADDRESS,IP4.GATEWAY device show enp1s0
  • nmcli connection show [PROFILE]: profile 목록 또는 상세 설정을 출력한다.
  • nmcli connection up PROFILE: profile을 활성화한다.
  • nmcli connection down PROFILE: active connection을 비활성화한다.
  • nmcli connection add type TYPE : 새 profile을 만든다.
  • nmcli connection modify PROFILE PROPERTY VALUE: profile 속성을 지속적으로 변경한다.
  • nmcli connection clone PROFILE NEW_NAME: profile을 복제한다.
  • nmcli connection edit PROFILE: 대화형 editor를 연다.
  • nmcli connection delete PROFILE: profile을 삭제한다.
  • connection monitor, reload, load, import, export도 기존 profile 감시와 file 입출력에 사용한다.
sudo nmcli connection add type ethernet ifname enp1s0 con-name lan-dhcp \
  ipv4.method auto ipv6.method auto
sudo nmcli connection up lan-dhcp

기존 기록의 nmcli connection up defaultnmcli connection up testing도 각각 해당 이름의 DHCP 또는 static profile이 이미 있을 때 활성화 명령으로 유효하다.

sudo nmcli connection add type ethernet ifname enp1s0 con-name lan-static \
  ipv4.method manual ipv4.addresses 192.0.2.10/24 \
  ipv4.gateway 192.0.2.1 ipv4.dns "192.0.2.53 192.0.2.54"
 
nmcli connection show lan-static
sudo nmcli connection up lan-static
sudo nmcli connection modify lan-static ipv4.dns "192.0.2.53 192.0.2.54"
sudo nmcli connection modify lan-static +ipv4.routes "198.51.100.0/24 192.0.2.1"
sudo nmcli connection modify lan-static connection.autoconnect yes
sudo nmcli connection up lan-static

+PROPERTY는 목록에 추가하고 -PROPERTY는 목록에서 제거한다. 접두사 없는 PROPERTY는 기존 값을 교체한다.

sudo nmcli connection modify "MyWiFi" connection.zone public
sudo nmcli connection up "MyWiFi"

이 명령은 기존 기록을 보존한 예제다. firewall-cmd –get-active-zones로 실제 적용 상태를 함께 확인한다.

  • device status: device 상태를 요약한다.
  • device show IFNAME: IP, route, DNS 등 device 상세 상태를 출력한다.
  • device connect IFNAME: 적합한 profile을 찾아 device 연결을 시도한다.
  • device disconnect IFNAME: device 연결을 끊고 자동 재연결을 막는다.
  • device reapply IFNAME: 변경된 active profile 일부를 device에 다시 적용한다.
  • device set IFNAME managed yes|no: NetworkManager의 관리 여부를 설정한다.
  • device modify IFNAME PROPERTY VALUE: active device에 임시 설정을 적용한다.
nmcli device status
nmcli device show enp1s0
sudo nmcli device reapply enp1s0
nmcli radio wifi
nmcli device wifi list
nmcli --ask device wifi connect "ExampleSSID"
nmcli connection show --active

hidden SSID나 특정 BSSID가 필요하면 nmcli device wifi connect help로 현재 version의 인자를 확인한다.

sudo nmcli connection edit lan-static

기존 nmcli editor 명령 기록

nmcli --help

  • NetworkManager is not running: systemctl status NetworkManager와 journal을 확인한다.
  • unmanaged: 다른 network service와 unmanaged 설정을 확인하고 nmcli device set IFNAME managed yes가 정책상 허용되는지 검토한다.
  • activation timeout: nmcli -w SECONDS connection up PROFILE로 제한 시간을 명시하고 DHCP, link, authentication journal을 확인한다.
  • 설정 file을 직접 편집했다면 sudo nmcli connection reload 후 profile을 다시 활성화한다.
  • codex:: 2026-07-19 기존 nmcli command와 switch 기록을 통합하고 상태 조회, profile, device, Wi-Fi, script와 보안 예제를 확장했다.
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/networkmanager/nmcli/ko.txt
  • 마지막으로 수정됨: 2026/07/19 13:17
  • (바깥 편집)