네이버 이웃 추가 / GitHub Profile / 카카오톡 채널 추가 / 방명록 / 이용 안내

Raspberry Pi로 간이 공유기 만들기(nmcli, Network Manager 사용)

수성컴 | 2026. 10. 25.
Raspberry Pi로 간이 공유기 만들기(nmcli, Network Manager 사용)

보통 Raspberry Pi로 원격 접속하려고 한다면 Raspberry Pi와 PC를 같은 네트워크에 연결하고 SSH로 접속할 것입니다. 그런데 제가 집 밖에서 Raspberry Pi를 사용할 일이 생겼고 남의 공유기 설정을 제가 접근할 수는 없다 보니 SSH 접속이 난해해졌습니다. 그러다 문득 ‘Raspberry Pi를 공유기처럼 만들면 되지 않을까?’라는 생각이 들었습니다. 그래서 오늘은 Raspberry Pi로 간이 공유기를 만들어 보겠습니다.

  • Network Manager(nmcli)를 사용합니다.(Raspberry Pi OS 12 이상에서 지원)
  • 이 글은 Raspberry Pi 3B+로 진행합니다.(4 이상도 아마 같을 것입니다.)

목차

1. 목표(구현하고자 하는 공유기의 기능)
2. nmcli 명령어 정리
3. 무선 공유기(핫스팟) 만들기
4. 유선 공유기 만들기
5. 글 마무리
6. 참고 자료

1. 목표(구현하고자 하는 공유기의 기능)

공유기에 LAN으로 연결된 기기들은 공유기로부터 사설 IP 주소를 부여받습니다.

IP 주소에 대해 잘 모르시는 분들을 위해 설명 드리겠습니다.
IP 주소는 공인 IP와 사설 IP로 나눌 수 있습니다.
공인 IP는 전세계에서 고유한 IP입니다. 그래서 다른 PC의 공인 IP 주소를 알면 그 PC에 접속할 수 있습니다. 다만, 모든 PC와 스마트폰, IoT 기기 등에 공인 IP가 부여되면 IP 주소가 고갈되겠죠?

공인IP와 사설IP
그래서 공유기를 사용하는 경우 그 공유기에 연결된 기기들은 사설 IP가 부여됩니다. 이 경우 같은 공유기로 연결된 네트워크 안에서는 사설 IP를 입력하여 서로의 기기에 접속할 수 있지만, 그 공유기에 연결되지 않은 친구 PC에서 공유기에 연결된 제 기기에 접속할 때에는 사설 IP를 입력하면 접속이 안 됩니다.

사설 IP 대역은 아래와 같습니다.
A: 10.0.0.0~10.255.255.255
B: 172.16.0.0~172.31.255.255
C: 192.168.0.0~192.168.255.255
오늘 Raspberry Pi를 사용하여 공유기를 만들 때는 위 3가지 대역 중에서 선택할 것입니다.

오늘은 여기에 더하여 무선 공유기 기능도 다루어 볼 예정입니다.

2. nmcli 명령어 정리

인터넷에 ‘Raspberry Pi 공유기 만들기’를 검색하면 hostapd와 dnsmasq를 설치하라고 안내하는 글이 많습니다. 그러나 이 글에서는 ‘간이 공유기’를 만들 것이기 때문에 Raspberry Pi OS 12부터 공식 탑재된 ‘Network Manager’를 사용할 것입니다. Network Manager를 CLI로 설정하기 위한 명령어가 nmcli이고, TUI(키보드 방향 키로 설정 가능)로 설정하기 위한 명령어는 nmtui입니다. 오늘 우리가 해야 할 일 중에는 nmtui가 지원하지 않는 것이 포함되어 있으므로 nmcli를 사용하겠습니다. 시작에 앞서 nmcli 명령어를 정리하는 것이 좋을 것 같네요. 아래 정리 내용이 잘 이해되지 않는 분은 3번 문단 이후 내용과 함께 보시면 좋겠습니다.

  • nmcli con show: 현재 존재하는(활성화된) 연결 정보들을 출력합니다.(유선, 무선 등)
    • con은 connection으로 대체할 수 있습니다.(같은 의미)
  • sudo nmcli con up “NAME“: 해당 연결을 활성화합니다.(NAME은 nmcli con show에서 출력되는 NAME입니다.)
  • sudo nmcli con down “NAME“: 해당 연결을 비활성화합니다.
  • sudo nmcli con add 세부설정: 새로운 연결을 생성합니다.(예: 새로운 Wi-Fi를 연결할 때 사용)
  • sudo nmcli con modify “NAME“ 세부설정: 기존 연결을 수정합니다.(이 글에서는 유선 랜 포트의 용도를 변경하기 위해 사용)
  • 세부설정
    • type ethernet/wifi/loopback/기타: type을 지정합니다.
    • con-name “NAME“: nmcli con show에서 출력되는 목록에서의 NAME입니다.
    • ifname DEVICE: ifconfig 명령 실행 시 출력되는 장치 이름을 적습니다. 예) eth0, wlan0 등
    • ipv4.method auto/link-local/manual/shared: IPv4 주소 할당 방식을 설정합니다.
      • auto: Raspberry Pi에 연결된 다른 공유기의 DHCP 서버로부터 IP 주소를 자동으로 할당받습니다.
      • manual: 고정 IP 주소를 수동으로 설정합니다.
      • shared: Raspberry Pi에 연결된 기기들에 IP 주소를 부여해 줍니다.(간이 공유기 만들 때 사용할 옵션)
    • ipv4.addresses IP주소/서브넷마스크: IP 주소를 설정합니다. ipv4.method가 shared이면 이 IP주소가 Raspberry Pi이 IP 주소(게이트웨이)가 되고, 연결된 기기들에게 서브넷마스크에 따른 범위만큼 사설 IP 주소를 부여해 줍니다. 서브넷마스크는 2진수로 나타냈을 때의 1의 개수를 10진수로 적습니다. 예)255.255.255.0=11111111_11111111_11111111_00000000→24
    • ssid “SSID이름“: 핫스팟 생성 시에만 작성. 외부 기기(예: 스마트폰)의 와이파이 설정에서 볼 수 있는 Raspberry Pi 핫스팟 이름입니다.
    • wifi-sec.key-mgmt 보안방식: 핫스팟 생성 시에만 작성. Wi-Fi 보안 방식을 설정합니다.
      • wpa-psk: WPA-Personal / WPA2-Personal (일반 가정용 공유기 등에서 사용하는 PSK/비밀번호 방식)
      • wpa-eap: WPA-Enterprise (기업/학교 등에서 사용하는 EAP 인증 방식)
      • sae: WPA3-Personal (WPA3 보안 방식)
      • none: 보안 없음 (개방형)
    • wifi-sec.psk “암호“: Wi-Fi 비밀번호
  • nmcli wifi: wifi on/off 여부 확인
  • sudo nmcli wifi on: wifi 기능 켜기

