개요
리눅스 서버를 다루는 엔지니어나 개발자라면 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가 이 파일들을 관리하므로, 직접 파일을 편집하기보다는 nmcli
나 nmtui
(텍스트 기반 GUI)를 사용하는 것이 좋습니다.
직접 수정한 경우 NetworkManager
서비스를 재시작해야 변경 사항이 적용될 수 있습니다 (sudo systemctl reload NetworkManager
).