Вопрос или проблема
У меня есть локальная сеть с диапазоном 192.168.68.1/24
, подключенная к модему 192.168.15.1/24
, и TrueNAS Scale 24.10, Tailscale, NPM и NextCloud на IP 192.168.68.68
с именем ada
. SSL пока не используется.
Недавно я пытался настроить странную конфигурацию с SSL, которая не сработала, так что я решил вернуться к этапу, где все работает только с портами и без SSL (поэтому NPM фактически ничего не делает и имеет пустую конфигурацию).
Я правильно настроил Tailscale для работы без HTTPS, так что я могу без проблем получить доступ как через 192.168.68.68
, ada
, так и через ada.alpha-centauri.ts.net
практически ко всему: веб-админ на :80
, админ nginx на :30020
, NextCloud на :30027
и даже к моей странной настройке subversion на :3690
.
За исключением одного: NextCloud не принимает вход через ada.alpha-centauri.ts.net
. Он не выдает сообщения «не доверенный домен» или другие. Он просто 🔄 на полсекунды, и я остаюсь на странице входа. Если я войду через 192.168.68.68
, IP Tailscale, ada
, то всё работает отлично.
Лог docker NextCloud для этого события выглядит так:
2025-03-09 16:34:20.658522+00:00172.16.2.1 - - [09/Mar/2025:16:34:20 +0000] "POST /login HTTP/1.1" 303 1910 "http://ada.iguana-centauri.ts.net:30027/login?direct=1&user=dandrea" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
2025-03-09 16:34:20.658522+00:00172.16.2.1 - - [09/Mar/2025:16:34:20 +0000] "POST /login HTTP/1.1" 303 1910 "http://ada.alpha-centauri.ts.net:30027/login?direct=1&user=dandrea" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
2025-03-09 16:34:20.720773+00:00172.16.2.1 - - [09/Mar/2025:16:34:20 +0000] "GET /login?direct=1&user=dandrea HTTP/1.1" 200 8488 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
2025-03-09 16:34:21.530861+00:00127.0.0.1 - - [09/Mar/2025:16:34:21 +0000] "GET /status.php HTTP/1.1" 200 1068 "-" "curl/7.88.1"
Значимая информация в ./config/config.php
(я удалил некоторые критические строки):
<?php
$CONFIG = array (
'htaccess.RewriteBase' => "https://superuser.com/",
'overwrite.cli.url' => 'http://ada.alpha-centauri.ts.net/nextcloud',
'preview_imaginary_url' => 'http://imaginary:9000',
'overwriteprotocol' => 'http',
'trusted_proxies' =>
array (
0 => '127.0.0.1',
1 => '192.168.68.68',
2 => '192.168.0.0/16',
3 => '172.16.0.0/12',
4 => '10.0.0.0/8',
),
'trusted_domains' =>
array (
0 => '127.0.0.1',
1 => '192.168.68.68',
2 => 'ada',
3 => 'ada.alpha-centauri.ts.net',
4 => 'ada.local',
5 => 'localhost',
6 => 'nextcloud',
),
);
Я не знаю, как это отладить. Есть какие-либо идеи?
Ответ или решение
Проблема, описанная в вашем вопросе, связана с невозможностью входа в NextCloud с определенного домена, хотя он указан как доверенный. Давайте разберемся в возможных причинах и предложим решения.
Теория
В вашем сетапе есть несколько ключевых компонентов, которые могут влиять на работу NextCloud:
-
Доверенные домены NextCloud: Это домены, с которых NextCloud позволяет подключаться. Он не должен блокировать доступ с добавленных в
trusted_domains
доменов. -
Прокси и переадресация: Поскольку Nginx Proxy Manager (NPM) и другие компоненты, такие как Tailscale, используются в вашей конфигурации, они могут накладывать дополнительные уровни обработки и маршрутизации запросов к NextCloud.
-
Конфигурация Tailscale и локальная сеть: Возможно, взаимодействие между компонентами локальной сети и Tailscale влияет на маршрутизацию.
-
Конфигурация NextCloud: Некорректные настройки, такие как
overwrite.cli.url
иoverwriteprotocol
, могут неправильно направлять запросы и редиректы.
Примеры
На основе предоставленной информации:
-
Лог действий: Ваш Docker-лог показывает, что NextCloud обрабатывает POST запросы на
/login
, но затем выдаёт GET на ту же страницу, что говорит о неудавшейся авторизации. -
Конфигурация:
overwrite.cli.url
указывает на/nextcloud
, но путь в GET запросе/login?direct=1&user=dandrea
показывает, что адреса могут не соотноситься корректно.overwriteprotocol
установлен наhttp
, что может вызвать проблемы, если некоторые компоненты ожидают HTTPS соединение или некорректно обрабатывают HTTP.
Применение
Следующие шаги помогут в устранении проблемы:
-
Изменение конфигурации NextCloud:
-
Проверьте и измените
overwrite.cli.url
на'http://ada.alpha-centauri.ts.net:30027/'
. Это должно соответствовать маршруту, по которому вы обращаетесь к NextCloud. -
Убедитесь, что все использованные IP-адреса и домены, такие как
'ada.alpha-centauri.ts.net'
, добавлены в массивtrusted_domains
. -
Рассмотрите возможность удаления или проверки
htaccess.RewriteBase
и других специфических настроек, которые могут конфликтовать с текущей настройкой.
-
-
Тестирование и диагностика сети:
-
Проверьте работу Tailscale и убедитесь, что он корректно перенаправляет трафик в сеть 192.168.68.0/24.
-
Убедитесь, что ваш обход SSL с использованием 80-го порта настроен верно и не вызывает проблемы при работе с прокси или Tailscale.
-
-
Просмотр логов и отладка:
-
Активируйте режим отладки в NextCloud для более детальной информации о процессе логина. Это делается через изменение уровня журналирования в файле
config.php
('loglevel' => 0
). -
Проверьте логи Tailscale и, возможно, Nginx Proxy Manager на наличие анормальных действий или ошибок, чтобы убедиться, что прокси и маршрутизация работают правильно.
-
-
Изоляция проблемы:
- Попробуйте временно отключить NPM и Tailscale, если они не критичны для связи, чтобы проверить работу NextCloud напрямую через ваш локальный IP и домены. Это упростит диагностику.
В итоге, проблема с доступом через ada.alpha-centauri.ts.net
возникает, возможно, из-за несоответствий в конфигурациях и взаимодействиях между компонентами сети. Применение вышеуказанных решений должно помочь в нахождении источника проблемы и ее устранении.