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
너무 많은 정보가 나오니까 현재 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