Raspberry Pi · 8 min read · Dec 08, 2025
Как установить SMS-сервер на Raspberry Pi
Прежде чем начать
Этот учебник покажет вам, как настроить SMS-сервер на Raspberry Pi 2 Model B, работающем под управлением Raspbian.
Мы будем использовать playsms и smstools. В моем примере я использовал 3G модем Huawei E3131.
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 карту.
Если вам нужно знать некоторые основы работы с Raspberry Pi и записи образа на micro-sd, вы можете начать с чтения этого учебника:
https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/
Запишите файл образа на micro-sd карту, на моем ПК micro-sd карта видна как /dev/mmcblk0 на Linux вы можете использовать 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 Расширить файловую систему
3 Включить загрузку на рабочий стол/Scratch -> Выбрать текстовую консоль, требующую входа (по умолчанию)
8 Расширенные параметры -> A4 SSH -> Включить
8 Расширенные параметры -> A0 Обновить
Завершить -> ПерезагрузитьТеперь вы можете войти с именем пользователя: 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Теперь мы можем использовать SSH-клиент, такой как PuTTY, чтобы подключиться с нашего ПК к 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 restartКогда вас попросят ввести новый пароль для пользователя MySQL “root”, используйте надежный пароль, в этом примере я использовал MyP@$$w0rd
Теперь мы можем перейти по адресу http://your-ip, в моем случае http://10.255.50.30 , и мы увидим страницу с сообщением: “Это работает!”.
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 и внесите изменения в соответствии с конфигурацией вашей системы.
Я отредактировал файл, чтобы он выглядел так:
# УСТАНОВОЧНЫЕ ДАННЫЕ
# ============
# Пожалуйста, измените УСТАНОВОЧНЫЕ ДАННЫЕ ниже, чтобы соответствовать конфигурации вашей системы
# Пожалуйста, не изменяйте имя переменной, вы можете изменить только значение
# Имя пользователя базы данных MySQL
DBUSER="root"
# Пароль базы данных MySQL
DBPASS="MyP@$$w0rd"
# Имя базы данных MySQL
DBNAME="playsms"
# Хост базы данных MySQL
DBHOST="localhost"
# Порт базы данных MySQL
DBPORT="3306"
# Пользователь веб-сервера, например, пользователь apache2 по умолчанию - www-data
# примечание: пожалуйста, убедитесь, что ваш пользователь веб-сервера
WEBSERVERUSER="www-data"
# Группа веб-сервера, например, группа apache2 по умолчанию - www-data
# примечание: пожалуйста, убедитесь, что ваша группа веб-сервера
WEBSERVERGROUP="www-data"
# Путь к извлеченным исходным файлам playSMS
PATHSRC="$(pwd)"
# Путь к веб-файлам playSMS
# примечание: пожалуйста, убедитесь, что ваш корневой путь веб-сайта, в этом примере это /var/www/html
PATHWEB="/var/www/html/playsms"
# Путь к дополнительным файлам playSMS
PATHLIB="/var/lib/playsms"
# Путь к демону playSMS и другим исполняемым файлам
PATHBIN="/usr/local/bin"
# Путь к файлам журналов playSMS
PATHLOG="/var/log/playsms"
# КОНЕЦ УСТАНОВОЧНЫХ ДАННЫХ
# ===================Теперь выполните:
./install-playsms.shНажмите Y, если все выглядит нормально.
Теперь мы хотим убедиться, что playsms запускается при загрузке, добавив строку в файл rc.local.
nano /etc/init.d/rc.localДобавьте следующее в файл: /usr/local/bin/playsmsd start
внизу файла (перед exit, если есть команда exit).
Таким образом, playsmsd будет автоматически запускаться при загрузке.
..
/usr/local/bin/playsmsd startОтредактируйте файл vhost apache:
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
# Возможные значения: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined Теперь перезагрузите конфигурацию Aapache2, чтобы применить изменения.
service apache2 reloadЗатем вы сможете получить доступ к веб-сайту playsms по следующему URL:
Перейдите по адресу http://your-ip и т.д. http://10.255.50.30
Вы можете войти с:
имя пользователя: admin
пароль: admin
Шлюз - SMS Server Tools 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 Server Tools 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.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 замените это на ваше местоположение.
# Глобальная конфигурация
#devices = modem1, modem2
devices = modem1
loglevel = 5
# журналы
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log
# Директория очереди по умолчанию = /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
# не устанавливайте папку отчета, пусть файлы отчетов о статусе сохраняются в входящих
#report = /var/spool/sms/report
delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes
# Конфигурации очереди
[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2
# Конфигурации модема
# Имя модема: modem1
# Тип модема: 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
# Имя модема: modem2
# Тип модема: 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 Server Tools 3:
/etc/init.d/sms3 restartПроверьте, работает ли SMS Server Tools 3:
ps ax | grep -v grep | grep smsdМониторинг файла журнала SMS Server Tools 3:
tail -f /var/log/smsd.logВойдите и настройте smstools в веб-панели playsms
Войдите в вашу установку playsms, мой адрес http://10.255.50.30/
Имя пользователя: admin
Пароль: admin
Теперь перейдите в Настройки => Управление шлюзом и SMSC.
Вы должны увидеть экран, похожий на этот:
Теперь нажмите, чтобы отредактировать шлюз smstools.
И убедитесь, что он настроен так:
Нажмите Сохранить, и когда он будет сохранен, нажмите назад.
Теперь вам нужно настроить SMSC, поэтому выберите знак + в SMSTools.
Вы должны заполнить данные SMSC следующим образом, в поле номера получателя введите номер вашего модема.
Когда вы закончите, нажмите сохранить.
Теперь перейдите в Настройки => Основная конфигурация
И заполните следующие поля:
Идентификатор отправителя по умолчанию
Префикс или код страны по умолчанию
И установите SMS по умолчанию на smstools, как показано на изображении ниже.
Нажмите сохранить, мы готовы отправить первое SMS.
Отправить SMS
Теперь перейдите в Мой аккаунт => Написать сообщение
Напишите свой номер мобильного телефона в поле Отправить, и сообщение и т.д. Привет, мир! в поле сообщения и нажмите отправить.
Если сообщение попадает в очередь, вы можете отслеживать транзакцию здесь:
Перейдите в Отчеты => Все отправленные сообщения
Входящие сообщения, которые не обрабатываются, хранятся в песочнице, вы увидите это в Отчетах => Песочница
И журнал, если что-то не так, находится в Отчетах => Просмотреть журнал
Если у вас есть какие-либо проблемы с вашей настройкой, хорошее место, чтобы получить помощь, это форум playsms.
Get new posts in your inbox
No spam. Unsubscribe anytime.