CentOS nmcli 명령어로 정적 ip (Static IP) 설정하기


RHEL/CentOS 7 이상부터는 nmcli 명령어 사용을 권장하고 있습니다.


TL;DR

다음 명령어로 네트워크 디바이스 이름을 알아냅니다. 

$ nmcli dev

DEVICE     TYPE      STATE         CONNECTION 
enp5s0f0   ethernet  connected     enp5s0f0   
enp5s0f1   ethernet  connected     enp5s0f1  


알아낸 디바이스 명(예: enp5s0f0) 에 다음과 같이 네트워크 정보를 설정합니다.

$ nmcli con mod  enp5s0f0 ipv4.address 192.168.129.150/24 \
		ipv4.gateway 192.168.129.2 \
		ipv4.dns 192.168.129.2 \
		ipv4.method manual connection.autoconnect yes


네트워크를 활성화합니다.

$ nmcli con up enp5s0f0


인터페이스 확인

리눅스 시스템에 부착된 모든 인터페이스를 확인하기 위해 con(nection) show 명령어를 사용합니다.

$ sudo nmcli con show

NAME    UUID                                  TYPE      DEVICE 
ens33   e31b4238-76fe-4199-a540-451d2f576934  ethernet  ens33  
virbr0  66469b6b-2c12-4d9d-b758-ce343d6fadc3  bridge    virbr0


위의 예에서 NAME 항목에 보이는 ens33 이 connection name 이며 ethernet device 입니다. 더 자세한 정보를 얻기 위해 con show 뒤에 connection name 인 ens33 을 지정합니다.

$ sudo nmcli con show ens33 
 Click here to expand...
$ sudo nmcli con show ens33 

connection.id:                          ens33
connection.uuid:                        e31b4238-76fe-4199-a540-451d2f576934
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              ens33
connection.autoconnect:                 yes
...
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         192.168.129.132/24



너무 많은 정보가 나오니까 현재 IP 설정을 알기 위해 grep 으로 필터링합니다.

$ sudo nmcli con show ens33  | grep -i ip[46]

IP4.ADDRESS[1]:                         192.168.129.132/24
IP4.GATEWAY:                            192.168.129.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.129.2, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.129.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.129.2
IP4.DOMAIN[1]:                          localdomain



정적 IP 설정

IP 를 설정하려면 con mod 명령어 뒤에 connection NAME (위에서는 "ens33") 을 적어주고 IP 와 Net Mask, gateway 를 명시합니다.


다음은 IP V4 를  192.168.129.150, Gate Way 를 192.168.129.2 로 설정하는 예입니다.

$ nmcli con mod ens33 ipv4.address 192.168.129.150/24 ipv4.gateway 192.168.129.2 ipv4.dns 192.168.129.2 ipv4.method manual


또는 아래처럼 나눠서 실행해도 됩니다.

$ nmcli con mod ens33 ipv4.address 192.168.129.150/24
$ nmcli con mod ens33 ipv4.dns 192.168.129.2
$ nmcli con mod ens33 ipv4.gateway 192.168.129.2
$ nmcli con mod ens33 ipv4.method manual



IPV6 를 사용할 경우 아래처럼 IPV6 주소를 지정해 주면 됩니다.

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


설정을 반영하려면 up 명령을 사용합니다.

$ nmcli con up ens33

DHCP 사용

DHCP 를 사용한다면 method 를 auto 로 설정합니다.

$ nmcli device modify "ens33" ipv4.method auto
$ nmcli device modify "ens33" ipv6.method auto



같이 보기


Ref