프린트 하기 URL 복사

OS 환경 : Oracle Linux 10.3 (64bit)

 

방법 : Oracle Linux 10 nmcli 명령으로 IP 확인 및 변경 방법

본문에서는 리눅스 10 환경에서 nmcli 명령을 이용하여 현재 IP 정보를 확인하고 IP, Gateway, DNS 등을 변경하는 방법을 설명함
리눅스 10에서 NetworkManager를 사용하는 경우 nmcli 명령으로 네트워크 설정을 확인하거나 변경할 수 있음

 

 

테스트
현재 네트워크 인터페이스 상태 확인

1
2
3
4
# nmcli device
DEVICE  TYPE      STATE                   CONNECTION
ens160  ethernet  connected               ens160
lo      loopback  connected (externally)  lo

 

 

현재 활성화된 Connection 정보 확인

1
2
3
4
# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens160  bf692b3a-e8df-32e9-aee2-0f53bcd8564f  ethernet  ens160
lo      85741310-09a6-4293-9a35-5c8433126d5e  loopback  lo

IP 변경 시 DEVICE 이름이 아닌 Connection NAME을 사용하기때문에 먼저 nmcli connection show 명령으로 이름을 확인하는 것이 좋음

 

 

현재 IP 정보 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a8:10:28 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx005056a81028
    inet 192.168.137.163/24 brd 192.168.137.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
 
# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.163  netmask 255.255.255.0  broadcast 192.168.137.255
        ether 00:50:56:a8:10:28  txqueuelen 1000  (Ethernet)
        RX packets 2279  bytes 148604 (145.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2379  bytes 281031 (274.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 89  bytes 8159 (7.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 89  bytes 8159 (7.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

현재 ip는 192.168.137.163임

 

 

참고로 특정 인터페이스만 확인하려면 아래와 같이 수행하면됨

1
2
3
4
5
6
7
# ip addr show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a8:10:28 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx005056a81028
    inet 192.168.137.163/24 brd 192.168.137.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever

 

 

nmcli 명령으로 상세 정보 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# nmcli device show ens160
GENERAL.DEVICE:                         ens160
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:A8:10:28
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.137.163/24
IP4.GATEWAY:                            192.168.137.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.137.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.137.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             168.126.63.1
IP6.GATEWAY:                            --

 

 

IP, Gateway, DNS 정보만 확인하려면 아래와 같이 수행

1
2
3
4
# nmcli -g IP4.ADDRESS,IP4.GATEWAY,IP4.DNS device show ens160
192.168.137.163/24
192.168.137.1
168.126.63.1

 

 

아래 정보로 IP 변경
IP : 192.168.137.164
Subnet : /24
Gateway : 192.168.137.1(현재와 동일)
DNS : 8.8.8.8
Connection Name : ens160

 

 

IP 설정

1
2
3
4
5
#
nmcli connection modify ens160 ipv4.method manual
nmcli connection modify ens160 ipv4.addresses 192.168.137.164/24
nmcli connection modify ens160 ipv4.gateway 192.168.137.1
nmcli connection modify ens160 ipv4.dns 8.8.8.8

 

 

한 번에 설정하려면 아래와 같이 수행 가능함

1
# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.137.164/24 ipv4.gateway 192.168.137.1 ipv4.dns 8.8.8.8

 

 

설정 적용

1
2
# nmcli connection up ens160
(연결 끊김)

 

 

새 ip로 접속 후 확인

1
2
3
4
5
6
7
# ip addr show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a8:10:28 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx005056a81028
    inet 192.168.137.164/24 brd 192.168.137.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever

정상적으로 변경됨

 

 

게이트웨이 확인

1
2
3
# ip route
default via 192.168.137.1 dev ens160 proto static metric 100
192.168.137.0/24 dev ens160 proto kernel scope link src 192.168.137.164 metric 100

 

 

nmcli 설정값 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# nmcli connection show ens160 | grep ipv4
ipv4.method:                            manual
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.137.164/24
ipv4.gateway:                           192.168.137.1
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.replace-local-rule:                -1 (default)
ipv4.dhcp-send-release:                 -1 (default)
ipv4.routed-dns:                        -1 (default)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-dscp:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname-deprecated:     yes
ipv4.dhcp-send-hostname:                -1 (default)
ipv4.forwarding:                        -1 (default)
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.dhcp-ipv6-only-preferred:          -1 (default)
ipv4.link-local:                        0 (default)
ipv4.dhcp-reject-servers:               --
ipv4.auto-route-ext-gw:                 -1 (default)
ipv4.shared-dhcp-range:                 --
ipv4.shared-dhcp-lease-time:            0 (default)

 

 

DNS 여러 개 설정
아래와 같이 공백으로 구분하여 여러 DNS를 설정할 수 있음

1
# nmcli connection modify ens160 ipv4.dns "168.126.63.1 8.8.8.8"

 

 

적용

1
# nmcli connection up ens160

 

 

DNS 확인

1
2
3
# nmcli device show ens160 | grep DNS
IP4.DNS[1]:                             168.126.63.1
IP4.DNS[2]:                             8.8.8.8

 

 

DHCP로 변경

1
# nmcli connection modify ens160 ipv4.method auto

 

 

기존에 입력한 고정 IP, Gateway, DNS 정보도 제거

1
2
3
4
#
nmcli connection modify ens160 ipv4.addresses ""
nmcli connection modify ens160 ipv4.gateway ""
nmcli connection modify ens160 ipv4.dns ""

 

 

적용

1
# nmcli connection up ens160

 

 

결론 :
이전버전에서는 /etc/sysconfig/network-script/ifcfg~ 에서 네트워크 파일을 수정하고 systemctl로 재시작하여 적용을 했었지만
리눅스 10에서는 nmcli 명령으로 네트워크를 조작하는게 편함

 

 

참조 : 

https://docs.oracle.com/en/operating-systems/oracle-linux/10/network/OL10-NETWORK.pdf
https://docs.oracle.com/en-us/iaas/oracle-linux/network/network-network-configuration-overview.htm
https://docs.oracle.com/en/operating-systems/oracle-linux/10/network/network-CreateKeyfileConnectionProfile-nm-connection-editor.html