Nextcloud nur lokal erreichbar

Hallo,

Ich hoffe ich bin hier richtig mit meinem Problem.

Ich habe ein kleines Problem mit meinem Nextcloud Server.

Ich benutze Ubuntu Server 20.04.1 LTS mit Nextcloud.
Ich habe in meiner Fritzbox 7590 eine Portfreigabe sowie DynDNS von No-IP eingerichtet.
Nun zu meinem Problem: Wenn ich versuche von meinem lokalen Netzwerk in dem auch der Server ist, über DynDNS den Webserver der Nextcloud zu erreichen, funktioniert alles wunderbar. Jedoch wenn ich versuche von außerhalb, sprich aus dem Mobilfunknetz oder einem anderen WLAN, darauf zu zugreifen, bekomme ich immer die Message: ERR_CONNECTION_TIMED_OUT.
Ich habe meine Fritzbox auch bei MyFritz angemeldet. Wenn ich versuche darüber auf die Fritzbox zu zugreifen, funktioniert es auch nicht. Ich habe aber unter Internet>Freigaben>FRITZ!Box-Dienste den Internetzugriff aktiviert.

Habe ich etwas übersehen? oder wisst ihr warum es nicht funktioniert?

Vielen Dank für eure Hilfe!!!

Gruß Lars

Du solltest erst mal schauen, ob die Namesauflösung deiner No-IP mit deiner externen IP-Adresse übereinstimmt. MyFritz ist eine eigene Baustelle. Ignoriere das erst mal.

Die externe IP-Adresse findest du irgendwo in der Fritzbox oder z. B. über https://ifconfig.me
DNS-Namen auflösen kannst du über “nslookup” oder https://mxtoolbox.com/DnsLookup.aspx
Zeigt der No-IP-Name auf die IP-Adresse, die du ermittelt hast?

Sollte das alles korrekt sein, dann kontrolliere ob die IP-Weiterleitung der Fritzbox korrekt auf deinen Server gesetzt ist. Schaue auch, ob du HTTP (80) und HTTPS (443) konfiguriert hast.

Habe alles erneut kontrolliert und es ist alles richtig eingerichtet!

Ich kann ja auch über die DNS Adresse auf den Webserver zugreifen. Halt nur nicht von außerhalb warum auch immer.

Am besten du postest mal ein paar Informationen. Gerne kannst du sie in Teilen anonymisieren.

apache2 nextcloud config

<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName cloud.example.de
Redirect / https://www.example.de
</VirtualHost>

<VirtualHost *:443>
 ServerAdmin cloud@example.de
 DocumentRoot /var/www/nextcloud/
 ServerName cloud.example.de
 ServerAlias www.cloud.example.de

 Alias /nextcloud "/var/www/nextcloud/"

 <Directory /var/www/nextcloud/>
    Options +FollowSymlinks
    AllowOverride All
    Require all granted
      <IfModule mod_dav.c>
        Dav off
      </IfModule>
    SetEnv HOME /var/www/nextcloud
    SetEnv HTTP_HOME /var/www/nextcloud
 </Directory>

 <IfModule mod_headers.c>
   Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
 </IfModule>

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/example.de_ssl_certificate.cer
	SSLCertificateKeyFile /etc/ssl/private/example.de_private_key.key
	SSLCertificateChainFile /etc/ssl/certs/example.de_ssl_certificate_INTERMEDIATE.cer
nextcloud config.php
<?php
$CONFIG = array (
'instanceid' => '*********',
'passwordsalt' => '*******************************',
'secret' => '***************************************************',
'trusted_domains' => 
array (
  0 => 'cloud.example.de',
),
'datadirectory' => '/home/data/',
'dbtype' => 'mysql',
'version' => '20.0.1.1',
'overwrite.cli.url' => 'http://cloud.example.de',
'dbname' => 'nextcloud',
'dbhost' => 'localhost',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextclouduser',
'dbpassword' => '************',
'installed' => true,
'mail_smtpmode' => 'smtp',
'mail_smtpsecure' => 'tls',
'mail_sendmailmode' => 'smtp',
'mail_smtpauth' => 1,
'skeletondirectory' => '',
'mail_from_address' => 'support',
'mail_domain' => 'example.de',
'mail_smtphost' => 'smtp.example.de',
'mail_smtpport' => '587',
'mail_smtpname' => 'support@example.de',
'mail_smtppassword' => '*******************',
'app_install_overwrite' => 
array (
  0 => 'flowupload',
),
'maintenance' => false,
);

Bei mir sieht die Apache2-Konfiguration ganz anders aus. Nutzt du denn ein selbstsigniertes Zertifikat oder hat das mal mit Lets Encrypt funktioniert.

Normalerweise konfiguriert man das nur für HTTP (nicht HTTPS, natürlich müssen Port 80 und 443 aus dem Internet erreichbar sein) und dann lässt man kurz “certbot” drüberlaufen, der dann die SSL-Konfiguration in einer eigenen Konfigurationsdatei erzeugt und dann neben HTTP dann HTTPS aktiviert.

Schau hier:
https://www.howtoforge.com/tutorial/how-to-install-nextcloud-on-debian-10

ja ich benutze ein selbstsigniertes Zertifikat, da Let’s encrypt bei der Domain nicht funktionieren will. Ich bekomme immer eine Fehlermeldung.

ich versuche es mal nur für http zu konfigurieren und probiere es dann mal.

Ich habe die Apache2 config Datei jetzt überarbeitet, sodass nur http eingerichtet ist.
Jetzt funktioniert es immerhin über http.

Wenn ich jetzt aber ein zertifikat mit Let’s encryp einrichten will bekomme ich wieder einen error: Timeout during connect (likely firewall problem).

Hast du einen Ahnung, was ich dagegen machen kann?

Leider nein. Es muss aus dem Internet HTTP erreichbar sein. Teste alles erneut.