nmcli
nmcli는 NetworkManager의 상태를 조회하고 connection profile과 device를 관리하는 command-line client다. server와 script에서는 GUI 대신 일관된 profile 관리와 machine-readable 출력을 제공한다.
Installation
# 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는 제공되지 않는다.
Usage
nmcli [OPTIONS] OBJECT { COMMAND | help }
nmcli [OPTIONS] OBJECT COMMAND [ARGUMENTS…]general,networking,radio,connection,device,agent,monitor를 OBJECT로 사용한다.
Global Options
-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을 검토한다.
Status
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
Connection
주요 command
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 입출력에 사용한다.
DHCP profile
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 default와 nmcli connection up testing도 각각 해당 이름의 DHCP 또는 static profile이 이미 있을 때 활성화 명령으로 유효하다.
Static IPv4
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
Property 수정
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는 기존 값을 교체한다.
firewalld zone
sudo nmcli connection modify "MyWiFi" connection.zone public sudo nmcli connection up "MyWiFi"
이 명령은 기존 기록을 보존한 예제다. firewall-cmd –get-active-zones로 실제 적용 상태를 함께 확인한다.
Device
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
Wi-Fi
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의 인자를 확인한다.
Interactive Editor
sudo nmcli connection edit lan-static
Help
Troubleshooting
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을 다시 활성화한다.
See Also
History
- codex:: 2026-07-19 기존 nmcli command와 switch 기록을 통합하고 상태 조회, profile, device, Wi-Fi, script와 보안 예제를 확장했다.