3. 무선 공유기(핫스팟) 만들기

유선 랜 포트를 WAN으로
이더넷 포트를 WAN 포트로 사용하고 주변 기기는 와이파이로 Raspberry Pi 공유기에 연결되도록 설정해 보겠습니다.

sudo nmcli radio wifi on
3.1. nmcli radio wifi 명령을 실행해 봅니다.
“disabled”로 출력된다면 sudo nmcli wifi on 명령을 실행합니다.

ifconfig
3.2. ifconfig 명령을 실행합니다. 무선 랜이 wlan0으로 잡히는 것을 볼 수 있습니다. 이것을 잘 기억해 둡니다.

sudo nmcli con add
3.3. 아래 명령어를 실행합니다.(명령어가 길기 때문에 메모장에 미리 썼다가 복사해서 붙여넣는 것을 추천합니다.)

sudo nmcli con add \
type wifi \
ifname wlan0 \
con-name "Hotspot" \
autoconnect yes \
ssid "Sooseongcom RPI 3B Plus" \
mode ap \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "SecurePassword123" \
ipv4.method shared \
ipv4.address 172.30.0.1/24

[\]
\는 아랫줄에 명령어를 이어서 입력하겠다는 뜻입니다. 즉, 위의 명령어는 하나의 명령어입니다.

[Line 3]
ifname wlan0
아까 ifconfig에서 확인한 무선 랜을 적습니다.

[Line 4]
con-name “Hotspot“
NAME은 Hotspot으로 하겠습니다.

[Line 6]
ssid “SSID이름“
외부 기기(예: 스마트폰)의 와이파이 설정에서 볼 수 있는 Raspberry Pi 핫스팟 이름을 설정합니다.

[Line 8]
wifi-sec.key-mgmt wpa-psk
Wi-Fi 보안 방식을 WPA-Personal / WPA2-Personal로 설정합니다. (일반 가정용 공유기 등에서 사용하는 PSK/비밀번호 방식)
만약 비밀번호 없이 사용하려면 wpa-psk 대신 none을 적습니다.

[Line 9]
wifi-sec.psk “암호“
Wi-Fi 암호를 설정합니다.

[Line 10]
ipv4.method shared
핫스팟에 연결하는 기기들에 사설 IPv4 주소를 부여해 줍니다.

[Line 11]
ipv4.address 172.30.0.1/24
Raspberry Pi의 IP 주소(게이트웨이 역할)는 172.30.0.1로 설정하고, 이 Raspberry Pi에 연결하는 기기들에게는 172.30.0.x를 부여합니다.
서브넷 마스크는 255.255.255.0으로 하겠습니다. 이는 2진수로 나타내면 11111111_11111111_11111111_00000000입니다. 1이 24개이므로 24를 적습니다.
IP 주소와 서브넷 마스크는 원하는 대로 설정합니다.(단, 1번 문단의 사설 IP 대역에 맞게 설정하세요.)

sudo nmcli con down
3.4. sudo nmcli con down “Hotspot“ 명령으로 Hotspot을 비활성화할 수 있습니다.

sudo nmcli con up
3.5. sudo nmcli con up “Hotspot“ 명령으로 Hotspot을 활성화할 수 있습니다.

