**nmcli**는 한마디로 **”터미널용 네트워크 관리 도구”**로 Network Manager 를 기반으로 동작한다.
nmcli 사용하기
nmcli 에서 자주 쓰일 수 있는 device list, wifi list, wifi connect 정도만 익혀두면 리눅스 네트워크 관리가 훨씬 편리해집니다!
Network Manager
리눅스에서 NetworkManager는 단순히 “연결”만 하는 것이 아니라, 연결 전후의 거의 모든 과정을 관리합니다.
- 자동 연결 및 전환 : 자동으로 Wi-Fi를 잡는 기능, 이더넷 꽃으면 자동으로 Wi-Fi보다 우선순위를 높여 연결하는 등의 지능적인 전환을 수행합니다.
- 다양한 인터페이스 관리: Wi-Fi, 유선 이더넷(Ethernet), 모바일 데이터(4G/5G), VPN, 브릿지 등 시스템에 있는 모든 네트워크 장치를 하나로 통합해서 관리합니다.
- 보안 및 인증: WPA2/WPA3 같은 Wi-Fi 보안 키를 저장하고 관리하며, PPPoE나 VPN과 같은 복잡한 인증 절차를 처리합니다.
- 상태 모니터링: 네트워크가 끊겼는지, 신호 세기는 어떤지 실시간으로 체크하여 OS에 상태 정보를 전달합니다.
리눅스 네트워크 관리
리눅스(Ubuntu 등)에서는 네트워크를 관리하는 아주 강력한 엔진인 NetworkManager라는 프로그램이 뒤에서 돌아갑니다.
- GUI: 우리가 눈으로 보고 클릭하는 화면 (네트워크 설정 창)
- nmcli: 이 NetworkManager에게 명령을 내리는 “명령어용 리모컨”
- nmtui : **”텍스트 기반의 그래픽 메뉴”**입니다. (터미널에서 nmtui를 치면 마우스 없이도 화살표 키로 Wi-Fi를 고를 수 있는 화면이 뜹니다.)
- Backend Drivers: 실제 하드웨어(Intel, Realtek 등의 무선 랜카드) 드라이버와 통신하여 데이터를 주고받습니다.
nmcli 명령어의 구조 (문법)
nmcli 명령어를 잘 이해하려면 **[대상] - [동작] - [옵션]**의 구조를 알면 됩니다.
nmcli+무엇을?+어떻게?
예시로 풀어보면 이렇습니다:
nmcli device: “내 컴퓨터에 있는 장치들(Device) 목록 좀 보여줘.”nmcli radio wifi off: “**무선 기능(radio wifi)**을 꺼줘(off).”nmcli connection show: “지금 연결된 네트워크(connection) 상태를 보여줘(show).”
nmcli 핵심 명령어 4가지
가장 자주 쓰이는 것들 위주로 쉽게 풀었습니다.
1. nmcli device (내 장치 확인)
현재 내 컴퓨터에 꽂혀 있는 랜카드, Wi-Fi 모듈, 블루투스 등이 무엇인지 보여준다.
- 정확한 인터페이스 이름을 확인하려면
nmcli device를 입력한다.
1 | nmcli device |
특정 장치의 자세한 특성은 device show 명령으로 확인할 수 있다
- 자세한 사용법은
nmcli device help로 확인하면 된다.
1 | nmcli device show wlp5s0 |
2. nmcli device wifi list (주변 Wi-Fi 탐색)
주변에 어떤 Wi-Fi 이름이 있고 신호 강도를 포함한 무선랜 리스트를 출력한다.
1 | nmcli device wifi list |
3. nmcli device wifi connect (Wi-Fi 연결)
클릭 대신 명령어로 Wi-Fi에 접속합니다. 한 번 입력하면 컴퓨터가 기억합니다.
1 | nmcli device wifi connect [이름] password [비번] |
실제 접속시 sudo 필요할 수 있다.
1 | sudo nmcli device wifi connect abc password 12345ABC |
4. nmcli device disconnect (연결 끊기)
이더넷 enp6s0 연결을 끊어 보겠다.
1 | nmcli device |
1 | sudo nmcli device disconnect enp6s0 |
enp6s0 를 끊고 확인:
1 | qkboo@goyangi-linux:~$ nmcli device |
5. nmcli connection show (내 연결 상태 확인)
지금 내가 어떤 네트워크에 연결되어 있고, 그 이름이 무엇인지 확인합니다.
1 | nmcli connection show |
nmcli 로 Wifi 연결 관리하기
nmcli를 사용하여 주변 Wi-Fi 목록을 스캔하고 특정 네트워크에 연결하는 과정을 순서대로 설명해 드립니다.
1. 주변 Wi-Fi 목록 확인 (Scan)
먼저 시스템이 주변의 무선 액세스 포인트(AP)를 찾도록 명령해야 합니다.
Wi-Fi 스캔 실행:
1
nmcli device wifi list
(참고: 이 명령은 실시간으로 주변 신호를 검색하여 리스트를 출력합니다.)
출력 항목 설명:
INSSID: Wi-Fi 이름 (SSID)MODE: 네트워크 모드 (보통 managed)CHAN: 채널 번호RATE: 전송 속도SIGNAL: 신호 세기 (숫자가 높을수록 좋음)SECURITY: 보안 방식 (WPA2, WPA3 등)
2. Wi-Fi 연결하기
목록에서 확인한 SSID를 사용하여 연결합니다.
방법 A: 비밀번호를 알고 있을 때 (가장 일반적임)
다음 명령어를 입력하면 해당 Wi-Fi에 접속을 시도합니다.
1 | nmcli device wifi connect "Wi-Fi이름" password "비밀번호" |
- 예시:
nmcli device wifi connect "MyHome_5G" password "12345678"
실제 접속시 sudo 필요할 수 있다.
1 | sudo nmcli device wifi connect abc password 12345ABC |
방법 B: 연결 확인
연결이 성공했는지 확인하려면 다음 명령어를 사용합니다.
1 | nmcli connection show --active |
- 현재 활성화된 모든 네트워크 연결(Wi-Fi, 이더넷 등)을 보여줍니다.
3. 연결 해제 및 삭제 (관리용)
나중에 해당 Wi-Fi 접속 정보를 지우거나 연결을 끊고 싶을 때 사용합니다.
- 특정 Wi-Fi 연결 끊기:
1
nmcli connection down id "Wi-Fi이름"
- 저장된 Wi-Fi 프로필 삭제 (다음에 다시 접속하려면 새로 등록해야 함):
1
nmcli connection delete id "Wi-Fi이름"
💡 유용한 팁 (Troubleshooting)
- 권한 문제: 만약 명령어가 작동하지 않는다면 명령어 앞에
sudo를 붙여보세요 (예:sudo nmcli ...). 하지만 보통 일반 사용자 권한으로도 가능합니다. - 인터페이스 이름 확인: 간혹 Wi-Fi 장치 이름이
wlan0가 아닐 수 있습니다. 정확한 인터페이스 이름을 확인하려면nmcli device를 입력하세요. 만약 특정 장치를 지정해야 한다면 명령어에-i wlan0와 같은 옵션을 추가할 수 있습니다. - 신호가 안 잡힐 때:
rfkill list를 입력해서 Wi-Fi가Soft blocked: yes혹은Hard blocked: yes상태인지 확인하세요. 만약yes라면 위에서 설명한rfkill unblock wifi명령어를 먼저 실행해야 합니다.