Доступ к локальной среде разработки 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.demo1 - Сохраните файл. Теперь при обращении к
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 и предоставления ему всех прав на конкретную БД:
sql
-- Предполагается, что вы вошли под root или другим пользователем с нужными правами
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;1
2
3
4
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_password1 - Сохраните изменения.
- Перезапустите 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 md51
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 в локальной сети.
