Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save rlaace423/8ada534f60506142707a633f50c7efcf to your computer and use it in GitHub Desktop.

Select an option

Save rlaace423/8ada534f60506142707a633f50c7efcf to your computer and use it in GitHub Desktop.
라즈베리파이4B Wi-Fi 공유기 구성 매뉴얼

라즈베리파이4B Wi-Fi 공유기 구성 매뉴얼

구성

  • 라즈베리파이 4B
  • Ubuntu 22.04 Server

패키지 설치

sudo apt update
sudo apt install hostapd dnsmasq iptables-persistent rfkill net-tools -y
sudo systemctl stop hostapd dnsmasq

무선 장치 확인

iw dev
# wlan0 등 장치 이름 확인

wlan0 수동 IP 설정

WLAN 인터페이스 IP(공유기 자체의 IP)를 설정하는 과정. 재부팅 시에도 유지하려면 아래와 같이 systemd service로 만들어야 함.

/etc/systemd/network/10-wlan0.network 파일 생성 후 아래 내용 입력.

[Match]
Name=wlan0

[Network]
Address=192.168.10.1/24

적용

sudo systemctl restart systemd-networkd

wifi 설정

안정적인 운영을 위해 아래 3가지 작업이 필요함.

  • rfkill 해제
  • 국가코드 설정
  • 전원절약 OFF

이 또한 재부팅 시 유지하기 위해 systemd service로 만들어야 함.

/etc/systemd/system/wifi-init.service 파일 생성 후 아래의 내용 입력.

[Unit]
Description=Initialize Wi-Fi (rfkill unblock, set regdomain, disable power save)
# 네트워크 인터페이스가 보일 타이밍 이후에 실행
After=network-pre.target
Wants=network-pre.target

[Service]
Type=oneshot
# 필요 시 인터페이스 이름 변경 가능 (wlan0)
ExecStart=/usr/bin/env rfkill unblock all
ExecStart=/usr/bin/env iw reg set KR
ExecStart=/usr/bin/env iw dev wlan0 set power_save off
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

적용 및 활성화

sudo systemctl daemon-reload
sudo systemctl enable wifi-init
sudo systemctl start wifi-init

hostapd (AP(엑세스포인트)) 설정

/etc/hostapd/hostapd.conf 파일 생성 후 아래의 내용 입력.

country_code=KR
interface=wlan0
driver=nl80211
ssid=MyOfficeWiFi
hw_mode=a
channel=36
wmm_enabled=1
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=ReallyStrongPassword2025!@

위 내용 중 수정이 필요한 부분은 아래와 같음

  • ssid : 무선AP 이름
  • wpa_passphrase : 비밀번호
  • 위 내용은 5Ghz 설정인데, 2.4Ghz 설정 시 아래와 같이 수정
    hw_mode=g
    channel=6

아래의 명령어를 통해, 위 파일의 경로를 등록

echo 'DAEMON_CONF="/etc/hostapd/hostapd.conf"' | sudo tee /etc/default/hostapd

dnsmasq (DHCP 서버) 설정

/etc/dnsmasq.conf 파일 생성 후 아래의 내용 입력 (존재한다면 맨 아래에 추가)

interface=wlan0
dhcp-range=192.168.10.10,192.168.10.100,255.255.255.0,24h

위 내용은 192.168.10.10 ~ 100 범위(192.168.10.0/24)를 DHCP로 관리하겠다는 뜻. 24h는 lease time을 의미.

iptables (NAT 라우팅) 설정

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables/rules.v4"

적용 확인 (바로 적용되나, 확실하게 하기 위해 아래의 명령어 실행)

sudo netfilter-persistent save
sudo netfilter-persistent reload

hostapd, dnsmasq 적용 및 활성화

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
sudo systemctl restart hostapd
sudo systemctl restart dnsmasq

동작 확인

ip a show wlan0
# → inet 192.168.10.1/24

iw dev
# → type AP

sudo journalctl -u wifi-init -n 20
sudo journalctl -u hostapd -n 20
sudo journalctl -u dnsmasq -n 20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment