Embedded System/Raspberrypi

[Raspberry pi3] 무선 AP 생성

전두선 2020. 4. 9. 21:33

나는 Raspi3에 라즈비안을 올린 환경에서 해당 내용을 진행했다. Raspi3에 무선 AP를 설정하여 최종적으로는 데스크탑의 윈도우에서 putty와 VNC viewer를 통해 연결하여 볼 것이다.

1. 필요한 패키지 설치

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt-get install dnsmasq hostapd

 

1-1. 설치한 패키지를 우선 정지시키고 reboot

$ sudo systemctl stop dnsmasq
$ sudo systemctl stop hostapd

$ sudo reboot now

 

2. 고정 IP 설정

2-1. 독립 네트워크를 구성하기 위해 라즈베리파이에 static ip를 할당한다.

$ sudo nano /etc/dhcpcd.conf

해당 문서의 제일 하단에 아래 내용을 추가한다.

interface wlan0
    static ip_address=172.24.1.1/24
    nohook wpa_supplicant

 

2-2. 저장 완료후, dhcpcd restart 진행하여 새로운 wlan0 설정

$ sudo service dhcpcd restart

 

3. DHCP 서버 설정

3-1. DHCP service는 초반에 설치한 dnsmasq 패키지에서 제공한다. dnsmasq.conf 파일을 백업하고 새로 만든다.

$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig  
$ sudo nano /etc/dnsmasq.conf

 

다음 줄들을 입력한다.

 

 

interface=wlan0      # Use interface wlan0 
listen-address=172.24.1.1 # Explicitly specify the address to listen on 
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere 
server=8.8.8.8       # Forward DNS requests to Google DNS 
domain-needed        # Don't forward short names 
bogus-priv           # Never forward addresses in the non-routed address spaces. 
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time 

 

4. AP 호스트 소프트웨어 구성

4-1. AP host에 관한 내용은 초반에 설치한 hostapd 패키지에서 제공한다. hostapd를 수정한다.

$ sudo nano /etc/hostapd/hostapd.conf

다음 파일을 열어서 아래 내용을 첨가해주면 된다.

이 때, 이름과 암호는 ''로 묶으면 안되고, 암호는 8자에서 64자 사이여야한다.

5GHz 대역을 사용하려면 작동모드를 hw_mode=g에서 hw_mode=a로 변경하면 된다.

 

# vi /etc/hostapd/hostapd.conf

# This is the name of the WiFi interface we configured above
interface=wlan0

# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=RASPi3-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry123

# Use AES, instead of TKIP
rsn_pairwise=CCMP

 

1-2. 설정한 내용을 적용하기 위해 아래를 실행한다.

$ sudo nano /etc/default/hostapd

 

해당 문서에서 #DAEMON_CONF.... 부분을 찾아서 아래와 같이 주석을 해제하고 내용을 추가한다.

DAEMON_CONF="/etc/hostapd/hostapd.conf"

 

5. 설정 마무리 및 테스트

5-1. 설정완료한 패키지들을 다시 실행시킨다

$ sudo systemctl start hostapd
$ sudo systemctl start dnsmasq

 

5-2. 아래 문서를 열어서 

$ sudo nano /etc/sysctl.conf

아래 행의 주석을 해제한다.

net.ipv4.ip_forward=1

 

그리고 다음 명령을 실행한다.

$ sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

 

다음 문서를 열어서

$ sudo nano /etc/rc.local

 

exit0 바로 위에 다음 행을 추가한다.

iptables-restore < /etc/iptables.ipv4.nat

 

reboot하여 설정을 완료한다.

sudo reboot now

 

6. 윈도우에서 Putty와 VNC viewer 사용해보기

해당 내용은 라즈베리의 ssh 설정이 모두 되었다고 가정하고, 테스트만 진행한다.

 

데스크탑이나 노트북의 윈도우에서 라즈베리파이의 AP에 연결한다.

 

6-1. putty

 

putty에서 설정한 172.24.1.1로 접속.

 

VNC viewer를 실행하기 위해 아래 명령어를 터미널에 입력한다.

$ vncserver -geometry 1280x1024

 

 

 

6-2. VNC Viewer

 

172.24.1.1:1 을 입력해서 접속한다.

 

 

 

 

문제없이 동작하는것을 볼 수 있다.

 

데스크탑(리눅스)에서는 이상 없지만 데스크탑(윈도우)에서 위와같이 접속하려 할시에 VNC에서 연결이 안되는 문제가 있는데 

 

제어판 - 네트워크 및 인터넷 - 네트워크 연결에서

와이파이 속성 - 프로토콜 버전4 설정에 들어가서 

라즈베리파이 AP의 주소인 172.24.1.1과 같은 대역대로 맞춰놔야한다.

저같은 경우는 1.2로 설정을 했다. (라즈베리파이 작업이 끝나고 데스크탑을 사용할때 해당 와이파이를 다른 와이파이에 연결할때는  설정한 아이피를 지워줘야지 정상적으로 인터넷 연결을 할 수 있다. 매우 귀찮지만 까먹지 말도록 )

 

그리고 VNC에서 172.24.1.1:1 이아닌 172.24.1.1로도접속가능하다.