컨텐츠 바로가기

라즈베리파이 서버용 환경 설정 방법

http://lunar456th.egloos.com/6397975

라즈베리파이를 서버로 사용하기 위한 나름대로의 환경 설정을 모아두었다.

목차는 다음과 같다.

- 라즈베리파이 무선LAN 연결하는 방법
- 고정IP 할당하는 방법
- ssh 포트 변경하는 방법
- hostname 변경하는 방법
- 새로운 계정 생성 방법
- WOL 설정하는 방법

모든 작업은 root 계정으로 수행할 것을 권장한다.




[라즈베리파이 무선LAN 연결하는 방법]

연결하고자 하는 AP가 scan되는지 확인한다.

iwlist wlan0 scan

scan이 된다면 다음의 명령어를 실행한다.

vi /etc/wpa_supplicant/wpa_supplicant.conf

그리고 아래의 줄을 추가하여야 하는데,

-----------------------------------------------------------------------------
network={
        ssid="공유기SSID"
        psk=fcb6f0569643f1c8022f482806cd756692b7676602cc8b4d755c69068f44430c
}
-----------------------------------------------------------------------------

여기서 psk는 공유기 비밀번호의 passphrase이며, 아래의 명령을 이용하여 구할 수 있다.

wpa_passphrase 공유기SSID 공유기비밀번호

만약 비밀번호에 특수문자가 포함되어 있을 경우, event not found 라는 오류가 발생할 수 있다.

이 경우는 아래와 같이 비밀번호 앞뒤로 작은 따옴표(')를 넣어 사용한다.

wpa_passphrase 공유기SSID '공유기비밀번호'

reboot 후 재연결하여 Wi-fi 연결이 되었는 지 확인한다.

주의할 점은 reboot 후에 라즈베리파이의 IP주소가 변경되었을 수도 있다는 점이다.

이 때는 공유기 관리 페이지로 들어가서 IP주소를 확인하거나

IP스캔 등의 방법을 이용한다.





[고정IP 할당하는 방법]

라즈베리파이에서 LAN을 이용할 경우 Power Off/On 때마다 IP주소가 변경될 수 있다.

이 경우, 변경될 때마다 IP주소가 무엇인지 찾아야 하는 번거로움이 생길 수 있으며,

포트 포워딩을 원하는 경우 IP주소가 변경됨에 따라 포워딩이 제대로 안될 수도 있다.

고정 IP를 할당하는 방법은 다음과 같다.

먼저 ifconfig 를 통하여 네트워크 인터페이스의 이름을 알아낸다.

대개 유선랜은 eth, 무선랜은 wlan0 로 되어있지만, 정확한 이름을 알아낸다.

vi /etc/dhcpcd.conf

파일 맨 끝에 다음의 줄을 알맞게 변경하여 추가한다.

---------------------------------------------------
interface wlan0
static ip_address=IP_ADDRESS
static routers=GATEWAY_ADDRESS
static domain_name_servers=GATEWAY_ADDRESS
---------------------------------------------------

예)
---------------------------------------------------
interface wlan0
static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
---------------------------------------------------

저장 후 reboot 을 통해 고정IP가 할당됨을 확인할 수 있다.

위의 방법대로 해보았으나, 필자는 고정IP 할당 후 인터넷이 되지 않는 문제점으로 인해

공유기 관리자 페이지에서 DHCP 고정할당하는 방법을 이용했다.

mac주소가 필요하기 때문에 ifconfig를 통해 wlan0의 mac주소를 알아내어 등록한다.

ifconfig





[ssh 포트 변경하는 방법]

ssh의 포트는 기본적으로 22번으로 설정되어 있다.

만약 ssh를 포트 포워딩할 목적이면서 그 PC가 1대라면 기본 포트를 사용하여도 무방하지만,

기본 ssh포트를 사용하는 여러 대의 PC를 포트 포워딩 시키는 것은 포트번호가 중복되므로 불가능하다. (불가능한 것으로 알고 있다.)

