- 라즈베리파이 4B
- Ubuntu 22.04 Server
sudo apt update
sudo apt install hostapd dnsmasq iptables-persistent rfkill net-tools -y
sudo systemctl stop hostapd dnsmasqiw dev
# wlan0 등 장치 이름 확인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안정적인 운영을 위해 아래 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/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/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을 의미.
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 reloadsudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl enable dnsmasq
sudo systemctl restart hostapd
sudo systemctl restart dnsmasqip 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