Raspberry Pi 3에 내장된 무선랜(WiFi)를 사용하기 위해 필요한 설정 방법에 대해서 다룹니다.

Raspbian 2018년 11월 13일 버전으로 테스트 완료했습니다.




   1. raspi-config를 사용시 문제점


   2. 커맨드 명령으로 WiFi 연결 설정 및 테스트


   3. 두 장소 이상에서 무선랜(WIFI) 사용하기




최종 업데이트 - 2018. 11. 24




1. raspi-config를 사용시 문제점

최근 라즈비안 버전의  라즈베리파이 설정 도구 raspi-config에 와이파이를 설정할 수 있는 방법이 추가되었습니다.


하지만 실행시켜보면 아래 화면처럼 설정 파일에 평문 패스워드가 입력이 됩니다.


이 방법으로 해도 문제없이 동작은 하지만 보안상 문제가 있을듯 하면 wpa_passphrase 명령을 사용해야 할 듯 보입니다.

pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=KR

network={
       ssid="webnautes"
       psk="qwerty2018"
}




wpa_passphrase  명령을 사용하면 평문 패스워드를 암호화서 사용할 수 있게 해줍니다.   자세한 내용은 다음 장을 확인하세요.

pi@raspberrypi:~ $ sudo wpa_passphrase webnautes qwerty2018
network={
       ssid="webnautes"
       #psk="qwerty2018"
       psk=ba9073738f6920d7e2309d0db9ab7a6b525dd1d7de8aa074d09bdfea0b8066c4
}




또한  raspi-config에서 WiFi 국가를 한국으로 변경했다면 다음처럼 문제가 생길 수 있습니다.


pi@raspberrypi:~ $ cat /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=KR

pi@raspberrypi:~ $ sudo iwlist wlan0 scan
wlan0     Interface doesn't support scanning : Invalid argument

pi@raspberrypi:~ $



디폴트 값으로 되돌리려면 raspi-config에서 Localisation Options  > Change Wi-fi Country > US United States를 선택하면 됩니다.




2. 커맨드 명령으로 WiFi 연결 설정 및 테스트

2-1. iwconfig 명령을 사용하면 라즈베리파이에 연결되어 있는 네트워크 어댑터들을 보여주는데 무선 네트워크 기능이 없으면 no wireless extensions라고 출력됩니다.


리스트 중 wlan0이 Raspberry Pi 3에 내장되어있는 무선랜 어댑터입니다.





2-2. sudo iwlist wlan0 scan 명령을 사용하여 접속 가능한 주변 무선 네트워크(AP, 무선공유기)를 검색합니다.


이미 무선 네트워크의 SSID를 알고 있다면 다음 단계를 진행하세요.


간혹 아래 명령어를 실행시켰는데  wlan0 No scan results라고 나올 수도 있습니다.

이유는 모르겠지만 여러번 다시 실행시켜보다보면 아래와 같은 결과가 나옵니다.




검색 결과에서 다음 2가지를 확인하면 됩니다.

ESSID:”webnautes  → webnautes가 무선 네트워크 이름입니다.  

IE: IEEE 802.11i/WPA2 Version 1   →  무선 네트워크 접속시 WPA2 보안정책을 사용해야 합니다.




2-3. /etc/wpa_supplicant/wpa_supplicant.conf 설정 파일을 수정하여 접속할 무선 네트워크 무선 네트워크 접속시 사용할 보안 정책을 설정할 수 있습니다.


보안 상의 이유로 wpa_supplicant.conf 설정 파일접속할 무선 네트워크의 암호를 직접 입력하지 않습니다.

대신에 wpa_passphrase 명령을 사용하여  접속할 무선 네트워크의 암호에 대한  PSK를 생성하여 입력합니다.



wpa_passphrase 명령은 다음처럼 사용합니다.


$ wpa_passphrase  접속할_무선_네트워크의_SSID  접속할_무선_네트워크의_암호



접속할 무선 네트워크의 SSID가 webnautes이고 접속할 무선 네트워크의 암호가 testpassword 인경우 입니다.

wpa_passphrase 명령을 실행하면 암호 testpassword에 대한 PSK가 생성됩니다. (빨간색 사각형 부분)





2-4. /etc/wpa_supplicant/wpa_supplicant.conf 설정 파일에 위 명령의 결과를 전부 복사해와서 #psk로 시작하는 줄만 삭제합니다.


$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf





다음처럼 설정 파일에 더 적어줘야 하는 옵션들이 있지만 보통 없어도 잘 됩니다.





2-5. Raspberry Pi를 재부팅을 해야 적용됩니다.


랜선을 연결한 상태에서 재부팅하세요.  WiFi 어댑터에 할당된 IP를 확인하고 이후에는 랜선 없이 사용하면 됩니다.