새로운 포트를 이용하는 방법은 다음과 같다.

vi /etc/ssh/sshd_config

sshd_config 파일 내에서 #Port 22 라고 되어있는 줄을 찾은 후

그 아래 줄에 Port 원하는포트번호 를 입력한 후 저장한다.

예)
#Port 22        // 기존의 줄은 그대로 두고
Port 8022        // 새로운 줄만 추가한다.

그리고 ssh를 재시작한다.

service sshd restart

재시작 시 세션을 끊길 수도 있으며, 바뀐 포트 번호를 이용해 재접속하면 정상적으로 연결되는 것을 볼 수 있다.





[hostname 변경하는 방법]

hostnamectl set-hostname 호스트네임

예) hostnamectl set-hostname raspbian

호스트네임 부분에 원하는 호스트 네임을 입력한 후 실행하면 원하는 호스트 네임으로 변경되는 것을 볼 수 있다.

하지만 한 군데 더 수정해주어야 한다.

vi /etc/hosts

해당 파일을 열어 기존의 호스트 네임이 기재된 부분을 원하는 호스트 네임으로 변경한 후 저장하면 된다.





[새로운 계정 생성 방법]

groupadd pikamon

useradd pikamon -g pikamon

login pikamon

passwd

위는 pikamon이라는 새로운 계정을 생성하여 새로운 그룹인 pikamon 그룹에 소속시킨 후 패스워드를 설정하는 방법이다.

UID나 expire date 등의 세부 작업을 신경쓰지 않는다면 위와 같이 새 계정을 만들 수 있다.

(만든 후에는 기존 pi 계정은 암호를 어렵게 설정하거나 삭제한다.)

(groupdel pi && userdel pi)





[vim 설정 방법]

아래 주소를 참고하여 설정한다.






[기타 설정]

- ssh root 로그인 거부
vi /etc/ssh/sshd_config
PermitRootLogin no

- package repository 추가
raspbian은 ubuntu와 달리 별도의 repository를 추가할 필요가 없다.
심지어 archive location도 변경할 필요가 없다.
자동으로 모든 repository를 조회하며, 가장 가까운 location의 archive를 이용한다.





[WOL 설정하는 방법]

WOL을 이용하기 위해서는 웹서버와 php가 필요하다.

웹서버와 php의 설치 및 연동 방법은 아래의 페이지에 아주 자세하게 잘 나와있다.


mariadb 설치 부분을 제외한 나머지 부분을 따라하면 되며,

http://IP주소/info.php 접속 시 php 화면이 잘 나오는 것까지 확인할 수 있다.

그러면 아래의 내용을 따라 wakeonlan 을 설정한다.

먼저 wakeonlan 프로그램을 설치한다.

sudo apt-get install wakeonlan

그리고 별도로 웹서버 디렉토리를 변경하지 않았다면 기본 웹서버 디렉토리는 /var/www/html 로 되어있을 것이다.

vi /var/www/html/wol.php

위의 명령을 실행하고 아래의 줄을 추가한 후 저장한다.

-------------------------------------------------------------
<?php
$run = shell_exec("wakeonlan MAC주소");
echo $run;
?>
-------------------------------------------------------------

MAC주소 부분은 WOL을 실행할 디바이스의 랜카드 MAC주소를 기입한다.

다 되었다면 테스트해본다.

init 0 을 통해 디바이스의 전원을 끈 다음 웹브라우저에서 아래의 url을 실행한다.

http://IP주소/wol.php

그러면 디바이스의 전원이 들어오는 것을 확인할 수 있다.

위의 방법은 라즈베리파이를 WOL Server로 하여 다른 PC의 WOL를 실행시키는 방법이며,

라즈베리파이 자체는 WOL를 지원하지 않는다고 한다.

"전원이 꺼지면 CPU가 멈추고 GPU가 저전력 모드로 들어가는데, GPU는 WOL을 지원하지 않기 때문에 NIC가 WOL을 인식하더라도 no response."





덧글|신고