Доступ к локальной среде разработки ServBay в локальной сети
Для небольших команд разработчиков или индивидуальных разработчиков, которым необходимо тестировать проекты на разных устройствах, возможность получить доступ к локальной среде разработки ServBay по локальной сети (LAN) на других компьютерах является важным и обычным требованием. ServBay изначально поддерживает доступ к большинству основных сервисов через LAN, но для некоторых сервисов требуются дополнительные настройки для обеспечения безопасности и доступности.
В этой статье подробно описывается, как в LAN настроить и подключиться к сайтам и сервисам баз данных в ServBay.
Предварительные требования
Перед тем как попытаться получить доступ к сервисам ServBay через локальную сеть, убедитесь, что выполнены следующие условия:
- Сетевое соединение: Компьютер, на котором развернуты сервисы ServBay (далее — «хост»), и компьютер, с которого осуществляется доступ (далее — «клиент»), находятся в одной локальной сети.
- IP-адрес хоста: Вы знаете внутренний IP-адрес хоста в локальной сети. Найти его можно в настройках сети на хостовой машине.
- Настройка файрвола: Если на операционной системе хоста включён файрвол, необходимо разрешить внешние подключения к основным портам, которые использует ServBay (например, HTTP — обычно 80, HTTPS — 443, MySQL — 3306, PostgreSQL — 5432, Redis — 6379 и т. д.). Откройте в настройках файрвола соответствующие порты для необходимых сервисов и, при необходимости, ограничьте диапазон разрешённых IP-адресов с помощью ACL (Access Control List).
Сайт (Website)
Локальные сайты, созданные в ServBay, по умолчанию слушают все сетевые интерфейсы хоста (т. е. 0.0.0.0
или *
), что позволяет другим устройствам из вашей локальной сети обращаться к ним. ServBay использует в качестве веб-сервера Caddy или Nginx, у которых стандартные настройки обычно именно такие.
Однако, чтобы клиентский браузер мог получить доступ к сайту по доменному имени, нужно правильно настроить DNS-разрешение этого домена на клиентском компьютере. Кроме того, если ваш локальный сайт использует SSL-сертификаты, сгенерированные ServBay (что крайне рекомендуется), на клиенте также потребуется установить корневой сертификат ServBay, чтобы избежать предупреждений браузера.
Рассмотрим пример настройки:
- IP-адрес хоста в LAN:
10.0.0.3
- Домен сайта ServBay:
servbay.demo
- Корневая папка сайта:
/Applications/ServBay/www/servbay.demo
Настройка разрешения доменного имени (DNS)
Чтобы клиентская машина понимала, что домен servbay.demo
соотносится с IP 10.0.0.3
, есть два самых распространённых способа настройки:
Изменение файла Hosts на клиенте: Это самый простой и быстрый вариант, если клиентов немного.
- Найдите файл Hosts на клиентском устройстве:
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- Откройте файл с правами администратора и добавьте строку в конец файла:
10.0.0.3 servbay.demo
1 - Сохраните файл. Теперь при обращении к
servbay.demo
клиент будет перенаправляться на10.0.0.3
.
- Найдите файл Hosts на клиентском устройстве:
Настройка локального DNS-сервера: Если в вашей сети есть собственный DNS-сервер (например, в маршрутизаторе или отдельный сервер), добавьте в его настройки A-запись для
servbay.demo
с IP-адресом хоста (10.0.0.3
). После этого все устройства, использующие этот DNS, смогут разрешить домен.
Распространение и установка пользовательского CA-сертификата ServBay (SSL)
ServBay предоставляет полноценную PKI-инфраструктуру для локальной среды и создает свой корневой сертификат — ServBay User CA, который подписывает SSL-сертификаты локальных сайтов. Чтобы браузеры клиентов доверяли этим SSL-сайтам, необходимо установить User CA ServBay на каждую машину-клиент.
Экспортируйте ServBay User CA и распространите его всем пользователям, которые будут подключаться к сайту по HTTPS, с инструкциями по установке и доверию этому сертификату в их ОС или используемом браузере.
Подробные инструкции по экспорту и установке сертификата вы найдёте в разделе документации ServBay, посвящённом управлению SSL-сертификатами, особенно в частях "Экспорт сертификата" и "Установка в ОС/браузере".
Базы данных
ServBay поддерживает несколько видов СУБД: MySQL, MariaDB, PostgreSQL, MongoDB, а также in-memory базы Redis и Memcached. В зависимости от сервиса отличаются настройки сетевого взаимодействия по умолчанию и принципы управления доступом.
MySQL / MariaDB
По умолчанию сервисы MySQL и MariaDB в ServBay слушают все сетевые интерфейсы (0.0.0.0
), что позволяет подключаться к ним с других компьютеров в локальной сети.
Однако MySQL/MariaDB жёстко контролируют права пользователей. Даже если сетевое подключение имеется, пользователь должен иметь разрешение подключаться к базе с определённого IP-адреса, используя корректный логин и пароль.
Так, пользователь root
по умолчанию допускается к подключению ТОЛЬКО с 127.0.0.1
или localhost
. Чтобы разрешить доступ по LAN, необходимо создать отдельного пользователя или изменить существующего, разрешив вход с нужных IP-адресов или с любых (%
).
Пример создания пользователя servbay-demo
с доступом с любых IP-адресов в LAN и предоставления ему всех прав на конкретную БД:
-- Предполагается, что вы вошли под root или другим пользователем с нужными правами
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
2
3
4
Замените 'your_strong_password'
и your_database_name
на актуальные значения.
Важное примечание: Разрешение подключения с любых IP (%
) и широких прав — потенциальный риск безопасности. В продакшн-среде или небезопасных сетях следует ограничивать подключение только известными адресами (например, 'servbay-demo'@'10.0.0.5'
) или использовать VPN и другие защищённые подключения.
ServBay поддерживает сброс пароля root для MySQL и MariaDB. Используйте эту функцию или управляйте правами через клиентские приложения по мере необходимости.
Redis
В ServBay Redis по умолчанию слушает только localhost (127.0.0.1
), что не позволяет подключаться к нему по LAN. Это сделано специально, поскольку обычно Redis не защищён паролем.
Для разрешения доступа по LAN нужно изменить файл конфигурации Redis — redis.conf
.
Есть два способа:
1. Через UI-интерфейс ServBay
- Откройте ServBay, в левом меню выберите
Базы данных
→Redis
; - На странице настроек включите опцию
Require Password
и задайте надёжный пароль; - Нажмите
Сохранить
.
2. Ручное редактирование файла redis.conf
(не рекомендуется)
- Найдите путь к файлу конфигурации Redis (например,
/Applications/ServBay/etc/redis/redis.conf
). - Откройте
redis.conf
в редакторе. - Найдите строку
bind 127.0.0.1
. - Измените её на
bind 0.0.0.0
или закомментируйте (# bind 127.0.0.1
), чтобы Redis слушал все интерфейсы. - [Крайне важно] Найдите строку
requirepass
(может быть закомментирована), раскомментируйте и задайте сложный пароль:Никогда не выводите Redis в локальную сеть или интернет без пароля — это критично опасно!requirepass your_very_strong_redis_password
1 - Сохраните изменения.
- Перезапустите Redis через ServBay, чтобы применить конфигурацию.
Теперь клиенты могут подключаться к Redis-хосту по LAN через IP с помощью установленного пароля.
PostgreSQL
В исходных настройках PostgreSQL в ServBay тоже слушает только localhost (127.0.0.1
) и не доступен по LAN.
Чтобы открыть PostgreSQL для подключения по LAN, нужно изменить два файла: postgresql.conf
и pg_hba.conf
.
Найдите путь к этим файлам (например,
/Applications/ServBay/etc/postgresql/postgresql.conf
и/Applications/ServBay/etc/postgresql/pg_hba.conf
).Изменяем
postgresql.conf
:- Откройте файл в редакторе.
- Найдите строку
listen_addresses
(может быть закомментирована). - Раскомментируйте, поставьте значение
'*'
, чтобы PostgreSQL слушал все интерфейсы:listen_addresses = '*'
1 - Сохраните файл.
Изменяем
pg_hba.conf
:- Откройте файл. Здесь управляется разрешение на доступ по базам, пользователям, адресам и методам аутентификации.
- Добавьте строку для разрешения подключения с нужного сегмента LAN, например — разрешить подключение для всех пользователей с диапазона
10.0.0.0/24
через пароль (md5):# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
— подключение по TCP/IP.DATABASE
:all
— разрешено ко всем базам (можно указать конкретную).USER
:all
— разрешено всем пользователям (можно указать конкретного).ADDRESS
:10.0.0.0/24
— пример диапазона (замените на актуальный). Для всех IPv4 —0.0.0.0/0
(не рекомендуется).METHOD
:md5
— обязательная аутентификация по паролю. Не используйте trust/без пароля для удалённого доступа!
- Сохраните файл.
Перезапустите сервис PostgreSQL через ServBay для применения изменений.
Теперь клиенты могут заходить в PostgreSQL по IP хоста с валидным логином и паролем.
ServBay поддерживает сброс пароля пользователя root (postgres) для PostgreSQL. Управляйте доступом через эту функцию или клиентские инструменты.
Memcached
Memcached — высокопроизводительный распределённый кэш в памяти, очень простой по архитектуре и не имеет встроенной системы аутентификации или авторизации.
Поэтому крайне не рекомендуется выставлять Memcached наружу в локальную или, тем более, открытую сеть, если только у вас нет других механизмов сетевой защиты (например, изоляция защищённого подсегмента и строгие правила файрвола).
В ServBay можно перевести Memcached на прослушивание LAN, для этого отредактируйте его конфиг, аналогично Redis, но помните — пароль поставить невозможно.
Меры безопасности
Открытие локальных сервисов разработчика в LAN действительно удобно для командной работы и кросс-девайс тестирования, но и таит угрозы безопасности. Обязательно соблюдайте следующие рекомендации:
- Файрвол: Всегда используйте файрвол для ограничения доступа к открытым портам хоста ServBay. Разрешайте подключения только с доверенных IP-адресов вашей локальной сети.
- Сложные пароли: Используйте сложные пароли для всех баз данных (MySQL/MariaDB/PostgreSQL) и Redis. Меняйте их периодически.
- Минимальные права: Назначайте пользователям БД минимально необходимые доступы. Не используйте root/postgres для ежедневных удалённых подключений.
- Безопасность Memcached: Ещё раз: из-за отсутствия защиты у Memcached проявляйте максимальную осторожность, если выставляете его в LAN. Лучше использовать защищённый доступ (например, через SSH-туннель).
- Обновления ОС: Следите за актуальностью ОС хоста ServBay, самого ServBay и сопутствующих пакетов — устанавливайте обновления безопасности своевременно.
Следуя этим шагам и рекомендациям по безопасности, вы сможете безопасно и эффективно совместно использовать и тестировать вашу среду разработки ServBay в локальной сети.