컬쥐네 다락방

리눅스 | 네트워크 설정 feat. nmcli 본문

클라우드/리눅스

리눅스 | 네트워크 설정 feat. nmcli

코딩하는 갱얼쥐 2022. 3. 4. 16:09

Linux 7으로 업데이트되면서 Network를 담당하는 NetworkManager가 새로 생겼다

Linux 6의 network.service는 인터페이스 카드에 직접 설정하는 형태

Linux 7

NetworkManager.service에서 담당

유동 ip 연결, 고정 ip 연결 같이 '연결'이라는 논리적인 설정을 하는 형태

Connection (연결) => IP 설정 어떠한 인터페이스에 연결할 것인지, 네트워크 통신 방식은 무엇을 쓸 것인지 (와이파이, 이더넷, 블루투스) 등

 

인터페이스 카드

enp0s3 => nat - 외부용

enp0s8 => 원격으로 사용하기 위한 내부용 

 

네트워크 설정 방법 4가지

1. nmcli


[root@localhost ~]# nmcli dev
DEVICE      TYPE      STATE          CONNECTION
enp0s3      ethernet  연결됨         enp0s3
enp0s8      ethernet  연결됨         enp0s8
virbr0      bridge    연결됨         virbr0
enp0s9      ethernet  연결 끊겼음    --
lo          loopback  관리되지 않음  --
virbr0-nic  tun       관리되지 않음  --
[root@localhost ~]# nmcli con
NAME    UUID                                  TYPE      DEVICE
enp0s3  3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d  ethernet  enp0s3
enp0s8  8eff3d00-cb32-4591-b471-4c46e2a0da4d  ethernet  enp0s8
virbr0  d303518a-fd85-4785-88f4-a45b64c3e7b7  bridge    virbr0
enp0s9  509b32f3-83fd-443a-b4eb-b5e32db2e3ae  ethernet  --
[root@localhost ~]# nmcli connection  (탭 두번 누르면 옵션이 나온다. con 과 동일)
add      delete   edit     help     load     monitor  show
clone    down     export   import   modify   reload   up

2. nmtui  => 예전 DOS 시절 게임같아서 이해하기 쉽다

3. 그래픽 도구

4. 설정 파일을 직접 수정

설정 파일을 만지는 예시 (vi 편집기로 /etc/sysconfig/network-scripts/ifcfg-enp0s9를 열었을 때)

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s9
UUID=509b32f3-83fd-443a-b4eb-b5e32db2e3ae
DEVICE=enp0s9
ONBOOT=no
~

nmcli con add

if 유동 IP 설정일 경우 (dhcp)

1. con-name    (== connection.id)              - 연결 이름

2. ifname        (== connection.interface)     -  연결할 인터페이스

3. type           (==connection.type)            -  통신 방식

4. autoconnect (==connection.autoconnect)  - 부팅시 자동연결 설정

 

고정 IP인 경우 아래 내용을 추가

1. ip4 (ipv4.addressed) - ip주소 지정

2. gw4 (ipv4.gateway)  - 게이트 웨이 주소 지정

ex)

nmcli con add con-name "connection 이름" ifname 물리 장치 type ethernet autoconnetion yes => dhcp 설정


nmcli con add con-name "connection 이름" ifname 물리장치 type ethernet autoconnetion yes ip4 "xxx.xxx.xxx.xxx/xx" gw4 "xxx.xxx.xxx.xxx" => 고정 아이피 설정

[root@localhost ~]# nmcli con add con-name dhcp ifname enp0s9 type ethernet autoconnect yes
연결 'dhcp' (2f7029e9-da85-4f9a-988e-93f912a7c1e8)이 성공적으로 추가되었습니다.
[root@localhost ~]# nmcli con
NAME    UUID                                  TYPE      DEVICE
dhcp    2f7029e9-da85-4f9a-988e-93f912a7c1e8  ethernet  enp0s9
enp0s3  3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d  ethernet  enp0s3
enp0s8  8eff3d00-cb32-4591-b471-4c46e2a0da4d  ethernet  enp0s8
virbr0  d303518a-fd85-4785-88f4-a45b64c3e7b7  bridge    virbr0

추가 후 nmcli con을 입력하면 추가된 네트워크가 보인다. 

네트워크에 대한 정보를 보기위해서는 reload 후 정보 조회를 하면 된다

[root@localhost ~]# nmcli con reload
[root@localhost ~]# nmcli con show dhcp
connection.id:                          dhcp
connection.uuid:                        2f7029e9-da85-4f9a-988e-93f912a7c1e8
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              enp0s9
connection.autoconnect:                 예
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.auth-retries:                -1
connection.timestamp:                   1646372565
connection.read-only:                   아니요
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     알 수 없음
connection.lldp:                        default
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          아니요
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     자동
lines 1-29

 

만들어진 네트워크를 활성화 시키는 과정

[root@localhost ~]# nmcli con up static1   #반대로 up대신 down을 입력하면 비활성화
연결이 성공적으로 활성화되었습니다 (D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@localhost ~]# nmcli con      #static1이 활성화 된 것을 볼 수 있다
NAME     UUID                                  TYPE      DEVICE
enp0s3   3d6d0ae5-78a1-4dad-b92b-2ab0c67cc40d  ethernet  enp0s3
enp0s8   8eff3d00-cb32-4591-b471-4c46e2a0da4d  ethernet  enp0s8
static1  e605e67f-5c59-4506-aeca-91cce8e165b7  ethernet  enp0s9
virbr0   d303518a-fd85-4785-88f4-a45b64c3e7b7  bridge    virbr0
dhcp     2f7029e9-da85-4f9a-988e-93f912a7c1e8  ethernet  --
enp0s9   509b32f3-83fd-443a-b4eb-b5e32db2e3ae  ethernet  --
[root@localhost ~]# ip addr show enp0s9
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:16:a2:a9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.201/24 brd 192.168.56.255 scope global noprefixroute enp0s9
       valid_lft forever preferred_lft forever
    inet6 fe80::3048:615f:a514:6ef6/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
       
[root@localhost ~]# nmcli con down static1
연결 'static1'이(가) 성공적으로 비활성화되었습니다(D-Bus 활성 경로: /org/freedesktop/NetworkManager/ActiveConnection/6).

 

네트워크 설정 변경 방법

nmcli con mod 연결이름 수정항목 수정내용

ex) nmcli con mod dhcp connection.id static2 , nmcli con mod static2 connection.autoconnetion no

 

hostname

hostname 명령어를 입력하면 hostname을 볼 수 있다.

이를 수정하기 위해선

1. /etc/hostname 의 내용을 수정하거나

2. hostnamectl set-hostname 호스트이름 을 입력하면 바꿀 수 있다.

Comments