라즈베리 파이 · 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.zip

2015-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 -y

PlaySMS

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 restart

MySQL “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.conf

install.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 start

apache 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로 나열된 것을 볼 수 있습니다:

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 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  
make

make를 실행할 때 다음과 같은 오류가 발생하면:

 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.rules
ACTION=="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 = modem2

SMS 서버 도구 3을 재시작합니다:

/etc/init.d/sms3 restart

SMS 서버 도구 3이 실행 중인지 확인합니다:

ps ax | grep -v grep | grep smsd

SMS 서버 도구 3 로그 파일을 모니터링합니다:

tail -f /var/log/smsd.log

로그인하고 playsms 웹 패널에서 smstools 구성

playsms 설치에 로그인합니다. 제 주소는 http://10.255.50.30/입니다.

사용자 이름은 admin입니다.
비밀번호는 admin입니다.

이제 설정 => 게이트웨이 및 SMSC 관리로 이동합니다.

다음과 같은 화면이 표시되어야 합니다:

이제 smstools 게이트웨이를 편집하려면 클릭합니다.

그리고 다음과 같이 설정되어 있는지 확인합니다:

저장 클릭, 저장되면 뒤로 클릭합니다.

이제 SMSC를 설정해야 하므로 SMSTools에서 + 기호를 선택합니다.

다음과 같이 SMSC 세부정보를 입력해야 하며, 수신자 번호에는 모뎀 전화번호를 입력합니다.

작업이 완료되면 저장을 클릭합니다.

이제 설정 => 기본 구성으로 이동합니다.

다음 필드를 입력합니다:

기본 발신자 ID
기본 접두사 또는 국가 코드

그리고 기본 SMSCsmstools로 설정합니다. 아래 이미지와 같이.

저장 클릭, 이제 첫 번째 SMS를 보낼 준비가 되었습니다.

SMS 보내기

이제 내 계정 => 메시지 작성으로 이동합니다.

받는 사람에 휴대폰 번호를 입력하고 메시지 필드에 Hello World!와 같은 메시지를 입력한 후 전송을 클릭합니다.

메시지가 대기열에 추가되면 다음에서 거래를 따를 수 있습니다:

보고서 => 모든 발송 메시지로 이동합니다.

처리되지 않은 수신 메시지는 샌드박스에 보관됩니다. 이는 보고서 => 샌드박스에서 확인할 수 있습니다.

문제가 발생하면 보고서 => 로그 보기에서 확인할 수 있습니다.

설정에 문제가 있는 경우 playsms 포럼에서 도움을 요청하는 것이 좋습니다.

https://forum.playsms.org/

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.