#!/bin/bash # Скрипт для проверки сетевой связности с Traefik source .env 2>/dev/null || true TRAEFIK_HOST=${TRAEFIK_HOST:-192.168.50.59} APP_PORT=${APP_PORT:-3000} echo "🔍 Проверка сетевой связности..." echo "" # Получаем IP адреса текущего хоста echo "📍 IP адреса текущего хоста:" hostname -I echo "" # Проверка доступности локально echo "🏠 Проверка локального доступа (localhost:${APP_PORT})..." if curl -s -o /dev/null -w "%{http_code}" http://localhost:${APP_PORT} | grep -q "200"; then echo "✅ Приложение доступно локально" else echo "❌ Приложение НЕ доступно локально" echo " Проверьте: docker compose ps" fi echo "" # Проверка доступности контейнера echo "🐳 Статус контейнера:" docker compose ps 2>/dev/null || echo "⚠️ Docker Compose не запущен" echo "" # Проверка порта echo "🔌 Проверка открытых портов:" if command -v netstat &> /dev/null; then netstat -tulpn | grep ${APP_PORT} || echo "⚠️ Порт ${APP_PORT} не прослушивается" elif command -v ss &> /dev/null; then ss -tulpn | grep ${APP_PORT} || echo "⚠️ Порт ${APP_PORT} не прослушивается" fi echo "" # Инструкции для проверки с Traefik хоста echo "📋 Для проверки доступности с хоста Traefik (${TRAEFIK_HOST}):" echo "" echo " Выполните на хосте ${TRAEFIK_HOST}:" echo " curl http://\${APP_HOST_IP}:${APP_PORT}" echo "" echo " Где \${APP_HOST_IP} - один из IP адресов выше" echo "" # Проверка файрвола echo "🔥 Проверка файрвола (UFW):" if command -v ufw &> /dev/null; then sudo ufw status 2>/dev/null || echo "⚠️ UFW не установлен или требует sudo" else echo "⚠️ UFW не установлен" fi echo "" echo "💡 Рекомендации:" echo " 1. Убедитесь, что порт ${APP_PORT} открыт для ${TRAEFIK_HOST}" echo " 2. Проверьте файрвол: sudo ufw allow from ${TRAEFIK_HOST} to any port ${APP_PORT}" echo " 3. Используйте один из IP адресов выше в конфигурации Traefik"