Перейти к содержанию

Вопрос

Опубликовано

Имею статический IP адрес, зарегистрировал доменное имя в KeenDNS (server.keenetic.pro), режим работы выбрал "Прямой доступ".

Для Nextcloud создал доменное имя 4го уровня (web.server.keenetic.pro), в конфиге nextcloud добавил соответствующий доверенный домен. Не могу достучаться до web.server.keenetic.pro. Видимо не правильно выставляю порт в KeenDNS (TCP 80/443) и не верная настройка NGINX. Помогите пожалуйста разобраться.

Настройки NGINX начинаются так:

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/var/run/php/php8.0-fpm.sock;
}

# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
    "" "";
    default "immutable";
}


server {
    listen 80;
    listen [::]:80;
    server_name web.server.keenetic.pro;

    # Prevent nginx HTTP Server Detection
    server_tokens off;

    # Enforce HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443      ssl http2;
   listen [::]:443 ssl http2;
    server_name web.server.keenetic.pro;

    # Path to the root of your installation
    root /var/www/nextcloud;

    # Use Mozilla's guidelines for SSL/TLS settings
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/
    ssl_trusted_certificate /etc/webmin/letsencrypt-ca.pem;
    ssl_certificate     /etc/webmin/letsencrypt-cert.pem;
    ssl_certificate_key /etc/webmin/letsencrypt-key.pem;

    # Prevent nginx HTTP Server Detection
    server_tokens off;

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)

Всем привет. Мне, как и автору этого поста, и его читателям довелось помучится с настройкой Nextcloud через Keenetic в режиме Через облако.
В итоге у меня получилось получить полноценный доступ к Nextcloud в том числе через iOS и Android приложения.
Я совершенный обыватель..поэтому на экспертное мнение не претендую, просто поделюсь тем, что получилось и своим пониманием ситуации..
У меня в наборе: Kenetic 4G, компьютер с Ununtu. Nextcloud я поставил из магазина Snap, доступного в Ubuntu. 

Чтобы доступ извне по KeenDNS работал нормально пришлось поковыряться: 
1. С переадресацией портов Nexcloud'ом данных с этих портов и адресов.
2. Работой Nextcloud по  HTTPS (делается элементарно в snap версии). KeenDNS работает по протоколу HTTPS, даже когда вы выбираете протокол HTTP, keenetic принимает данные по протоколу HTTPS а потом пересылает во внутреннюю сеть по протоколу  HTTP. Nextcloud по умолчанию разворачивается с протоколом HTTP, вроде все ок, но у этих двух протоклов по-разному формруются ссылки и пакеты с данными, поэтому например iOS приложение, которое работает только по HTTPS не может пробиться к облаку, и при работе через браузер облако будет работать с костылями.

Теперь по порядку. 
1  На кинетике включаем keenDNS, формируем доменное имя XXXXXX.XXXXXX.keenetic.link. Выбираем протокол HTTP/HTTPS и выбираем устройство на котором работает Nextcloud и порт для переадресации (пока нам нужно только доменное имя, пока неважно какой протокол, когда закончите настройку Nextcloud уже можно будет определиться с портами и протоколами).
Важно! Облачная служба KeenDNS в режиме "Через облако" поддерживает работу только по протоколам HTTP/HTTPS по следующим портам:
HTTP: 80, 81, 280, 591, 777, 5080, 8080, 8090 и 65080
HTTPS: 443, 5083, 5443, 8083, 8443 и 65083
Когда будете настраивать порт у Nextcloud это нужно помнить. 
2 В разделе  Список устройств настроек Keenetic'а фиксируем IP нашего устройства, где развернут Nextcloud
3 Редактируем Config Nextcloud
```
'trusted_donains' =>
array (
0 => '192.168.X.XX',
1 => 'XXXXXX.XXXXXXX.keenetic.link',
),

'trusted_proxies' =>
array (
0 => '192.168.2.0/24',
1 =>'192.168.1.0/24',
2 => '192.168.1.254',
),
'overwritehost => ‘XXXXXX.XXXXXXX.keenetic.link',
```
В доверенных доменах я указал внутренний IP компа с Nextcloud и доменное имя KeenDNS, в доверенных прокси я указал все адреса  из раздела настроек Маршрутизация Keenetic, думаю они у всех одинаковые.
После этого у вас будет доступен Nextcloud через Keenetic по HTTP, если в настройках роутера стоит протокол HTTP и идет перенаправление на правильный порт (snap версия сразу разворачивается на 80 порту), но не будут работать мобильные приложения и куча другого функционала. 

4 Включаем HTTPS, если у вас нет своего сертификата, не проблема. В  Snap версии выпускается свой самоподписанный, это делается одной командой:
```
sudo nextcloud.enable-https lets-encrypt
```

В других версиях я тоже думаю это не сложно делается. После этого у меня заработало все, в том числе в iOS и Android приложениях. 
Обратите внимание, когда будете настраивать Keenetic . Snap версия Nextcloud автоматически после выполнения команды let’s-encrypt меняет порт на 443. 
После этого до настройте раздел Доменное имя в Keenetic, поставив протокол HTTPS, и установив нужный порт. 
Если у кому-то поможет, и увидит что-то лишнее, поправьте.. 

