[Linux] nmcli (네트워크설정)

모든 connection 표시

활성화된 내역만 표시하려면 --active 옵션을 추가합니다.

$ nmcli con show

NAME         UUID                                  TYPE      DEVICE 
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  ethernet  eth0   
ens3         522d46ea-91a5-4761-97f7-754afc9dda66  ethernet  --     

BashCopyBASH


ip 설정

con mod 명령어 뒤에 show 에서 표시되는 connection NAME (위에서는 "System eth0") 을 적어주고 IP 와 netmask, gateway 를 명시합니다.

IP V4

$ nmcli con mod "System eth0" ipv4.address 192.0.2.2/24 ipv4.gateway 192.0.2.254 ipv4.dns "8.8.8.8 168.126.63.1"

BashCopyBASH

IP V6

$ nmcli con mod "System eth0" ipv6.address 2001:db8:0:1::a00:1/64 ipv6.gateway 2001:db8:0:1::1

BashCopyBASH

DHCP 활성화

$ nmcli device modify "System eth0" ipv4.method auto
$ nmcli device modify "System eth0" ipv6.method auto

BashCopyBASH


부팅시 자동 활성화

nmcli con mod "System eth0" connection.autoconnect yes

BashCopyBASH


설정 상태 보기

$ nmcli device show "System eth0"

BashCopyBASH

설정 반영

$ systemctl restart NetworkManager.service

BashCopyBASH

개요

nmcli 는 커맨드에서 Network Manager 를 제어하거나 network 상태를 볼 수 있는 명령어로 다양하게 활용할 수 있는 유용한 명령어입니다.


사용법은 nmcli [OPTIONS] OBJECT {COMMAND} 의 문법을 사용하며 OBJECT 는 nmcli 로 실행할 action 을 의미합니다.


general, networking, radio 등의 OBJECT 가 있으며 축약해서 맨 앞자리 알파벳만 사용해도 됩니다.

즉 아래 2개는 동일한 명령어입니다.


$ nmcli general status

Plain textCopyCODE

$ nmcli g status

Plain textCopyCODE


OBJECT 별 상세 옵션을 보려면 --help 옵션을 추가하고 실행하면 됩니다.

$ nmcli general --help

Usage: nmcli general { COMMAND | help }

COMMAND := { status | hostname | permissions | logging }

  status

  hostname [<hostname>]

  permissions

  logging [level <log level>] [domains <log domains>]

Plain textCopyCODE


general 명령어

network 상태나 정보를 볼 수 있습니다.

$ nmcli general { status | hostname | permissions | logging } ARG

BashCopyBASH


현재 네트워크 상태를 보려면 status 옵션을 주거나 아예 생략하면 됩니다.

$ nmcli g st


STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

BashCopyBASH


hostname 옵션을 주면 현재 서버에 설정한 호스트 명을 알 수 있습니다.

$ nmcli g h

lesstif.com

BashCopyBASH


device 명령어

device 디바이스 상세 정보를 볼 수 있습니다.

nmcli device show

Plain textCopyCODE


networking 명령어

on/off 옵션으로 네트워크 매니저가 네트웍 관리 여부 설정

nmcli networking { on  | off | connectivity } ARG

Plain textCopyCODE


network off

원격으로 연결했을 경우 nmcli network off 를 실행하지 말 것.! RHEL/CentOS 8 network 설정 반영 참고

nmcli net off

Plain textCopyCODE



network on

nmcli net on

Plain textCopyCODE


radio

WIFI 를 on/off 할 수 있습니다.


nmcli radio wifi on

Plain textCopyCODE


connection 명령어


network 활성화

nmcli connection up 

Plain textCopyCODE

1. 시스템의 Wi-Fi 활성화 상태 확인


[root@p50 ~] # nmcli radio wifi

disabled


2. 시스템의 Wi-Fi 활성화


[root@p50 ~] # nmcli radio wifi on


3. 시스템의 Wi-Fi 활성화 상태 확인


[root@p50 ~] # nmcli radio wifi

enabled


4. 사용가능한 Wi-Fi AP 리스트 조회 하기


[root@p50 ~] # nmcli device wifi list

IN-USE SSID        MODE  CHAN  RATE    SIGNAL BARS SECURITY

AndroidHotspot0396 인프라  6    130 Mbit/s  100   ▂▄▆█ WPA2

GN-8-hotstop  인프라  9    130 Mbit/s  100   ▂▄▆█ WPA2

--          인프라 56   195 Mbit/s  92   ▂▄▆█ WPA2

WNet       인프라  56   195 Mbit/s  90   ▂▄▆█ WPA2

WGuest       인프라  56   195 Mbit/s  90   ▂▄▆█ --

WIFI-AP       인프라  1    195 Mbit/s  84   ▂▄▆█ WPA2

WGuest       인프라  1    195 Mbit/s  84   ▂▄▆█ --

Red_Hat_Guest    인프라  52    195 Mbit/s  84   ▂▄▆█ WPA2

WGuest       인프라  100   195 Mbit/s  84   ▂▄▆█ --



5. Wi-Fi AP 연결 하기


[root@p50 ~] # nmcli device wifi connect Red_Hat_Guest password <PASSWORD>


6. Wi-Fi AP 연결 확인


[root@p50 ~] # nmcli device wifi list

IN-USE SSID    MODE  CHAN RATE    SIGNAL BARS SECURITY

*    Red_Hat_Guest  인프라  52  195 Mbit/s  52   ▂▄__ WPA2


6. Wi-Fi AP 연결 상세확인(모든 필드 내용 확인하기)

[root@p50 ~] # nmcli -f all device wifi list

NAME  SSID    SSID-HEX    BSSID       MODE  CHAN FREQ   RATE    SIGNAL BARS SECURITY WPA-FLAGS RSN-FLAGS         DEVICE ACTIVE IN-USE DBUS-PATH

AP[1] Red_Hat_Guest  4D6372616E6574 00:EA:BD:D0:FC:22 인프라  52  5260 MHz 195 Mbit/s  52   ▂▄__ WPA2   (없음)   pair_ccmp group_ccmp psk wlp4s0 예    *     /org/freedesktop/NetworkManager/AccessPoint/2235


관련하여 nmcli의 Manual page등을 참조하시면 보다 다양한 옵션 및 정보를 확인 하실수 있습니다.


# man nmcli 또는 man nmcli-example을 참조하시면 보다 다양하고 상세한 가이드를 확인하실 수 있습니다.