nmcli 사용하기

**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
2
3
4
5
6
$ nmcli device
DEVICE TYPE STATE CONNECTION
enp6s0 ethernet connected netplan-enp6s0
lo loopback connected (externally) lo
wlp5s0 wifi disconnected --
p2p-dev-wlp5s0 wifi-p2p disconnected --

특정 장치의 자세한 특성은 device show 명령으로 확인할 수 있다

  • 자세한 사용법은 nmcli device help 로 확인하면 된다.
1
2
3
4
5
6
7
8
9
10
$ nmcli device show wlp5s0
GENERAL.DEVICE: wlp5s0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 78:2B:46:4C:BB:D4
GENERAL.MTU: 1500
GENERAL.STATE: 30 (disconnected)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.GATEWAY: --
IP6.GATEWAY: --

2. nmcli device wifi list (주변 Wi-Fi 탐색)

주변에 어떤 Wi-Fi 이름이 있고 신호 강도를 포함한 무선랜 리스트를 출력한다.

1
2
3
4
5
$ nmcli device wifi list
IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY
A8:36:60:C0:8F:B6 abc Infra 13 270 Mbit/s 100 ▂▄▆█ WPA2
8B:38:6C:6F:15:8C wifi1 Infra 1 270 Mbit/s 90 ▂▄▆█ WPA2 WPA3
88:36:6C:C0:AF:B0 wifi2 Infra 149 1170 Mbit/s 80 ▂▄▆_ WPA2

3. nmcli device wifi connect (Wi-Fi 연결)

클릭 대신 명령어로 Wi-Fi에 접속합니다. 한 번 입력하면 컴퓨터가 기억합니다.

1
nmcli device wifi connect [이름] password [비번]

실제 접속시 sudo 필요할 수 있다.

1
2
$ sudo nmcli device wifi connect abc password 12345ABC
Device 'wlp5s0' successfully activated with 'a7ef008a-605f-4bec-9a7e-8e4e87864d7c'.

4. nmcli device disconnect (연결 끊기)

이더넷 enp6s0 연결을 끊어 보겠다.

1
2
3
4
5
$ nmcli device
DEVICE TYPE STATE CONNECTION
enp6s0 ethernet connected netplan-enp6s0
wlp5s0 wifi connected rodrod
lo loopback connected (externally) lo
1
2
$ sudo nmcli device disconnect enp6s0
[sudo: authenticate] Password:

enp6s0 를 끊고 확인:

1
2
3
4
5
qkboo@goyangi-linux:~$ nmcli device
DEVICE TYPE STATE CONNECTION
wlp5s0 wifi connected rodrod
lo loopback connected (externally) lo
enp6s0 ethernet disconnected --

5. nmcli connection show (내 연결 상태 확인)

지금 내가 어떤 네트워크에 연결되어 있고, 그 이름이 무엇인지 확인합니다.

1
2
3
4
5
$ nmcli connection show
NAME UUID TYPE DEVICE
rodrod 7def668a-605f-4bec-9a7e-8e4e87864d7c wifi wlp5s0
lo e1ab35b1-fbf4-4acd-8c76-05483b3448a8 loopback lo
netplan-enp6s0 add72843-8b69-370f-b749-f841554c5bf9 ethernet --

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
2
$ sudo nmcli device wifi connect abc password 12345ABC
Device 'wlp5s0' successfully activated with 'a7ef008a-605f-4bec-9a7e-8e4e87864d7c'.

방법 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)

  1. 권한 문제: 만약 명령어가 작동하지 않는다면 명령어 앞에 sudo를 붙여보세요 (예: sudo nmcli ...). 하지만 보통 일반 사용자 권한으로도 가능합니다.
  2. 인터페이스 이름 확인: 간혹 Wi-Fi 장치 이름이 wlan0가 아닐 수 있습니다. 정확한 인터페이스 이름을 확인하려면 nmcli device를 입력하세요. 만약 특정 장치를 지정해야 한다면 명령어에 -i wlan0와 같은 옵션을 추가할 수 있습니다.
  3. 신호가 안 잡힐 때: rfkill list를 입력해서 Wi-Fi가 Soft blocked: yes 혹은 Hard blocked: yes 상태인지 확인하세요. 만약 yes라면 위에서 설명한 rfkill unblock wifi 명령어를 먼저 실행해야 합니다.