Изменено пользователем Gromotik
  • 0
Опубликовано (изменено)

trusted_proxies - лишний блок.

4 пункт тоже лишний. Достаточно добавить в config.php строку

'overwriteprotocol' => 'https'
Изменено пользователем Hater
  • 0
Опубликовано

У меня все работало до обновления некстклауда до 30.0.1. Теперь при работе по локальному IP 192.168.1.168 все доступно и работает, а по xxx.xxx.keenetic.pro - 502 Bad Gateway. В какую сторону порыть, подскажите пожалуйста... 

  • 0
Опубликовано (изменено)

Хм... Сутки промучался, пробовал и так и эдак настройки менять, потом надоело, не трогал день. Попробовал снова зайти - Too many redirects. Сменил в KeenDNS порт на 443 и все взлетело. Что было - непонятно... 

Изменено пользователем nuacho
  • 0
Опубликовано

Хм.. Поторопился радоваться. Утром снова 502 Bad Gateway... Что же это может быть? Я что-то уже в ступоре... По локалке все доступно при этом. 

  • 0
Опубликовано

На текущий момент у кого-то работает доступ к облаку через keen DNS?

Я изменил config.php следующим образом:

'trusted_domains' => 
  array (
    0 => 'localhost',
    1 => '192.168.100.105', #ЭТО УЖЕ БЫЛО, ДОБАВЛЯЕМ СЛУДУЮЩИЕ СТРОКИ НИЖЕ.
  ),
  'overwritehost' =>'YOUR_DOMAIN.keenetic.pro',
  'overwriteprotocol' =>'https',

один раз я смог попасть в облако, но теперь ошибка 502 постоянно.

Как можно решить данную проблему?

  • 0
Опубликовано (изменено)

А кто его знает. Возможно и он.

Может это имеет значение: сам nextcloud поумолчанию работает по https на 443м порту, даже если заходить по http он будет перенаправлять на https. Вот моя настройка в роутере.

image.png.f546b1e242d647de4d1d5ac3562edb27.png

Изменено пользователем ala-a-din
  • 0
Опубликовано
В 22.03.2025 в 10:34, voitekhovich сказал:

Удалось заставить работать KeenDNS + NextCloud (31.0.2 base version apache).

СПАСИБО!
Я чуть ли не месяц мучался, до этого находил только инфу про preserve-host, но он не решал проблему, а вот preserve-origin реально решил проблему!
Жалко только эту редакцию комента я не увидел сразу и она не продублирована вниз. Я был здесь когда коммент был ещё не отредачен :)
В общем у кого проблема с входом (зацикленный логин) в Nextcloud от 31 версии через KeenDNS - ответ выше.

  • 0
Опубликовано (изменено)
В 22.03.2025 в 08:34, voitekhovich сказал:

Удалось заставить работать KeenDNS + NextCloud (31.0.2 base version apache).

Застрял на том, что не давало пройти авторизацию и всё время перенаправляло на страницу login что бы не вводил.
Проблема была в том, что keenetic заголовки режет, и чтоб этого не было надо в CLI keenetic прописать:

ip http proxy nextcloud preserve-origin
system configuration save

* nextcloud - это dns имя моего приложения из раздела KeenDNS
А в config.php достаточно добавить:

'trusted_domains' => 
array (
  0 => 'nextcloud.DOMAIN.keenetic.link',
),
'overwrite.cli.url' => 'https://nextcloud.DOMAIN.keenetic.link',
'overwritehost' => 'nextcloud.DOMAIN.keenetic.link',
'overwriteprotocol' => 'https',

После этого всё начало работать, НО только по доменному имени!
Больше по IP работать не будет и все запросы идут через интернет, даже внутри домашней сети.
* В KeenDNS протокол HTTP выбираем

Но можно донастроить, чтоб внутри сети запросы не выходили в интернет - через CLI keenetic добавить статический адрес в DNS keenetic:

ip host nextcloud.DOMAIN.keenetic.link 192.168.1.1
system configuration save

* 192.168.1.1 - ip адрес keenetic 
* нужно сбросить dns кэш или подождать
* если используется KVAS, то можно добавить dns запись через команду kvas hosts edit

ДОПОЛНИТЕЛЬНО
Если нужно чтоб в логах nextcloud отображались IP адреса устройств с которых идёт обращение, а не IP прокси (192.168.1.1), то в CLI keenetic прописать:

ip http proxy nextcloud x-real-ip
system configuration save

 

Что ещё пробовалось, но вроде как не понадобилось и не помогло решить проблему:
keenetic cli:

ip http proxy nextcloud preserve-host

config.php

'trusted_proxies' => ['192.168.1.1'],
'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],

приветствую подскажи пожалуйста, а как сделать чтобы и другие диапазоны IP работали для доступа например у меня также был доступ через VPN (10.66.66.х, машина на 10.66.66.200 зарегистрировано, как клиент) и через tailscale ('mediaserver' или IP). Разъясни пожалуйста и на каких шагах нужно что поправить...

У меня связка KeenDNS+Nextcloud 31.0.4+Nginx.

Заранее спасибо

Изменено пользователем sA.1.Ros

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.