ifconfig 명령을 실행해보면 WiFi 어댑터인 wlan0에 아이피가 할당된 것을 볼 수 있습니다.

이후 사용시에도 같은 아이피를 계속 할당 받기 때문에 적어놓았다가 사용하면 됩니다.





2-6. 이제 랜선은 빼고 전원선만  Raspberry Pi에 연결해서 사용할 수 있습니다.

이때 SSH 접속 아이피로 위에서 확인한 아이피를 사용하면 됩니다.




2-7. 주의할 점은 Raspberry Pi가 스마트폰의 핫스팟을 사용하도록 했다면 Raspberry Pi에 SSH 접속할 컴퓨터도 핫스팟을 사용해야 합니다.


스마트폰의 핫스팟으로 할당받은 아이피는 외부 네트워크에서 접속할 수 없는 아이피이기 때문입니다.



Raspberry Pi와 컴퓨터가 핫스팟을 사용하도록 해주어야




컴퓨터에서 Raspberry PI에서 사용중인 아이피를 사용하여 SSH 접속이 가능합니다.





3. 두 장소 이상에서 무선랜(WIFI) 사용하기

앞에서 무선 네트워크에 접속하기 위한 정보를 /etc/wpa_supplicant/wpa_supplicant.conf에 추가했습니다.  

이번엔 다른 장소에 있는 무선 네트워크에도 접속하여 사용할 수 있도록 설정해보겠습니다.



Raspberry Pi 주변에 두 개의 무선 네트워크가 있는 경우입니다.

webnautes 무선 네트워크는 스마트폰 핫스팟이며 apple 무선 네트워크는 무선 공유기입니다.

webnautes 무선 네트워크는 앞에서 설정에 추가했으므로 이번엔 apple 무선 네트워크를 추가합니다.



3-1. sudo iwlist wlan0 scan 명령을 실행하여 접속가능한 무선 네트워크를 검색합니다.

SSID가 apple이고 WPA2 보안 정책을 사용합니다.





3-2. wpa_passphrase 명령을 사용하여 해당 무선 네트워크 접속시 사용할 PSK를 생성합니다.





3-3. /etc/wpa_supplicant/wpa_supplicant.conf 설정 파일접속할 무선 네트워크의 SSID와 위에서 생성한  PSK를 입력합니다.


priority 옵션을 주면 두 개의 무선 네트워크가 모두 잡힐때, 우선순위를 부여할 수 있습니다.

아래 화면의 경우에는 우선순위가 높은 webnautes 무선 네트워크에 Raspberry Pi가 먼저 접속하게 됩니다.





3-4. 재 부팅 후..  ifconfig 명령을 사용하면 wlan0에 아이피가 할당된 것을 볼 수 있습니다.

랜선을 연결한 상태에서 부팅하여 wlan0에 할당된 아이피를 확인하세요.

이후 부팅시에도 같은 아이피를 계속 할당 받게 됩니다.




3-5. 아래 결과는 우선순위 높은 webnautes 무선 네트워크로부터 아이피를 할당받은 경우입니다.




webnautes 무선 네트워크(스마트폰 핫스팟)에서 SSID 검색을 안되도록 수정하고나서




sudo wpa_cli reconfigure 명령을 사용하여 무선 네트워크로부터 아이피를 가져오게 합니다.




ifconfig 명령을 사용하면 wlan0에 아이피가 할당된 것을 볼 수 있습니다.

아이피를 받아오는데 몇 초정도 걸릴 수 있어서 시간을 두고 ifconfig 명령을 여러번 해봐야 합니다.

SSID가 검색이 안되어 우선순위 높은 webnautes 무선 네트워크로 접속할 수 없어서 apple 무선 네트워크로부터  아이피를 할당 받게 됩니다.





3-6. webnautes 무선 네트워크 설정에 scan_ssid=1을 추가하면 SSID를 숨겨놓아도 접속이 가능해집니다.





다시 sudo wpa_cli reconfigure 명령을 사용하여 무선 네트워크로부터 아이피를 가져오게 합니다.





ifconfig 명령으로 확인해보면 다시 우선순위 높은 webnautes 무선 네트워크(스마트폰 핫스팟)에서 아이피를 할당받게 됩니다.





