라즈베리 파이 · 7 min read · Dec 08, 2025
라즈베리 파이 SMS 서버 설치 방법
시작하기 전에
이 튜토리얼에서는 Raspbian을 실행하는 Raspberry Pi 2 Model B에서 SMS 서버를 설정하는 방법을 보여줍니다.
playsms와 smstools를 사용할 것입니다. 제 예제에서는 Huawei E3131 3G 모뎀을 사용했습니다.
Raspbian
먼저 raspbian을 다운로드해야 합니다. 최신 버전은 https://www.raspberrypi.org/downloads/ 에서 받을 수 있습니다.
직접 URL: http://downloads.raspberrypi.org/raspbian_latest
이제 파일을 압축 해제해야 합니다: 2015-05-05-raspbian-wheezy.zip:
unzip 2015-05-05-raspbian-wheezy.zip2015-05-05-raspbian-wheezy.img라는 파일이 생성됩니다. 이 파일은 micro-sd 카드에 기록되어야 합니다.
라즈베리 파이 작업 및 micro-sd에 이미지 쓰기에 대한 기본 사항을 알고 싶다면 이 튜토리얼을 읽어보세요:
https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/
이미지 파일을 micro-sd 카드에 기록합니다. 제 PC에서 micro-sd 카드는 Linux에서 /dev/mmcblk0으로 표시됩니다. dd를 사용할 수 있습니다:
dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0- 블록 크기를 4M로 설정하면 대부분의 경우 작동합니다. 작동하지 않으면 1M를 시도해 보세요. 그러나 이 경우 상당히 오랜 시간이 걸립니다.
- 또한 root로 로그인하지 않은 경우 sudo를 접두어로 추가해야 합니다.
이미지가 기록되면 micro-sd 카드를 Raspberry Pi에 삽입하고 전원을 켭니다.
Raspberry Pi가 부팅되면 첫 번째 시작 시 다음과 같은 화면이 표시됩니다.

