Я пытаюсь развернуть своего бота Telegram со своего локального компьютера (где он работает через локальный туннель) на виртуальной машине на Proxmox за MikroTik с NAT и nginx.
- На виртуальной машине nginx завершает HTTPS и передает прокси /telegram_webhook на мой Python Quart app.
- Доступ к https://example.com/telegram_webhook через Curl с внешнего компьютера работает нормально.
- Однако бот не получает обновлений от Telegram.
- показывает:
Код: Выделить всё
getWebhookInfo
Код: Выделить всё
{
"ok": true,
"result": {
"url": "https://example.com/telegram_webhook",
"pending_update_count": 6,
"last_error_message": "Connection timed out",
"ip_address": "192.168.1.100(example)"
}
}
- Запуск tcpdump на виртуальной машине показывает, что нет пакетов, поступающих от Telegram.
- Локальные тесты (проверка POST вручную) работают нормально.
Мои текущие настройки
- Интерфейс WAN: ether1
- IP-адрес виртуальной машины: 192.168.1.100 (пример)
- Порт вебхука: 443 (проксируется на 3443 в виртуальной машине)
- Конфигурация nginx:
Код: Выделить всё
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/certificate.key;
location /telegram_webhook {
proxy_pass http://127.0.0.1:3443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
return 200 "Nginx is working\n";
add_header Content-Type text/plain;
}
}
Код: Выделить всё
/ip firewall nat
add chain=dstnat in-interface=ether1 protocol=tcp dst-port=443 \
action=dst-nat to-addresses=192.168.1.100 to-ports=443
/ip firewall filter
# allow established / related connections
add chain=forward connection-state=established,related action=accept
# allow new TCP connections from WAN
add chain=forward in-interface=ether1 protocol=tcp dst-port=443 action=accept
Какова правильная конфигурация MikroTik NAT/брандмауэра, чтобы веб-перехватчики Telegram могли достигать моей виртуальной машины и гарантировать возврат ответных пакетов?
- Мне нужен работающий двунаправленный путь для запросов и ответов веб-перехватчиков.
- Есть ли дополнительные Функции MikroTik (FastTrack, RAW, маршрутизация), которые могут блокировать пакеты Telegram даже при наличии правил NAT?
Подробнее здесь: https://stackoverflow.com/questions/798 ... otik-conne