Windows Wi-Fi
3.6. 이제 노트북이나 스마트폰의 Wi-Fi 설정에서 이 핫스팟에 연결할 수 있습니다. 그런데 만약 라우터 레이블에 있는 PIN을 입력하라는 문구가 뜬다면 암호를 대신 사용하여 연결하세요.를 클릭합니다.

암호 입력
3.7. 이제 앞서 설정한 암호를 입력하여 연결합니다.

모바일에서 연결
스마트폰 Wi-Fi 설정에서도 연결할 수 있으며, IP 주소를 잘 부여받는 것을 확인할 수 있습니다.

SSH 연결 명령 입력
SSH로 Raspberry Pi에 접속할 때는 아까 설정한 IP 주소로 접속할 수 있습니다. Platform 선택, 지문 확인 등을 새로 해 주어야 합니다(처음 SSH 접속하듯이).

4. 유선 공유기 만들기

유선 LAN
이제 이더넷 포트를 LAN 포트로 사용하는 방법을 알아보겠습니다.

4.1. Raspberry Pi를 모니터에 연결하여 사용하고 있다면 문제 없이 터미널을 사용할 수 있겠지만, 저는 SSH로 사용하고 있었기 때문에 유선 공유기를 만들기 위해서 무선 랜 연결을 해야 했습니다. 앞서 무선 공유기(핫스팟) 만들기를 했으므로 해당 핫스팟으로 연결하겠습니다.

sudo nmcli con show
4.2. nmcli con show 명령을 실행합니다. eth0이 Wired connection 1으로 되어 있네요. 이것을 잘 기억합니다.(여러분의 Raspberry Pi에서 다른 NAME으로 뜰 경우 그 NAME을 기억합니다.)

sudo nmcli con modify
4.3. 아래 명령어를 실행합니다.(명령어가 길기 때문에 메모장에 미리 썼다가 복사해서 붙여넣는 것을 추천합니다.)

sudo nmcli con modify "Wired connection 1" \
ipv4.method shared \
ipv4.address 172.30.0.1/24

[\]
\는 아랫줄에 명령어를 이어서 입력하겠다는 뜻입니다. 즉, 위의 명령어는 하나의 명령어입니다.

[Line 1]
sudo nmcli con modify “Wired connection 1“
아까 nmcli con show에서 확인한 NAME을 적습니다.

[Line 2]
ipv4.method shared
핫스팟에 연결하는 기기들에 사설 IPv4 주소를 부여해 줍니다.

[Line 3]
ipv4.address 172.30.0.1/24
Raspberry Pi의 IP 주소(게이트웨이 역할)는 172.30.0.1로 설정하고, 이 Raspberry Pi에 연결하는 기기들에게는 172.30.0.x를 부여합니다.
서브넷 마스크는 255.255.255.0으로 하겠습니다. 이는 2진수로 나타내면 11111111_11111111_11111111_00000000입니다. 1이 24개이므로 24를 적습니다.
IP 주소와 서브넷 마스크는 원하는 대로 설정합니다.(단, 1번 문단의 사설 IP 대역에 맞게 설정하세요.)

유선 연결
4.4. 이제 Raspberry Pi와 PC을 유선 랜 케이블로 직접 연결할 수 있습니다.
단, 만약 “3. 무선 공유기(핫스팟) 만들기”를 진행하셨고, 해당 IP 주소 대역과 지금 유선 공유기 만들 때 설정한 IP 주소 대역이 겹치시는 분은 PC에서 해당 와이파이 연결을 해제한 후 유선으로 연결하세요. 그렇지 않으면 SSH 접속이 원활하지 않게 됩니다.

ipconfig
4.5. Windows 터미널에서 ipconfig 명령을 실행하면 IP 주소를 잘 부여받은 것을 확인하실 수 있습니다. 게이트웨이는 의도한 대로 172.30.0.1이 되었고, 제 Windows PC는 172.30.0.199를 할당받았네요.

다만, 이렇게 되면 WAN이 없어서 외부 망에 접속할 수 없게 되는데요, USB-이더넷 어댑터(유선랜카드?)를 사용하여 유선 공유기를 만들 수 있는지에 대한 연구가 필요할 것 같습니다.

5. 글 마무리

이로써 Windows PC와 Raspberry Pi를 유선 랜 케이블로 직결하여 SSH 접속을 할 수 있게 되었습니다.
제 글을 읽어 주셔서 감사합니다.

6. 참고 자료

1) INGOO KANG. 2026. “[Linux] nmcli 명령어로 라즈베리파이 고정 IP(Static IP) 설정 및 네트워크 진단 가이드”, 꿈꾸는 돈키호테 BLOG. (2026. 10. 25. 방문). https://kig2929kig.github.io/network/ras6/
2) 코샵. 2025. “리눅스 터미널 WiFi 연결 완벽 정복: nmcli & nmtui 사용법”, 끄적끄적 코딩 공방. (2026. 10. 25. 방문). https://coding-shop.tistory.com/735
3) kerasi. 2025. “nmcli 명령어 심화 가이드: NetworkManager의 완벽한 제어 🌐”, 일상과 여행 사이, 작은 발견들을 기록합니다. (2026. 10. 25. 방문). https://nop3.tistory.com/208