Посібник із налаштування зворотного проксі frp у ServBay
frp (Fast Reverse Proxy) — це високопродуктивний зворотний проксі, який дозволяє безпечно відкривати локальні мережеві сервіси у публічну мережу. ServBay інтегрує функціональність клієнта frp (frpc), щоб ви могли підключитись до власноруч встановленого сервера frp (frps) та отримати доступ до локальних сайтів у ServBay через ваш власний домен. Такий підхід дає вам повний контроль над тунельним сервером.
У цьому керівництві докладно описано, як налаштувати клієнт frp у ServBay та підключитися до вашого сервера frps.
Огляд
На відміну від інших хмарних тунельних сервісів у ServBay, для використання frp необхідно попередньо встановити й налаштувати серверну частину frps на власному сервері. ServBay виступає в ролі клієнта frpc, який спрямовує трафік локального сайту через сервер frps у глобальний інтернет. Така схема підходить розробникам, які потребують максимального налаштування й контролю тунелю.
Застосування
- Повний контроль над серверами тунелю: Ви самі визначаєте всі параметри безпеки, продуктивності й налаштування сервера frps.
- Власний домен і SSL: Гнучко налаштовуйте будь-які ваші домени для локальних проєктів і інтегруйте керовані ServBay ACME SSL сертифікати.
- Розширене мережеве налаштування: frp підтримує різні типи проксі та продвинуті конфігурації для вирішення складних завдань.
- Приватне розгортання: Ідеально підходить для сценаріїв, де не бажано покладатися на сторонні тунельні сервіси.
Передумови
- Встановлений ServBay: Переконайтеся, що на вашому macOS встановлено та запущено ServBay.
- Власний сервер
frps
:- Вам потрібен сервер із публічним IP, на якому буде запущено сервіс
frps
. - Запишіть публічний IP-адрес або доменне ім’я вашого сервера
frps
. - Занотуйте порти
bindPort
(порт для з’єднання frpc та frps) іtoken
(токен для аутентифікації) із конфігураційного файлу (frps.toml
абоfrps.ini
).
- Вам потрібен сервер із публічним IP, на якому буде запущено сервіс
- Домен і налаштування DNS:
- Необхіден публічний домен (наприклад,
your-frp-server.com
) з A-записом, що вказує на IP-адресу сервераfrps
. В подальшому до локального сайту звертатимуться через цей домен.
- Необхіден публічний домен (наприклад,
- ACME SSL сертифікат у ServBay:
- Для доступу до домену за HTTPS потрібно попередньо подати заявку на ACME SSL сертифікат для зовнішнього домену через SSL Certificates у ServBay. Наприклад, якщо ви плануєте використовувати
project.your-frp-server.com
, подайте заявку на сертифікат для нього.
- Для доступу до домену за HTTPS потрібно попередньо подати заявку на ACME SSL сертифікат для зовнішнього домену через SSL Certificates у ServBay. Наприклад, якщо ви плануєте використовувати
- Декілька піддоменів та SSL сертифікати:
- Якщо потрібне використання багатьох піддоменів без окремих DNS A-записів для кожного, можна додати один "дикий" запис
*.your-frp-server.com
на IP вашого сервера frps. У ServBay подайте заявку на мультидоменний ACME SSL сертифікат (у поліDomain
вкажіть:your-frp-server.com, *.your-frp-server.com
, обов’язково останнім додайте зірочку та розділяйте англійською комою). Далі ви можете додавати будь-які піддомени в ServBay без необхідності створювати нові A-записи та користуватись єдиним SSL сертифікатом. - Завдяки цьому ви легко відкриваєте через ServBay такі адреси, як
company-project.your-frp-server.com
,personal.your-frp-server.com
, абоcustomer-1.your-frp-server.com
без зайвої ручної роботи.
- Якщо потрібне використання багатьох піддоменів без окремих DNS A-записів для кожного, можна додати один "дикий" запис
Кроки налаштування
1. Встановлення пакету frp у ServBay
- Запустіть додаток ServBay.
- В лівому меню виберіть Пакети (Packages).
- В списку знайдіть
frp
. - Натисніть кнопку встановлення біля
frp
. - Після встановлення, якщо спробувати запустити frp, він не стартує (бо ще не налаштований) — це нормально.
2. Підготовка сервера frps
та його конфігурації
Встановіть та запустіть frps
на вашому сервері з доступом до Інтернету. ServBay може згенерувати базовий шаблон конфігурації frps.toml
(для нових версій frp), щоб спростити старт:
У ServBay перейдіть до Tunnel -> frp.
Знайдіть та натисніть на іконку-стрілку чи розгортання біля frp server config (frps.toml).
ServBay покаже приклад файлу
frps.toml
: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. Переконайтеся, що порт відкрито у брандмауері. Настійливо рекомендується налаштувати контроль доступу (наприклад, через брандмауер) для цього порту frps, дозволивши лише довірені IP.auth.method = "token"
іauth.token
: аутентифікація клієнта. Обов’язково задайте власний надійний пароль.vhostHTTPPort = 80
іvhostHTTPSPort = 443
: прослуховування HTTP та HTTPS віртуальних хостів на frps.- [Ключове] Рекомендовано, щоб сервер frps працював саме на 80 і 443 портах як
vhostHTTPPort
таvhostHTTPSPort
. Це дозволить ServBay автоматично передавати ACME SSL сертифікат для обраного домену та спростить налаштування. - Якщо frps не може працювати на 80/443 (наприклад, вони зайняті), — тоді потрібно додати перед сервером frps ще один зворотний проксі (Nginx чи Caddy), який буде ловити трафік на публічних 80/443 та прокидати його далі на frps. У такому випадку SSL сертифікат налаштовується саме у цьому проксі, а не в ServBay.
- [Ключове] Рекомендовано, щоб сервер frps працював саме на 80 і 443 портах як
log.to
: шлях до лог-файлу frps.- Dashboard (webServer.port тощо): налаштування Dashboard frps — за потреби.
Скопіюйте ці налаштування на ваш сервер і збережіть як
frps.toml
(абоfrps.ini
у разі використання старої версії чи особистих уподобань). Відкоригуйте параметри під власні задачі.Запустіть сервіс frps.
3. Налаштування клієнта frp у ServBay
Поверніться в додаток ServBay і вкажіть параметри підключення до сервера frps:
Зайдіть у Tunnel -> frp.
Заповніть такі параметри серверу frps:
- Server Address (адреса сервера): Введіть публічний домен або IP вашого сервера frps (наприклад:
my.test.frp.server.host
). - Server Port (порт сервера): Впишіть значення
bindPort
, яке налаштовано у вашомуfrps.toml
(наприклад:12345
). - Auth Token (токен авторизації): Це значення з параметра
auth.token
у вашомуfrps.toml
(наприклад:myserverpassword
).
- Server Address (адреса сервера): Введіть публічний домен або IP вашого сервера frps (наприклад:
Настройте правила тунелювання:
- Local Domain (локальний сайт): Виберіть із випадаючого списку, який локальний сайт ServBay ви бажаєте зробити публічним (наприклад:
servbay.demo
). - External Domain (зовнішній домен): Введіть публічний домен, за яким користувачі мають звертатись до вашого сайту (наприклад:
test.ks.do
). DNS цього домену має вказувати на сервер frps.- Увага: Не як у інших сервісах (наприклад, Ngrok або Cloudflared), тут потрібно вказати повний домен.
- ACME Certificates (ACME сертифікат): Оберіть зі списку раніше створений у ServBay SSL сертифікат для цього домену (наприклад, для
test.ks.do
).- Важливо: Щоб мати доступ по HTTPS, обов’язково оберіть правильний сертифікат. ServBay передасть дані сертифіката frpc, який після з’єднання дозволить frps обробляти HTTPS-запити для потрібного домену. Це означає, що на сервері frps не потрібно окремо налаштовувати SSL — все зробить ServBay.
- Local Domain (локальний сайт): Виберіть із випадаючого списку, який локальний сайт ServBay ви бажаєте зробити публічним (наприклад:
Додавайте ще тунелі:
- Для створення тунелів для кількох сайтів чи доменів натисніть
+
праворуч від поточного запису.
- Для створення тунелів для кількох сайтів чи доменів натисніть
4. Збереження налаштувань і старт frp
- Після внесення усіх даних натисніть Зберегти (Save) у правому нижньому куті.
- ServBay збереже конфігурацію frpc і спробує запустити frp.
- Перевірте індикатор стану біля frp у списку Tunnel. Якщо все налаштовано правильно й frpc підключено до frps — лампочка стане зеленою.
- Перевірте підключення:
- Тепер можна зайти на ваш сайт через вказаний зовнішній домен (
https://test.ks.do
). - Для перевірки натисніть іконку копіювання або браузера поруч із доменом.
- Тепер можна зайти на ваш сайт через вказаний зовнішній домен (
Важливе
- Відповідальність за сервер frps: Ви відповідальні за встановлення, налаштування та захист сервера frps.
- Безпека порту
bindPort
на frps: Використовуйте складнийauth.token
і обмежуйте доступ до цього порту в брандмауері (наприклад, тільки з потрібних IP). - Вибір портів vhostHTTPPort/vhostHTTPSPort:
- Рекомендовано — слухати 80/443 напряму для максимальної простоти інтеграції із ACME SSL у ServBay.
- Якщо frps не має прямого доступу до 80/443 — налаштуйте перед ним проксі (Nginx/Caddy), який слухатиме 80/443, керуватиме SSL і прокидатиме трафік далі на фонові порти vhost.
- Необхідність ACME сертифіката: Щоб працював HTTPS — подайте заявку на ACME у ServBay і виберіть його в конфігурації frp.
- DNS-пропагування: Переконайтеся, що А-запис зовнішнього домену вказує на IP сервера frps і DNS вже поширився у світі.
Часті питання (FAQ)
- Q: frp у ServBay не запускається, лампочка червона або помаранчева. Що робити?
- A: Перевірте, чи збігаються
Server Address
,Server Port
,Auth Token
із відповідними полями уfrps.toml
. Перевірте роботу сервера frps і доступність порту (прохідність через брандмауер). Перегляньте логи frp для деталізації помилок.
- A: Перевірте, чи збігаються
- Q: Доступ до сайту ззовні є, але входжу через HTTP, а не HTTPS?
- A: Перевірте, чи для домену обрано потрібний ACME сертифікат, і чи порт
vhostHTTPSPort
на frps дорівнює 443.
- A: Перевірте, чи для домену обрано потрібний ACME сертифікат, і чи порт
- Q: frps працює не на 80/443, як налаштувати SSL?
- A: У цьому разі треба поставити перед frps ще один проксі (Nginx/Caddy), який слухатиме 80/443, керуватиме SSL і пересилатиме трафік далі на vhost-порти frps. У цій схемі SSL налаштовується вже у проксі, а не в ServBay.
- Q: Шаблон frps.toml у ServBay відрізняється від мого frps.ini?
- A: Формат конфігурації frp поступово переходить із
.ini
до.toml
. ServBay генерує.toml
-шаблон; якщо у вас стара версія або пріоритет.ini
, дивіться офіційну документацію frp — суть параметрів однакова.
- A: Формат конфігурації frp поступово переходить із
Підсумок
ServBay із вбудованою підтримкою клієнта frp — потужний інструмент для macOS-розробників, яким потрібен максимум контролю та гнучкості при організації публічного доступу до внутрішніх сайтів. За допомогою власного фоново розгорнутого frps, простого налаштування frpc у ServBay та менеджменту ACME SSL-сертифікатів ви можете безпечно й зручно публікувати локальні проєкти у глобальній мережі. Особливо уважно налаштовуйте параметри frps/frpc — передусім порти та безпеку для надійної та стабільної роботи.