Profile picture

[Linux] nmcli로 네트워크 관리, 터미널에서 끝장내기

JaehyoJJAng2024년 12월 25일

개요

리눅스 서버를 다루는 엔지니어나 개발자라면 GUI 없이 터미널에서 모든 작업을 처리해야할 때가 많습니다.

특히 네트워크 설정은 서버의 생명줄과 같아서, 빠르고 정확하게 관리하는 것이 필수죠.


이럴 떄 빛을 발하는 도구가 바로 nmcli 입니다.

nmcli는 NetworkManager 데몬을 제어하는 강력한 명령줄 인터페이스로, 복잡한 네트워크 설정을 터미널에서 손쉽게 처리할 수 있게 해줍니다.


nmcli 왜 필요할까요?

대부분의 현대 리눅스 배포판(CentOS, Ubuntu, Debian, Fedora 등)은 NetworkManager 를 기본 네트워크 관리 도구로 사용하고 있어요.

nmcli는 NetworkManager와 직접 소통하여 네트워크 장치 조회, 연결 생성/삭제, IP 주소 설정, DNS 변경등 거의 모든 네트워크 작업을 수행합니다.


nmcli 기본 사용법

1. 네트워크 장치(Device) 상태 확인

시스템에 연결된 네트워크 인터페이스의 현재 상태를 한 눈에 볼 수 있어요.

nmcli device status

DEVICE    TYPE      STATE      CONNECTION
enp0s3    ethernet  connected  MyWiredConnection # 연결된 이더넷 장치
lo        loopback  unmanaged  --                # 루프백 인터페이스
wlan0     wifi      disconnected --              # Wi-Fi 장치 (연결 끊김)

2. 연결 (Connection) 프로필 조회

NetworkManager에 저장된 네트워크 연결 프로필 목록을 확인합니다.

각 프로필은 특정 네트워크 설정(IP, DNS, SSID 등)을 담고 있어요

nmcli connection show

NAME              UUID                                  TYPE      DEVICE
MyWiredConnection a1b2c3d4-e5f6-7890-1234-567890abcdef  ethernet  enp0s3
AnotherNetwork    b2c3d4e5-f6a1-2345-6789-0abcdef12345  ethernet  --

활성화된 연결만 보려면 nmcli connection show --active를 활용해보세요.


3. 새로운 연결 생성 및 설정

nmcli의 핵심 기능 중 하나는 새로운 네트워크 연결 프로필을 생성하는 것입니다.


DHCP를 사용하는 유선 연결 생성

enp0s3 장치에 MyNewEthernet이라는 이름의 연결을 생성하고 DHCP로 IP를 자동 할당받도록 설정해볼까요?

nmcli connection add type ethernet con-name MyNewEthernet ifname enp0s3 autoconnect yes

고정 IP를 사용하는 유선 연결 생성

이번에는 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버를 직접 지정해 봅시다.

nmcli connection add type ethernet con-name StaticEthernet ifname enp0s3 ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli connection modify StaticEthernet ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify StaticEthernet ipv4.method manual
nmcli connection modify StaticEthernet autoconnect yes # 재부팅 시 자동 연결

Wi-Fi 연결 생성

SSID와 비밀번호를 이용하여 Wi-Fi 네트워크에 연결도 할 수 있어요.

nmcli device wifi connect MyHomeWifi password MySecretPassword name MyWifi ifname wlan0

또는 조금 더 명시적인 방법으로 아래와 같이 사용할 수도 있구요.

nmcli connection add type wifi con-name MyWifi ifname wlan0 ssid MyHomeWifi
nmcli connection modify MyWifi wifi-sec.key-mgmt wpa-psk wifi-sec.psk MySecretPassword
nmcli connection modify MyWifi autoconnect yes

4. 연결 활성화/비활성화 및 삭제

생성된 연결을 활성화하거나 필요 없을 때 삭제할 줄도 알아야겠죠?


연결 활성화

nmcli connection up MyNewEthernet

연결 비활성화

nmcli connection down MyNewEthernet

연결 삭제

nmcli connection delete MyNewEthernet

nmcli 설정 어디에 저장될까요?

nmcli로 생성하거나 수정한 네트워크 연결 프로필은 파일로 저장됩니다.

이 파일들은 주로 /etc/NetworkManager/system-connections/ 디렉토리에 .nmconnection 확장자를 가진 텍스트 파일 형태로 존재합니다.


예를 들어, MyWiredConnection이라는 연결을 만들었다면,

/etc/NetworkManager/system-connections/MyWiredConnection.nmconnection 파일이 생성됩니다.

이 파일에는 해당 연결의 IP 주소, DNS 서버, Wi-Fi 비밀번호 등 모든 설정이 담겨 있습니다.


주의

NetworkManager가 이 파일들을 관리하므로, 직접 파일을 편집하기보다는 nmclinmtui(텍스트 기반 GUI)를 사용하는 것이 좋습니다.

직접 수정한 경우 NetworkManager 서비스를 재시작해야 변경 사항이 적용될 수 있습니다 (sudo systemctl reload NetworkManager).

    Tag -

Loading script...