58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
# Cloudflare Tunnel: безопасный доступ к вашему серверу для fetch-уведомлений MikroTik
|
||
|
||
## 1. Регистрация и подготовка
|
||
- Зарегистрируйтесь на https://cloudflare.com (если ещё нет аккаунта)
|
||
- Добавьте свой домен в Cloudflare (следуйте инструкциям, смените NS-записи у регистратора)
|
||
|
||
## 2. Установка cloudflared
|
||
- На сервере (где работает бот/FastAPI):
|
||
```
|
||
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
|
||
sudo dpkg -i cloudflared-linux-amd64.deb
|
||
# или через brew install cloudflared (macOS)
|
||
```
|
||
|
||
## 3. Авторизация и запуск туннеля
|
||
- Введите:
|
||
```
|
||
cloudflared tunnel login
|
||
```
|
||
- Откроется браузер, авторизуйтесь через Cloudflare.
|
||
- Создайте туннель:
|
||
```
|
||
cloudflared tunnel create mikrotik-bot
|
||
cloudflared tunnel route dns mikrotik-bot bot.example.com
|
||
```
|
||
- Запустите туннель:
|
||
```
|
||
cloudflared tunnel run mikrotik-bot
|
||
```
|
||
- Теперь ваш сервер доступен по адресу https://bot.example.com (через Cloudflare, без проброса портов!)
|
||
|
||
## 4. Настройка fetch-скрипта на MikroTik
|
||
- Используйте URL вида:
|
||
```
|
||
/tool fetch url="https://bot.example.com/event?type=wifi_connect&mac=$mac&ip=$ip" http-method=get
|
||
```
|
||
|
||
## 5. Безопасность
|
||
- Cloudflare Tunnel скрывает реальный IP сервера
|
||
- Можно ограничить доступ по IP/стране через Cloudflare Firewall
|
||
- Рекомендуется добавить секрет в URL (?secret=...) и проверять его на сервере
|
||
|
||
## 6. Автозапуск (systemd)
|
||
- Для автозапуска создайте сервис:
|
||
```
|
||
sudo cloudflared service install
|
||
```
|
||
- Проверьте статус:
|
||
```
|
||
sudo systemctl status cloudflared
|
||
```
|
||
|
||
---
|
||
|
||
## Преимущества
|
||
- Не нужно открывать порты на роутере/сервере
|
||
- Бесплатно для большинства задач
|
||
- Простая интеграция с MikroTik и Telegram-ботом |