- Posted
- Filed under 분류없음
1. 개요
라즈베리파이를 집, 사무실, 외부 장소로 이동하면서 사용한다면 매번 Wi-Fi를 수동으로 설정하는 것이 번거로울 수 있다.
NetworkManager를 사용하면 여러 Wi-Fi 네트워크의 SSID와 비밀번호를 미리 등록하고, 자동 연결 우선순위를 지정할 수 있다.
예를 들어 다음과 같이 설정할 수 있다.
우선순위 장소 SSID 우선순위 값
1 집 go123 100
2 휴대폰 핫스팟 a2079 50
3 사무실 office-wifi 10설정이 완료되면 라즈베리파이를 이동하거나 재부팅하더라도 저장된 Wi-Fi 네트워크에 자동으로 연결할 수 있다.
단, 우선순위는 연결을 선택할 때 적용된다. 이미 연결된 상태에서 더 높은 우선순위의 Wi-Fi가 발견되더라도 즉시 전환되는 것은 아니다.
2. 사용 환경
- Raspberry Pi 3 Model A+ / Raspberry Pi 4 등
- Raspberry Pi OS Lite 또는 NetworkManager를 사용하는 Debian 계열 Linux
- NetworkManager 1.52.1 기준
- 터미널 및 SSH 접속 환경
- root 또는 sudo 권한
NetworkManager 설치 여부 확인
nmcli --version
출력 예시:
nmcli tool, version 1.52.1
NetworkManager가 정상적으로 설치되어 있다는 의미다.
다음 명령어로 실행 상태도 확인한다.
systemctl is-active NetworkManager
active가 출력되면 서비스가 실행 중이다.
3. 기존 Wi-Fi 설정 확인
먼저 등록된 연결 목록을 확인한다.
nmcli connection show
자동 연결 여부와 우선순위만 확인하려면 다음 명령어를 사용한다.
nmcli -f NAME,TYPE,AUTOCONNECT,AUTOCONNECT-PRIORITY connection show
현재 연결된 Wi-Fi를 확인하려면:
nmcli -f IN-USE,SSID,SIGNAL device wifi list ifname wlan0
4. Wi-Fi 신규 등록
Wi-Fi가 검색되지 않는 장소에서도 연결 프로필을 미리 등록할 수 있다.
집 Wi-Fi 등록:
sudo nmcli connection add \
type wifi \
ifname wlan0 \
con-name "go123" \
802-11-wireless.ssid "go123"
비밀번호와 자동 연결 설정:
sudo nmcli connection modify "go123" \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "YOUR_WIFI_PASSWORD" \
connection.autoconnect yes \
connection.autoconnect-priority 100
휴대폰 핫스팟 등록:
sudo nmcli connection add \
type wifi \
ifname wlan0 \
con-name "a2079" \
802-11-wireless.ssid "a2079"
sudo nmcli connection modify "a2079" \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "YOUR_WIFI_PASSWORD" \
connection.autoconnect yes \
connection.autoconnect-priority 50
위 예시는 WPA2-Personal 방식의 Wi-Fi를 기준으로 한다.
YOUR_WIFI_PASSWORD는 실제 비밀번호로 변경한다. 비밀번호를 명령어에 직접 입력하면 셸 기록에 남을 수 있으므로 주의해야 한다.
5. 기존 Wi-Fi 우선순위만 수정하기
이미 Wi-Fi가 등록되어 있다면 신규 등록 과정은 필요 없다.
다음 명령어만 실행하면 된다.
sudo nmcli connection modify "go123" \
connection.autoconnect yes \
connection.autoconnect-priority 100
sudo nmcli connection modify "a2079" \
connection.autoconnect yes \
connection.autoconnect-priority 50
우선순위 숫자가 높을수록 자동 연결 시 선호도가 높다.
이 명령어는 기존 연결 프로필을 수정하며, 변경 사항은 영구 저장된다.
6. 여러 Wi-Fi를 자동 등록하는 스크립트
매번 명령어를 입력하는 대신 스크립트로 일괄 설정할 수도 있다.
파일 생성:
sudo nano /root/wifi-setup.sh
다음 내용을 입력한다.
#!/bin/bash
set -e
WIFI_PASS="YOUR_WIFI_PASSWORD"
add_wifi() {
local SSID="$1"
local PRIORITY="$2"
if ! nmcli connection show "$SSID" \
>/dev/null 2>&1; then
nmcli connection add \
type wifi \
ifname wlan0 \
con-name "$SSID" \
802-11-wireless.ssid "$SSID"
fi
nmcli connection modify "$SSID" \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "$WIFI_PASS" \
connection.autoconnect yes \
connection.autoconnect-priority "$PRIORITY" \
ipv4.method auto
}
add_wifi "go123" 100
add_wifi "a2079" 50
echo "Wi-Fi 설정 완료"
nmcli -f NAME,TYPE,AUTOCONNECT,AUTOCONNECT-PRIORITY connection show
실행 권한 설정:
sudo chmod 700 /root/wifi-setup.sh
스크립트 실행:
sudo /root/wifi-setup.sh
이 스크립트는 연결 프로필을 생성하거나 수정한다. 부팅할 때마다 실행할 필요는 없다.
기존 연결과 같은 이름의 프로필이 있으면 해당 프로필을 수정한다. SSH 접속 중이라면 네트워크 설정 변경에 따른 연결 끊김에 주의한다.
설정 완료 후 스크립트가 필요 없다면 삭제할 수 있다.
sudo rm -f /root/wifi-setup.sh
스크립트를 삭제해도 NetworkManager에 저장된 연결 정보는 유지된다.
7. Wi-Fi 설정 파일 저장 위치
NetworkManager의 시스템 연결 설정은 일반적으로 다음 경로에 저장된다.
/etc/NetworkManager/system-connections/
파일 확인:
sudo ls -la /etc/NetworkManager/system-connections/
저장 파일 예시:
go123.nmconnection
a2079.nmconnection
실제 파일명은 연결 프로필 이름과 다를 수 있다.
설정 파일의 구조는 다음과 유사하다.
[connection]
id=go123
type=wifi
autoconnect=true
autoconnect-priority=100
[wifi]
mode=infrastructure
ssid=go123
[wifi-security]
key-mgmt=wpa-psk
psk=YOUR_WIFI_PASSWORD
[ipv4]
method=auto
실제 파일에는 UUID 등 추가 항목이 포함될 수 있다.
Wi-Fi 비밀번호가 평문으로 저장될 수 있으므로 설정 파일을 외부에 공개해서는 안 된다.
8. 부팅할 때 자동 연결되는 원리
전체 동작 구조는 다음과 같다.
[최초 설정]
nmcli 명령어 또는 wifi-setup.sh
|
v
[NetworkManager 연결 프로필 저장]
/etc/NetworkManager/system-connections/
|
v
[라즈베리파이 재부팅]
|
v
[NetworkManager 서비스 시작]
|
v
[저장된 Wi-Fi 프로필 확인]
|
v
[사용 가능한 Wi-Fi 자동 연결]
|
v
[DHCP로 IP 주소 할당]
중요한 점은 부팅할 때 설정 스크립트가 실행되는 것이 아니라, NetworkManager가 저장된 연결 프로필을 읽고 자동으로 연결한다는 것이다.
9. 나중에 설정 수정하기
우선순위 변경
sudo nmcli connection modify "go123" \
connection.autoconnect-priority 200
Wi-Fi 비밀번호 변경
sudo nmcli connection modify "go123" \
wifi-sec.psk "NEW_PASSWORD"
자동 연결 비활성화
sudo nmcli connection modify "a2079" \
connection.autoconnect no
등록된 Wi-Fi 삭제
sudo nmcli connection delete "a2079"
설정 확인
nmcli connection show
설정 파일을 직접 수정한 경우
sudo nmcli connection reload
파일을 직접 수정했다면 NetworkManager가 변경 내용을 다시 읽도록 해야 한다.
반면 nmcli connection modify로 변경했다면 별도의 reload 명령은 일반적으로 필요하지 않다.
10. 사무실 Wi-Fi 추가하기
사무실 SSID가 office-wifi라고 가정한다.
sudo nmcli connection add \
type wifi \
ifname wlan0 \
con-name "office-wifi" \
802-11-wireless.ssid "office-wifi"
sudo nmcli connection modify "office-wifi" \
wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "OFFICE_PASSWORD" \
connection.autoconnect yes \
connection.autoconnect-priority 10
설정 완료 후 자동 연결 우선순위:
go123 100
a2079 50
office-wifi 10
집 Wi-Fi가 없는 사무실에서는 사무실 Wi-Fi로 연결할 수 있다. 다만 휴대폰 핫스팟도 동시에 사용 가능하다면 우선순위가 더 높은 핫스팟을 선호한다.
11. 자주 사용하는 관리 명령어
기능 명령어
Wi-Fi 목록 nmcli device wifi list
저장된 연결 nmcli connection show
현재 연결 상태 nmcli device status
현재 IP 주소 ip -4 addr show wlan0
연결 상세 정보 nmcli connection show "go123"
Wi-Fi 재검색 sudo nmcli device wifi rescan
NetworkManager 상태 systemctl status NetworkManager
NetworkManager 로그 journalctl -u NetworkManager -b12. 주의사항
① 동일한 SSID의 중복 프로필
같은 Wi-Fi 이름으로 여러 연결 프로필이 존재할 수 있다. 이 경우 연결 이름보다 UUID를 기준으로 확인하고 수정하는 것이 정확하다.
② 자동 연결 우선순위
우선순위는 연결 후보를 선택하는 데 사용된다. 연결 중인 Wi-Fi보다 우선순위가 높은 네트워크가 나타나더라도 항상 즉시 전환되지는 않는다.
③ SSH 원격 접속
현재 사용 중인 Wi-Fi 연결을 수정하거나 재시작하면 SSH 접속이 끊길 수 있다. 원격 작업에서는 기존 연결을 강제로 끊는 명령을 피하는 것이 좋다.
④ 보안
Wi-Fi 비밀번호가 포함된 스크립트와 .nmconnection 파일은 외부에 공개하지 않는다.
⑤ 사설 IP 주소
집과 사무실의 공유기가 다르면 라즈베리파이에 할당되는 IP 주소도 달라질 수 있다. 장소와 관계없이 원격 접속하려면 Tailscale 등의 별도 네트워크 구성을 고려할 수 있다.
NetworkManager를 이용하면 라즈베리파이에 여러 Wi-Fi를 등록하고 자동 연결 우선순위를 설정할 수 있다.
설정은 한 번만 수행하면 되며, 재부팅 후에도 유지된다.
- nmcli connection add : 새로운 Wi-Fi 프로필 등록
- nmcli connection modify : 기존 연결 설정 변경
- nmcli connection show : 연결 목록 확인
- nmcli connection delete : 등록된 연결 삭제
특히 Raspberry Pi OS Lite처럼 GUI가 없는 환경에서도 터미널만으로 Wi-Fi를 편리하게 관리할 수 있다.
핵심은 설정 스크립트가 아닌 NetworkManager의 연결 프로필이 실제 설정을 보관한다는 점이다.
이 글은 블로그에 기술 자료로 보관하기 좋은 형태입니다.
나중에 Raz3뿐 아니라 다른 Debian 서버의 무선 네트워크를 설정할 때도 참고할 수 있습니다.

