Skip to main content

라즈베리파이3 OS 설치과정 – part3 (WordPress 블로그 용도)

지난 포스트에 이어 라즈베리파이3에 내장된 wifi 모듈을 이용하여 무선랜 설정을 해보겠습니다. 라즈베리파이2 이하에서도 wifi 동글이라 불리는 작은 usb 장치를 연결하여 동일하게 설정 가능합니다.

Port Forwarding (포트 포워딩)

라즈베리파이3에서 무선랜 설정을 하기 전, 공유기 관리자에서 설정할 부분이 있습니다. 공유기는 하나의 인터넷 회선으로 공유기를 통해 연결되는 유/무선 장비의 인터넷 연결을 가능하도록 해주는 장비입니다. 다시 말하면 공유기에 연결된 장비(내부)는 인터넷(외부)로의 소통이 자유롭다는 의미입니다. 하지만 그 반대는 어떨까요?

웹브라우저로 어떤 특정 사이트를 접속한다고 가정했을 때, 대부분의 경우 웹브라우저를 실행하여 주소창에 접속할 사이트의 주소를 입력하게 됩니다. 이 때 입력하는 주소는 보통은 ISP에서 운영하는 DNS Server1를 통해 공인 IP 주소로 변환되게 됩니다. 웹브라우저는 결과적으로 우리가 입력한 주소를 통해 공인 IP를 얻어 최종적으로 공인 IP로 접속합니다.

우리가 라즈베리파이3로 웹서버를 운영한다면 마찬가지로 누군가가 필연적으로 라즈베리파이3가 연결된 공인 IP로 접속하게 됩니다. 우리가 흔히 아는 인터넷 사이트와 다른 점이 있다면 그 공인 IP로 접속된 장비가 웹서버가 아니라 공유기라는 겁니다.

공유기까지는 정상적으로 접근할 수 있으나 공유기 내부에 연결된 장비까지는 접근하지 못합니다. 공유기에 접속한 그 누군가를 마중나올 장비가 어떤 것인지 알지 못하기 때문입니다.

따라서 사전에 공유기에게 어떤 용무로 온 손님은 어디로 보내라라는 정보를 인식시켜줄 필요성이 생깁니다. 보통 인터넷에서 자주 사용하는 용무는 포트2라는 개념으로 정의해 두었으니 해당 포트로 접속하는 손님은 어느 장비로 보내라라는 정의가 가능해집니다.

웹서버는 80번 포트를 기본으로 사용하도록 정의되어 있습니다. 공유기에서 80번 포트로 연결을 요청하면 라즈베리파이3로 연결하도록 미리 알려주면 됩니다. 이를 포트 포워딩이라고 합니다.

고정 아이피 설정

공유기는 내부적으로 접속하는 기기에 사설 ip라고 불리는 내부적으로만 쓰이는 ip 주소를 자동으로 할당합니다. 즉, 공유기에 연결된 장비의 사설 ip가 192.168.1.2였다면 내일도 192.168.1.2가 된다고 보장할 수 없습니다. 공유기는 순차적으로 ip를 할당하기 때문에 어떤 장비가 먼저 공유기에 연결되었다면 그 장비가 192.168.1.2가 될 가능성이 있습니다.

위에서 설정한 포트 포워딩 설정은 아이피를 기준으로 설정합니다. 따라서 이 아이피가 변동될 가능성이 있다면 설정한 포트 포워딩 또한 의도한대로 동작한다고 보장할 수 없게 됩니다.

공유기가 아이피 할당시 기기를 분별하는 데 사용하는 정보는 MAC Address입니다. 이 정보는 기기마다 다릅니다. 따라서 라즈베리파이3에서 wifi의 Mac Address 정보를 확인한 후 원하는 IP로 할당하도록 공유기에서 설정하면 추후 라즈베리파이3는 항상 설정한 IP만을 사용하게 됩니다.

라즈베리파이3에 ssh로 접속하여 Mac Address 정보를 확인합니다.

$ ifconfig

ifconfig mac address

위 정보를 토대로 iptime에서 고정 아이피로 설정 및 포트포워딩하는 방법은 아래 링크를 참조하세요.