이제 다음 옵션을 선택합니다:
1 Expand Filesystem
3 Enable Boot To Desktop/Scratch -> Select Console Text Console, requiring login (default)
8 Advanced Options -> A4 SSH -> Enable
8 Advanced Options -> A0 Update
Finish -> Reboot이제 다음 사용자 이름으로 로그인할 수 있습니다: pi 및 비밀번호: raspberry.
먼저 다음을 편집하여 서버의 네트워크 구성을 설정합니다.
sudo nano /etc/network/interfaces제 /etc/network/interfaces 파일은 다음과 같습니다 (필요에 따라 설정을 변경하세요):
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.255.50.30
netmask 255.255.255.0
gateway 10.255.50.1
dns-nameservers 8.8.8.8 8.8.4.4이제 Pi에서 네트워크 서비스를 재시작합니다:
sudo /etc/init.d/networking restart그런 다음 다음 명령으로 시작 시 DHCP를 비활성화합니다:
sudo update-rc.d -f dhcpcd remove나중에 다시 활성화하려면 다음 명령을 실행하세요:
sudo update-rc.d dhcpcd defaults이제 PuTTY와 같은 SSH 클라이언트를 사용하여 PC에서 Raspberry Pi에 연결할 수 있습니다.
이제 다음 명령으로 raspbian을 업데이트합니다:
sudo apt-get update && apt-get upgrade -y && apt-get dist-upgrade -yPlaySMS
playsms 1.1을 다운로드하고 설치합니다:
sudo -s
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl
php5enmod mcrypt
service apache2 restartMySQL “root” 사용자에 대한 새 비밀번호를 요청받으면 강력한 비밀번호를 사용하세요. 이 예제에서는 MyP@$$w0rd를 사용했습니다.
이제 http://your-ip로 이동할 수 있습니다. 제 경우에는 http://10.255.50.30이며, “It Works!”라는 페이지가 표시됩니다.
cd /tmp/
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz
tar -zxf playsms-1.1.tar.gz -C /usr/local/src
ls -l /usr/local/src/
cd /usr/local/src/playsms-1.1/
cp install.conf.dist install.conf
nano install.confinstall.conf.dist를 install.conf로 복사하고 install.conf를 편집합니다.
install.conf를 읽고 시스템 구성에 맞게 변경합니다.
파일을 편집하여 다음과 같이 보이도록 했습니다:
# INSTALL DATA
# ============
# Please change INSTALL DATA below to suit your system configurations
# Please do not change variable name, you may change only the value
# MySQL database username
DBUSER="root"
# MySQL database password
DBPASS="MyP@$$w0rd"
# MySQL database name
DBNAME="playsms"
# MySQL database host
DBHOST="localhost"
# MySQL database port
DBPORT="3306"
# Web server's user, for example apache2 user by default is www-data
# note: please make sure your web server user
WEBSERVERUSER="www-data"
# Web server's group, for example apache2 group by default is www-data
# note: please make sure your web server group
WEBSERVERGROUP="www-data"
# Path to playSMS extracted source files
PATHSRC="$(pwd)"
# Path to playSMS web files
# note: please make sure your web root path, in this example its /var/www/html
PATHWEB="/var/www/html/playsms"
# Path to playSMS additional files
PATHLIB="/var/lib/playsms"
# Path to playSMS daemon and other binary files
PATHBIN="/usr/local/bin"
# Path to playSMS log files
PATHLOG="/var/log/playsms"
# END OF INSTALL DATA
# ===================이제 실행합니다:
./install-playsms.sh모든 것이 괜찮아 보이면 Y를 누릅니다.
이제 rc.local 파일에 다음 줄을 추가하여 playsms가 부팅 시 시작되도록 합니다.
nano /etc/init.d/rc.local파일의 맨 아래에 다음을 추가합니다: /usr/local/bin/playsmsd start (exit 명령이 있는 경우 exit 이전에 추가합니다). 이렇게 하면 playsmsd가 부팅 시 자동으로 시작됩니다.
..
/usr/local/bin/playsmsd startapache vhost 파일을 편집합니다:
nano /etc/apache2/sites-available/default제 vhost 파일은 다음과 같습니다:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/playsms
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined 이제 변경 사항을 적용하기 위해 Apache2 구성을 다시 로드합니다.
service apache2 reload그런 다음 다음 URL에서 playsms 웹사이트에 접근할 수 있어야 합니다:
http://your-ip 등. http://10.255.50.30
로그인할 수 있습니다:
사용자 이름: admin
비밀번호: admin
게이트웨이 - SMS 서버 도구 3
먼저 최신 버전을 빌드하기 위해 빌드 도구를 설치합니다. 실행:
apt-get install build-essential libusb-1.0 libusb-1.0-0-dev이제 Huawei E3131 모뎀을 연결했으며 lsusb로 나열된 것을 볼 수 있습니다:
lsusblsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.ID: 12d1:1506으로 설정되기를 원하지만 현재 12d1:14fe로 감지되고 있습니다.
이를 변경하기 위해 usb_modeswitch를 시스템에 설치합니다. 최신 버전은 여기에서 받을 수 있습니다:
http://www.draisberghof.de/usb_modeswitch/#download
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2
tar jxvf usb-modeswitch-2.2.5.tar.bz2
cd usb-modeswitch-2.2.5
make install
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2
tar xjvf usb-modeswitch-data-20150627.tar.bz2
cd usb-modeswitch-data-20150627
make install이제 모뎀을 분리하고 다시 연결한 다음 실행합니다:
lsusb lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard이제 원하는 모드인 12d1:1506을 얻었습니다.
다음으로 SMS 서버 도구 3을 진행합니다.
먼저 다운로드한 후 압축을 풀고 설치합니다.
cd /usr/local/src
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz
tar -zxvf smstools3-3.1.15.tar.gz
cd smstools3
makemake를 실행할 때 다음과 같은 오류가 발생하면:
make
cd src && make -
make[1]: Entering directory '/usr/local/src/smstools3/src'
Makefile:51: * recipe commences before first target. Stop.
make[1]: Leaving directory '/usr/local/src/smstools3/src'
Makefile:10: recipe for target 'compile' failed
make: * [compile] Error 2다음과 같이 하세요:
nano src/Makefile문제는 탭이 누락된 것입니다. 이제 다음을 찾아보세요:
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endif그리고 override LFLAGS += -lsocket -lnsl 줄을 탭으로 이동합니다.
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endif그리고 다시 make를 실행해 보세요:
make
make install이제 필요한 폴더를 생성합니다:
mkdir -p /var/log/sms/stats
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}
mkdir /var/spool/sms/modem1
chown www-data:www-data -R /var/spool/sms
chmod 777 -R /var/spool/sms그런 다음 원래 구성 파일을 이동하고 PlaySMS에서 샘플을 다운로드합니다:
mv /etc/smsd.conf /etc/smsd.conf.dist
cd /tmp
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf
cp smsd.conf /etc/정확한 장치를 항상 사용하도록 하려면 동적 장치 파일을 사용하겠습니다.
동적 장치 파일에 대한 자세한 내용은 다음 URL을 참조하세요: http://antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/
nano /etc/udev/rules.d/80-ttyusb-map.rulesACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"touch /etc/udev/rules.d/ttyusb-map.sh
chmod 755 /etc/udev/rules.d/ttyusb-map.sh
nano /etc/udev/rules.d/ttyusb-map.sh#!/usr/bin/perl -w
@items = split("/", $ARGV[0]);
for ($i = 0; $i < @items; $i++) {
if ($items[$i] =~ m/^usb[0-9]+$/) {
print $items[$i + 1] . "\n";
last;
}
}이제 모뎀을 분리하고 다시 연결하면 /dev/gsm*에 위치해야 합니다:
ls -l /dev/gsm*
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0파일을 약간 수정하여 제 구성은 다음과 같습니다. 제 모뎀은 /dev/gsm1-1에 위치하므로 해당 위치로 교체하세요.
# Global configuration
devices = modem1, modem2
devices = modem1
loglevel = 5
# logfiles
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log
# Default queue directory = /var/spool/sms
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent
# do not set report folder, let status report files saved in incoming
#report = /var/spool/sms/report
delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes
# Queue configurations
[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2
# Modem configurations
# Modem name: modem1
# Modem type: Wavecom USB
[modem1]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#init = AT+CPMS="ME","ME","ME"
device = /dev/gsm1-1
baudrate = 19200
incoming = yes
pin = 3391
report = yes
queues = modem1
decode_unicode_text = yes
cs_convert = yes
# Modem name: modem2
# Modem type: Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2SMS 서버 도구 3을 재시작합니다:
/etc/init.d/sms3 restartSMS 서버 도구 3이 실행 중인지 확인합니다:
ps ax | grep -v grep | grep smsdSMS 서버 도구 3 로그 파일을 모니터링합니다:
tail -f /var/log/smsd.log로그인하고 playsms 웹 패널에서 smstools 구성
playsms 설치에 로그인합니다. 제 주소는 http://10.255.50.30/입니다.
사용자 이름은 admin입니다.
비밀번호는 admin입니다.
이제 설정 => 게이트웨이 및 SMSC 관리로 이동합니다.
다음과 같은 화면이 표시되어야 합니다:
이제 smstools 게이트웨이를 편집하려면 클릭합니다.
그리고 다음과 같이 설정되어 있는지 확인합니다:
저장 클릭, 저장되면 뒤로 클릭합니다.
이제 SMSC를 설정해야 하므로 SMSTools에서 + 기호를 선택합니다.
다음과 같이 SMSC 세부정보를 입력해야 하며, 수신자 번호에는 모뎀 전화번호를 입력합니다.
작업이 완료되면 저장을 클릭합니다.
이제 설정 => 기본 구성으로 이동합니다.
다음 필드를 입력합니다:
기본 발신자 ID
기본 접두사 또는 국가 코드
그리고 기본 SMSC를 smstools로 설정합니다. 아래 이미지와 같이.
저장 클릭, 이제 첫 번째 SMS를 보낼 준비가 되었습니다.
SMS 보내기
이제 내 계정 => 메시지 작성으로 이동합니다.
받는 사람에 휴대폰 번호를 입력하고 메시지 필드에 Hello World!와 같은 메시지를 입력한 후 전송을 클릭합니다.
메시지가 대기열에 추가되면 다음에서 거래를 따를 수 있습니다:
보고서 => 모든 발송 메시지로 이동합니다.
처리되지 않은 수신 메시지는 샌드박스에 보관됩니다. 이는 보고서 => 샌드박스에서 확인할 수 있습니다.
문제가 발생하면 보고서 => 로그 보기에서 확인할 수 있습니다.
설정에 문제가 있는 경우 playsms 포럼에서 도움을 요청하는 것이 좋습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.