nmcli - NetworkManager 명령행 도구
nmcli는 NetworkManager를 명령행에서 제어할 수 있는 도구입니다.ifcfg 계열 명렁어들은 10버전에서는 더 이상 지원하지 않습니다. 대안으로 ip 명령어와 함께 nmcli 를 사용하셔야 합니다.
기본 사용법
네트워크 상태 확인
전체 상태 확인
NetworkManager 상태 확인
# NetworkManager 전체 상태
nmcli general status
# 간단한 상태 확인
nmcli디바이스 정보 확인
네트워크 디바이스 확인
# 모든 디바이스 목록
nmcli device
# 특정 디바이스 상세 정보
nmcli device show eno1
# 디바이스 상태만 확인
nmcli device status연결 프로파일 확인
연결 프로파일 관리
# 모든 연결 프로파일 확인
nmcli connection show
# 활성 연결만 확인
nmcli connection show --active
# 특정 필드만 출력
nmcli -f device,name connection show네트워크 연결 관리
유선 네트워크 설정
정적 IP 설정
정적 IP 설정
# 새 연결 프로파일 생성
nmcli connection add \
type ethernet \
con-name "static-connection" \
ifname eno1 \
ip4 192.168.1.100/24 \
gw4 192.168.1.1
# DNS 서버 추가
nmcli connection modify static-connection ipv4.dns "8.8.8.8 8.8.4.4"
# 연결 활성화
nmcli connection up static-connectionDHCP 설정
DHCP 설정
# DHCP 연결 생성
nmcli connection add \
type ethernet \
con-name "dhcp-connection" \
ifname eno1
# 연결 활성화
nmcli connection up dhcp-connection무선 네트워크 설정
WiFi 관리
WiFi 네트워크 관리
# WiFi 어댑터 활성화
nmcli radio wifi on
# 사용 가능한 WiFi 네트워크 스캔
nmcli device wifi list
# WiFi 네트워크에 연결
nmcli device wifi connect "SSID_NAME" password "PASSWORD"
# WiFi 연결 프로파일 생성
nmcli connection add \
type wifi \
con-name "my-wifi" \
ifname wlan0 \
ssid "SSID_NAME" \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "PASSWORD"연결 프로파일 수정
기본 설정 수정
연결 프로파일 수정
# IP 주소 변경
nmcli connection modify example_profile ipv4.addresses 192.168.1.200/24
# 게이트웨이 변경
nmcli connection modify example_profile ipv4.gateway 192.168.1.1
# DNS 서버 변경
nmcli connection modify example_profile ipv4.dns "1.1.1.1,8.8.8.8"
# DHCP 방식으로 변경
nmcli connection modify example_profile ipv4.method auto인터페이스 바인딩 설정
인터페이스 바인딩 관리
# 특정 인터페이스에 바인딩 해제
nmcli connection modify example_profile connection.interface-name ""
# 여러 인터페이스에 매칭 설정
nmcli connection modify example_profile match.interface-name "provider0 eno5"
# 단일 인터페이스에 매칭 설정
nmcli connection modify example_profile match.interface-name "provider0"연결 활성화/비활성화
연결 제어
# 연결 활성화
nmcli connection up example_profile
# 연결 비활성화
nmcli connection down example_profile
# 연결 자동 시작 설정
nmcli connection modify example_profile connection.autoconnect yes고급 사용법
본딩(Bonding) 설정
네트워크 본딩 설정
# 본딩 인터페이스 생성
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
# 슬레이브 인터페이스 추가
nmcli connection add type ethernet slave-type bond con-name bond0-slave1 ifname eno1 master bond0
nmcli connection add type ethernet slave-type bond con-name bond0-slave2 ifname eno2 master bond0
# 본딩에 IP 설정
nmcli connection modify bond0 ipv4.addresses 192.168.1.100/24
nmcli connection modify bond0 ipv4.gateway 192.168.1.1
nmcli connection modify bond0 ipv4.method manual
# 본딩 활성화
nmcli connection up bond0브리지(Bridge) 설정
브리지 네트워크 설정
# 브리지 인터페이스 생성
nmcli connection add type bridge con-name br0 ifname br0
# 브리지에 포트 추가
nmcli connection add type ethernet slave-type bridge con-name bridge-slave-eno1 ifname eno1 master br0
# 브리지에 IP 설정
nmcli connection modify br0 ipv4.addresses 192.168.1.100/24
nmcli connection modify br0 ipv4.method manual
# 브리지 활성화
nmcli connection up br0VLAN 설정
VLAN 설정
# VLAN 인터페이스 생성
nmcli connection add type vlan con-name vlan100 ifname eno1.100 dev eno1 id 100
# VLAN에 IP 설정
nmcli connection modify vlan100 ipv4.addresses 192.168.100.10/24
nmcli connection modify vlan100 ipv4.method manual
# VLAN 활성화
nmcli connection up vlan100문제 해결
네트워크 디버깅
네트워크 문제 진단
# 로그 확인
journalctl -u NetworkManager
# 상세 로그 활성화
nmcli general logging level DEBUG
# 연결 문제 해결
nmcli connection reload
nmcli device reapply eno1
# 네트워크 재시작
systemctl restart NetworkManager설정 백업 및 복원
설정 관리
# 연결 프로파일 삭제
nmcli connection delete connection-name
# 설정 파일 위치
ls /etc/NetworkManager/system-connections/
# 프로파일 내보내기 (수동으로 파일 복사)
cp /etc/NetworkManager/system-connections/connection-name.nmconnection /backup/실제 사용 예제
기존 시스템의 네트워크 인터페이스 정보:
시스템 네트워크 인터페이스 예제
[root@hpe-navix9 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 48:df:37:6b:95:4c brd ff:ff:ff:ff:ff:ff
altname enp93s0f0
3: eno6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 48:df:37:6b:95:4d brd ff:ff:ff:ff:ff:ff
altname enp93s0f1위 시스템에서 eno6 인터페이스를 사용하여 네트워크를 설정하는 예제:
실제 시스템 설정 예제
# eno6 인터페이스에 정적 IP 설정
nmcli connection add type ethernet con-name "eno6-static" ifname eno6 \
ip4 192.168.1.100/24 gw4 192.168.1.1
# DNS 서버 설정
nmcli connection modify eno6-static ipv4.dns "8.8.8.8,8.8.4.4"
# 연결 활성화
nmcli connection up eno6-static
# 연결 상태 확인
nmcli connection show eno6-static