IT사랑 :: iptime 공유기로 사설 고정아이피 부여하기 – ipTime N704BCM

iptime 공유기 포트포워딩 하는법

라즈베리파이3 무선랜 설정

이제 라즈베리파이3에서 무선랜 설정을 하겠습니다. 무선랜 설정을 하기 위해서는 접속할 공유기의 ESSID와 접속패스워드가 필요합니다. 스마트폰을 통해 미리 wifi를 검색하여 나오는 공유기 이름과 암호3를 미리 적어두시기 바랍니다. 만일 essid를 모른다면 아래 명령어를 통해 찾을 수 있습니다.

$ sudo iwlist wlan0 scan

이제 essid와 password를 설정합니다. 여기서는 nano 편집기를 통해 해당 파일을 편집 하겠습니다.

$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

network 부분부터 작성하세요. 공유기 ESSID / 패스워드 부분을 적절하게 수정하시면 됩니다.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="공유기 ESSID"
psk="패스워드"
}

윈도우 메모장과 동일하게 편집이 가능합니다. 작성이 완료되면 ctrl키와 x키를 동시에 누른 후 y키, 그리고 엔터키를 누르면 저장되어 콘솔 화면으로 돌아옵니다.

이제 무선랜 모듈을 껐다가 켜주면 설정한 정보를 토대로 공유기와 접속이 됩니다.

# 무선랜 모듈 끔
$ sudo ifdown wlan0
# 무선랜 모듈 켬
$ sudo ifup wlan0

아이피 정보를 확인하여 정상적으로 접속이 되는지 확인합니다.

$ ifconfig

출력되는 정보 중 wlan0의 부분에서 inet addr: 부분이 192로 시작하는 공유기에서 이미 설정한 고정아이피로 출력됩니다.

이제 putty.exe를 하나 더 실행시키고 위에서 설정한 아이피를 통해 접속되는지 확인합니다. 접속이 잘되면 Lan Cable을 빼고 무선의 자유로움을 느껴보세요.

다음 포스팅은 웹서버 설치하는 과정을 다루겠습니다.


  1. 인터넷에 연결된 장비는 공인 IP라 불리는 누구도 쓰지 않는 자신만의 주소를 갖게 됩니다. 서버도 공인 IP를 사용하여 인터넷에 연결되어 있습니다. 하지만 이 주소는 숫자로만 이루어져있어 사람이 인식하기에 용이하지 않으므로, 인터넷 공인 ip와 동일하게 누구도 쓰지 않는 문자열 형태의 주소를 등록(도메인)하고 사용합니다. DNS Server는 문자열 형태의 주소를 공인 IP로 변환해주는 역할을 하는 장비입니다. 
  2. 여러 프로그램이 동시에 인터넷을 사용할 수 있다는 점에서 윈도우도 공유기라고 볼 수 있습니다. 대신 윈도웅에서는 ip로 구분하지 않고 포트라는 개념으로 구분합니다. 이 포트는 1~65535까지의 범위를 사용하며 우리가 자주 사용하는 웹서버는 보통 80번 포트로 할당됩니다. 즉, 웹브라우저에 입력하는 도메인 주소 뒤에 :80이라는 문자가 생략된 것입니다. 또한 웹서버가 80번 포트를 사용한다고 해서 접속하는 장비도 80번 포트를 사용해야 하는 것은 아닙니다. 예를 들면 웹브라우저는 내부적으로 80번 포트를 쓰지않고 윈도우에서 임의로 할당한 포트를 사용합니다. 이것이 하나의 장비에서 웹서버를 구동중(80번 포트를 사용중)이라 하더라도 인터넷 서핑이 가능한 이유입니다. 
  3. 최신의 공유기와 스마트폰의 경우 5G라는 기술을 지원합니다. 하지만 라즈베리파이3에 기본 장착된 wifi 모듈은 5G를 지원하지 않습니다. 보통의 경우 5G와 b/g/n 채널을 사용하는 essid가 다르므로 반드시 b/g/n채널을 사용하는 essid로 설정해야 합니다.