Порт 8000 на marzban недоступен?

Установив Marzban в Docker, я заметил, что порт 8000 недоступен с моего ПК, в то время как порты 22 и 7575 работают без проблем. В файле /opt/marzban/.env указаны параметры UVICORN_HOST=0.0.0.0 и UVICORN_PORT=8000. Проведя проверку с помощью команды netstat -tuln, я увидел следующую информацию: 

```
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN 
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN 
tcp        0      0 0.0.0.0:7575            0.0.0.0:*               LISTEN 
```

Что может быть причиной, по которой порт 8000 недоступен, несмотря на правильные настройки?
  • 15 марта 2025 г. 20:14
Ответы на вопрос 2
Судя по данным, которые вы предоставили, проблема заключается в том, что сервис на порту 8000 слушает только на `127.0.0.1` (localhost), что означает, что он доступен только изнутри контейнера или самой машины, но не снаружи.

Для того чтобы порт 8000 был доступен извне, вам нужно убедиться, что сервис слушает на всех интерфейсах (0.0.0.0). 

Вы можете попробовать следующее:

1. **Проверьте конфигурацию Marzban**: Убедитесь, что в файле `/opt/marzban/.env` параметры указаны правильно:
   ```
   UVICORN_HOST=0.0.0.0
   UVICORN_PORT=8000
   ```
   Если они уже указаны правильно, перейдите к следующему шагу.

2. **Перезапустите контейнер**: Изменения в `.env` файле могут не вступить в силу, если не перезапустить контейнер. Используйте команды:
   ```bash
   docker-compose down
   docker-compose up -d
   ```

3. **Проверьте настройки Docker**: Убедитесь, что порт 8000 перенаправляется из контейнера на хост выбранной машины. В вашем `docker-compose.yml` файле или в командной строке, используйте параметр `ports`, чтобы перенаправить порт 8000. Например:
   ```yaml
   ports:
     - "8000:8000"
   ```

4. **Проверьте настройки брандмауэра**: Если у вас настроены правила брандмауэра на вашем хосте, убедитесь, что они не блокируют доступ к порту 8000.

5. **Проверка сети Docker**: Убедитесь, что контейнер находится в правильной сети, которая позволяет доступ извне, и что он корректно соединен со всеми необходимыми другими контейнерами.

После выполнения этих шагов попробуйте снова получить доступ к порту 8000. Если все прошло успешно, вы должны получить ответ от сервиса Marzban на этом порту.
маржбан в новых версиях не пускает на себя без SSL 
что кстати показывает netstat - 8000й порт доступен только на локалхосте
Похожие вопросы