Руководство по настройке обратного прокси frp в ServBay
frp (Fast Reverse Proxy) — это высокопроизводительный инструмент для обратного проксирования, который позволяет безопасно публиковать локальные сетевые сервисы в интернете. В ServBay интегрирован клиент frp (frpc), что позволяет вам подключаться к собственному серверу frp (frps) и получать доступ к размещённым в ServBay локальным сайтам по настраиваемому домену. Такой подход даёт вам полный контроль над сервером туннеля.
В этом руководстве подробно описаны шаги по настройке клиента frp в ServBay и подключению его к вашему серверу frps.
Обзор
В отличие от других управляемых туннельных сервисов в ServBay, использование frp требует предварительного самостоятельного развёртывания и настройки сервера frps на вашей инфраструктуре. ServBay выступает как клиент frpc, который направляет трафик с вашего локального сайта через frps-сервер в интернет. Такой способ оптимален для разработчиков, которым важна гибкость и максимальный контроль над туннелем.
Типовые сценарии использования
- Полный контроль над сервером туннеля: Вы самостоятельно управляете настройками, безопасностью и производительностью frps-сервера.
- Работа с индивидуальными доменами и SSL: Гибко настраивайте любые собственные домены для своих проектов и интегрируйте ACME SSL-сертификаты, управляемые ServBay (подробнее об ACME SSL).
- Расширенные сетевые настройки: frp поддерживает различные типы прокси и сложные сценарии.
- Частное размещение: Подходит, если вы не хотите зависеть от сторонних туннельных сервисов.
Предварительные требования
- Установленный ServBay: Убедитесь, что на вашем macOS установлен и запущен ServBay.
- Собственный сервер
frps
:- Требуется сервер с доступом из интернета, на котором развёрнут и запущен сервис
frps
. - Запишите внешний IP-адрес или доменное имя сервера
frps
. - Запомните параметры
bindPort
(порт для связи клиента с сервером) иtoken
(токен аутентификации) из конфигурацииfrps
(frps.toml
илиfrps.ini
).
- Требуется сервер с доступом из интернета, на котором развёрнут и запущен сервис
- Домены и конфигурация DNS:
- У вас должен быть зарегистрирован домен (например,
your-frp-server.com
), и его A-запись в DNS должна указывать на внешний IP вашего сервераfrps
. Через этот домен вы в дальнейшем будете открывать доступ к локальному сайту.
- У вас должен быть зарегистрирован домен (например,
- ACME SSL-сертификат в ServBay:
- Для доступа по HTTPS потребуется заранее выпустить ACME SSL-сертификат на нужный внешний домен через раздел SSL Certificates в ServBay. Например, если вы хотите открыть сайт по адресу
project.your-frp-server.com
, оформите сертификат на этот поддомен.
- Для доступа по HTTPS потребуется заранее выпустить ACME SSL-сертификат на нужный внешний домен через раздел SSL Certificates в ServBay. Например, если вы хотите открыть сайт по адресу
- Несколько поддоменов и SSL-сертификаты:
- Если вы планируете использовать несколько поддоменов, но не хотите создавать много отдельных A-записей в DNS, воспользуйтесь подстановкой (
*
). Добавьте запись типа A для*.your-frp-server.com
, указывающую на IP вашего сервера frps. В ServBay получите ACME SSL-сертификат с поддержкой wildcard-домена (при оформлении укажитеyour-frp-server.com, *.your-frp-server.com
, размещайте запись*
в самом конце, разделяйте домены запятой без пробелов). Теперь в ServBay сможете подключать любые поддомены (company-project.your-frp-server.com
,personal.your-frp-server.com
,customer-1.your-frp-server.com
) без дополнительной настройки A-записей и использовать единый сертификат.
- Если вы планируете использовать несколько поддоменов, но не хотите создавать много отдельных A-записей в DNS, воспользуйтесь подстановкой (
Пошаговая инструкция
1. Установка пакета frp в ServBay
- Откройте приложение ServBay.
- В левой панели выберите Software Packages (Пакеты).
- В списке найдите
frp
. - Нажмите кнопку установки рядом с
frp
. - После установки, если вы попробуете сразу запустить службу frp, она может не стартовать без первичной настройки — это ожидаемо.
2. Подготовьте сервер frps
и его конфигурацию
Вам необходимо самостоятельно установить и запустить frps
на вашем сервере с внешним доступом. ServBay может сгенерировать для вас пример шаблона конфигурационного файла frps.toml
(для новых версий frp) — это поможет начать настройку:
В ServBay перейдите в раздел Tunnel -> frp.
Найдите блок frp server config (frps.toml) и нажмите на выпадающую или раскрывающую иконку.
ServBay отобразит пример такого конфигурационного файла:
toml# The frps configuration file automatically generated by ServBay # is intended for direct use on the server. # Please adjust the configuration parameters according # to your specific needs. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # Для новых версий frps (например, 0.52.0+) используйте webServer.port, webServer.addr, webServer.user, webServer.password для настройки Dashboard # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Важные параметры настройки:
bindPort
: порт, по которому клиент frpc связывается с сервером frps. Обязательно откройте этот порт в настройках брандмауэра сервера. Рекомендуется ограничить доступ к этому порту — используйте фаервол, чтобы разрешить подключение только с нужных IP-адресов.auth.method = "token"
иauth.token
: параметры аутентификации клиента. Задайте надёжный, уникальный пароль!vhostHTTPPort = 80
иvhostHTTPSPort = 443
: порты, на которых frps принимает HTTP и HTTPS-запросы к виртуальным хостам.- [Ключевой момент] ServBay оптимизирован для сценария, при котором сервер frps слушает порты 80 и 443 как vhostHTTPPort и vhostHTTPSPort соответственно. В таком случае ACME SSL-сертификат, выпущенный через ServBay, будет автоматически проксироваться frps для HTTPS-доступа.
- Если на сервере frps невозможно использовать порты 80/443 (например, они заняты другим сервисом), настройте на сервере отдельный фронт-прокси (Nginx или Caddy), который будет слушать публичные порты 80/443 и пересылать трафик на реальные vhost-порты frps (например, 8080/8443). В таком случае SSL-сертификаты обрабатываются фронт-прокси, а не через ServBay.
log.to
: путь к лог-файлу frps.- Dashboard-параметры (например,
webServer.port
): позволяют подключаться к интерфейсу Dashboard frps (необязательно).
Скопируйте полученный шаблон настройки на ваш сервер, сохраните как
frps.toml
(илиfrps.ini
в зависимости от вашей версии frp) и откорректируйте параметры.Запустите сервис
frps
на сервере.
3. Настройте клиент frp в ServBay
Вернитесь к приложению ServBay и заполните параметры подключения:
В меню выберите Tunnel -> frp.
Введите параметры сервера frps:
- Server Address (Адрес сервера): укажите внешний IP-адрес или доменное имя сервера frps (например:
my.test.frp.server.host
). - Server Port (Порт сервера): пропишите значение
bindPort
из конфигурации frps (например:12345
). - Auth Token (Токен аутентификации): введите ваш
auth.token
из конфигурации frps (например:myserverpassword
).
- Server Address (Адрес сервера): укажите внешний IP-адрес или доменное имя сервера frps (например:
Задайте правила сопоставления туннелей:
- Local Domain (Локальный сайт): выберите из выпадающего списка сайт в ServBay, который хотите опубликовать (например:
servbay.demo
). - External Domain (Внешний домен): укажите домен, по которому будет доступен данный сайт в интернете (например:
test.ks.do
). Для этого домена должна быть настроена соответствующая A-запись на IP вашего frps-сервера.- Важно: В отличие от других туннельных сервисов ServBay (
Ngrok
,Cloudflared
), здесь нужно указывать полный домен.
- Важно: В отличие от других туннельных сервисов ServBay (
- ACME Certificates (ACME-сертификат): выберите из списка ранее полученный сертификат для этого домена (например, для
test.ks.do
).- Важно: Для HTTPS-доступа обязательно выберите соответствующий сертификат. ServBay передаст его frpc; тот, в свою очередь, после подключения к frps обеспечит использование сертификата для HTTPS-запросов к вашему внешнему домену. Отдельная ручная настройка SSL на сервере frps для этого домена не требуется!
- Local Domain (Локальный сайт): выберите из выпадающего списка сайт в ServBay, который хотите опубликовать (например:
Добавление нескольких туннелей:
- Для публикации нескольких сайтов или доменов добавьте новые правила, нажав на значок
+
справа от списка существующих туннелей.
- Для публикации нескольких сайтов или доменов добавьте новые правила, нажав на значок
4. Сохраните настройки и запустите службу frp
- После завершения настройки нажмите Save (Сохранить) в правом нижнем углу.
- ServBay сохранит конфигурацию frpc и попробует запустить службу frp.
- Обратите внимание на индикатор состояния напротив пункта
frp
в списке Tunnel. Если подключение прошло успешно — индикатор станет зелёным, что говорит о корректной работе сервиса. - Проверьте подключение:
- Теперь вы можете открыть ваш локальный сайт через указанный внешний домен (например,
https://test.ks.do
) из любой точки интернета. - Для проверки используйте иконки "скопировать" или "открыть в браузере" рядом с соответствующим доменом.
- Теперь вы можете открыть ваш локальный сайт через указанный внешний домен (например,
Важные моменты
- Развертывание и обслуживание сервера frps: Полная ответственность за установку, настройку, безопасность и обновления сервера frps лежит на вас.
- Безопасность bindPort: Используйте сложный токен (
auth.token
) и настройте ограничения фаервола на bindPort (например, разрешайте подключение только с определённых IP, если возможно). - Выбор vhostHTTPPort и vhostHTTPSPort:
- Рекомендуется напрямую слушать порты 80 и 443 на frps, чтобы максимально просто пользоваться сквозной передачей SSL-сертификата, полученного через ServBay.
- Если используется другой порт для виртуальных хостов, настройте Nginx или Caddy перед frps для прослушивания 80/443; SSL в таком случае обслуживает фронт-прокси.
- Необходимость ACME-сертификата: Для HTTPS на внешнем домене обязательно оформите подходящий сертификат через ServBay и выберите его в конфиге frp.
- Применение DNS: Проверьте, что выбранный внешний домен корректно настроен в DNS и A-запись указывает на ваш сервер frps. Дождитесь, пока DNS-записи распространятся по сети.
Часто задаваемые вопросы (FAQ)
- В: Служба frp не запускается в ServBay, индикатор красный или оранжевый — что делать?
- О: Проверьте правильность настроек в ServBay: совпадают ли
Server Address
,Server Port
иAuth Token
с параметрамиbindPort
иauth.token
в вашем файле конфигурации frps. Убедитесь, что сервер frps запущен и bindPort доступен для подключения с вашего Mac (нет ли блокировки по фаерволу). Посмотрите логи frp для поиска подробных ошибок.
- О: Проверьте правильность настроек в ServBay: совпадают ли
- В: Доступ по
External Domain
возможен только по HTTP, а по HTTPS — нет?- О: Проверьте, что для этого домена в конфигурации frp в ServBay выбран правильный ACME-сертификат. Убедитесь, что в frps.toml параметр
vhostHTTPSPort
соответствует порту прослушивания HTTPS (оптимально — 443).
- О: Проверьте, что для этого домена в конфигурации frp в ServBay выбран правильный ACME-сертификат. Убедитесь, что в frps.toml параметр
- В: Мой frps-сервер использует нестандартные порты (не 80/443) для vhost — как завести SSL?
- О: В этом случае настройте фронт-прокси (Nginx или Caddy) на сервере, чтобы слушать 80/443, самостоятельно получать и обслуживать сертификаты (не обязательно через ServBay), и перенаправлять трафик на внутренние порты frps. В таком сценарии поле ACME Certificates в настройках frp ServBay непосредственно для внешнего SSL не требуется — сертификаты обрабатываются фронт-прокси.
- В: Конфиг
frps.toml
, сгенерированный ServBay, и мой старыйfrps.ini
отличаются по формату?- О: Конфигурационный формат frp постепенно меняется с
.ini
на.toml
. ServBay создаёт шаблон в формате TOML. Если ваша версия frps более старая или вы предпочитаете INI, воспользуйтесь официальной документацией frp для конвертации. Ключевые параметры идентичны по смыслу.
- О: Конфигурационный формат frp постепенно меняется с
Итоги
Благодаря интеграции клиента frp, ServBay даёт macOS-разработчикам, которым требуется гибко и самостоятельно настраивать публикацию локальных ресурсов, удобный и мощный инструмент. С помощью собственного frps-сервера, совместно с простым управлением настройками клиентского frpc и сертификатами ACME в ServBay, вы сможете безопасно и гибко расшаривать свои проекты в сеть. Особое внимание уделяйте корректности и безопасности параметров, выбранных для frps и frpc — это ключ к стабильной и защищённой работе сервиса.