해봤어요 www.facebook.com/webnautes/
진행하다가 문제 생기면 사소한 것이라도 댓글로 남겨주시면 감사하겠습니다.

  1. jeny 2017.05.12 11:05 신고

    라즈베리파이에서 wifi를 사용하기 위해선 동글이가 있어야 하지 않나요?

  2. hungry 2018.05.09 03:26 신고

    2개가 다 잡히는 경우가 아니라 하나씩 잡히는데 다른장소(집,학교,카페,도서관등)인 경우는 그떄마다 일일히 ssid와 psk값을 바꿔줘야하나요?
    wpa_supplicant.conf 에다가 자주 접속하는 와이파이의 ssid와 psk를 적어두면 자동으로 해당 와이파이에 접속가능한가요?

  3. Favicon of http://blog.naver.com/cherrychance BlogIcon 제로윈코딩 2018.09.28 21:15 신고

    좋은 자료 감사합니다.~~!!!!!

  4. 정보 감사합니다 2018.11.19 19:32 신고

    그대로 따라했는데 안되는 이유는 뭘까요>??ㅠㅠ
    여쭤볼께있는데
    만약에 wifi에 비번설정 (Encryption key : off)시에는 어떻게 연결하나요??

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes webnautes 2018.11.19 19:47 신고

      노트북과 라즈베리파이가 같은 공유기에 연결되어 있고 공유기 설정을 변경할 수 있다면 공유기의 와이파이 설정에서 패스워드를 위해 WPA2를 사용하도록 바꾸어 보세요.

  5. Favicon of https://yoon.site BlogIcon yoon 2019.02.20 11:45 신고

    정말 감사합니다! 자꾸 wlan0 interface dosen't support scanning 에러가 떳는데, 와이파이 나라 설정을 우리나라로 해서 그런거였군요 흑흑...
    감사합니다!

  6. hyok 2019.04.03 22:00 신고

    안녕하세요 블로그잘봤습니다.
    그대로 따라했는데 안되서 댓글남겨봅니다..

    안드로이드 핫스팟으로 바로옆에서 노트북은 접속되는데
    라즈베리에서는 접속이 안되네요..
    좀더 정확히는 ip를 받아오지 못합니다..

    scan시 핫스팟 ssid 검색되고,
    iwconfig 시 wlan0 활성화되어있구요..
    wpa_supplicant.conf 에 ssid 랑 psk 넣었고..
    (혹시몰라 비번평문 자체를 넣어봐도 동일)

    재부팅, 전원다시접속, 등등해봐도
    ifconfig 시 wlan0 에 inet ip는 할당되지 않았습니다..

    혹시 wpa_cli 가 관련있나요? list-netwotks 하니
    wlan0 가 아니라 p2p-dev-wlan0 라고 나오던데..

    raspi config 에서 locale 은 GB,
    wifi property 에도 GB 로 되어있어서 us로 바꿔봤지만
    달라진건 없었습니다..

    도움좀부탁드립니다~

    • Favicon of https://webnautes.tistory.com BlogIcon webnautes webnautes 2019.04.03 23:34 신고

      ifconfig로 확인시 wlan0이 없다면
      $ sudo ifconfig wlan0 up


      다음처럼 아이피를 할당받은 후
      $ sudo wpa_cli reconfigure
      Selected interface 'p2p-dev-wlan0'
      OK

      ifconfig 명령으로 아이피가 할당되었는지 확인 해보세요..

  7. hyok 2019.04.04 15:21 신고

    말씀해주신대로 해봐도 여전히 ifconfig 상 inet ip 는 할당되지 않고 있습니다.
    ifconfig 시
    wlan0 가 없는건 아니고 eth0, lo, wlan0 3가지는 나오는데
    lo 만 inet 127.0.0.1 로 루프백 할당되어있고
    eth0 와 wlan0 은 inet 부분이 아예 없네요..
    wlan0 에 <UP, BROADCAST, MULTICAST> 로 나오는거 봐서 UP 되어있는거 같긴한데..

    /etc/network/interface 부분에 내용은 아무것도 없던데 이건 상관없는 건가요?
    구글링하다보니 이부분에 추가하는 것들도 있어서 해봤지만 안되는건 똑같아서..

  8. hyok 2019.04.04 20:23 신고

    해결된건 아니지만..
    안드로이드 핫스팟은 여전히 IP를 받아오지 못하는데,
    노트북의 핫스팟은 라즈베리파이에서 IP를 받아오는 걸 확인했습니다.
    안드로이드 USB테더링도 잘 되구요..

    무선어댑터 신호세기가 문제인건지..
    일단 넘어가야겠네요.. 감사합니다.

  9. Doohan 2019.04.11 01:24 신고

    안녕하세요. 운영자님
    위와같이 따라하다가 막히는 부분이있어 문의 남겨봅니다

    모든것을따라하다가 2-5 부분에서 ifconfig를 친후

    위의 사진내용에서
    2째줄 부터 3째줄까지 내용이 없습니다
    ip 할당받아야 부분이 되지 않습니다.

    재부팅도해보고 다시입력을 해보고 하여도 할당이 되지않네요.
    Eth0,lo 둘은 ip가 있습니다.
    혹시 어떤것을 더해봐야할지 알수있을지 알려주시면 정말 감사하겠습니다.

  10. 2019.04.14 20:34

    비밀댓글입니다

+ Recent posts