Всем привет. Мне, как и автору этого поста, и его читателям довелось помучится с настройкой 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, и установив нужный порт.
Если у кому-то поможет, и увидит что-то лишнее, поправьте..