Руководство по настройке обратного прокси 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 — это ключ к стабильной и защищённой работе сервиса.
