
Ich habe beschlossen, Proxmox auf meinem neuen Server zu installieren, um Web-, E-Mail- und VPS-Server zu hosten. Auf diese Weise kann ich für jeden Servertyp mehrere VMs einrichten.
Ich habe mich für Debian 9 als Apache-Webserver entschieden. Außerdem habe ich es bereits geschafft, meine WordPress-Sites mit dem Duplicator-Plugin zu importieren, und das hat einwandfrei funktioniert. Ich habe meine WP_Options-Tabelle in PHPMyAdmin so bearbeitet, dass die Site-URL https statt HTTP ist, und dann meinen virtuellen Apache-Host wie folgt eingerichtet (mydomain.com.conf).
<VirtualHost *:80>
ServerName mydomain.com
ServerAdmin root@localhost
Redirect "/" "https:// mydomain.com"
</VirtualHost>
<VirtualHost *:443>
ServerAdmin root@localhost
DocumentRoot /var/www/mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
<Directory /var/www/mydomain.com>
AllowOverride All
DirectoryIndex index.php
Require all granted
</Directory>
</VirtualHost>
Ich kann lokal auf meine Website zugreifen, indem ich in meiner Windows-Hosts-Datei eine Regel wie diese einrichte:
192.168.10.104 mydomain.com
Ich habe auch eine statische IP eingerichtet, um zu verhindern, dass der Webserver eine neue IP-Adresse erhält. Das habe ich in /etc/network/interfaces gemacht
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens18
iface ens18 inet static
address 192.168.10.104
netmask 255.255.255.0
gateway 192.168.10.1
# This is an autoconfigured IPv6 interface
iface ens18 inet6 auto
Ich möchte darauf hinweisen, dass ich einen virtuellen Host für meine [öffentliche IP-Adresse][1] erstellt habe.
Um Konflikte zu vermeiden, habe ich die UFW-Firewall deaktiviert und fail2ban entfernt. Nur vorerst.
Meiner Ansicht nach sind mein DNS, meine Nameserver und die Portweiterleitung korrekt eingerichtet. Ich könnte mich jedoch irren.
[Meine Domain-Registrar-NS-Konfigurationen][2]
[Meine DNS-Konfigurationen auf DigitalOcean][3]
[Meine Portweiterleitungskonfigurationen][4]
Wenn ich versuche, meine Website über [UpTrends][5] zu erreichen, erhalte ich die Meldung „TCP-Verbindung fehlgeschlagen“. Aus meiner lokalen Sicht auf der Website gibt es auch keine Probleme mit meinem SSL-Zertifikat.
Irgendein Rat?
Antwort1
Endlich!
Die Lösung bestand wie sich herausstellte darin, zusätzlich zu einem Serverneustart einfach den Router neu zu starten (bei getrennter Stromversorgung für 10 Sekunden).
Manchmal lassen sich die Probleme auf einfache, aber unerwartete Weise beheben:)
Antwort2
Ihre DNS-Konfiguration ist korrekt und beim Besuch http://example.com
wird erfolgreich eine Verbindung zu publicip:80 hergestellt und eine HTTP-Weiterleitung ausgeführt.
Allerdings wird beim Verbinden mit publicip:443 (also https://example.com
) die ICMP-Meldung „Host unreachable“ zurückgegeben, die in diesem Fall entweder von Ihrem Router (dem Gerät mit der öffentlichen IP-Adresse, ob es sich dabei um den Proxmox-Host oder einen dedizierten Router handelt, spielt keine Rolle) oder vom Webserver selbst kommen muss.
Da der ICMP-Fehler mit einer Verzögerung auftritt,höchstwahrscheinlichkommt vom Router und zeigt an, dass die Portweiterleitungsregel für :443 auf die falsche IP-Adresse verweist (eine, die nicht verwendet wird, d. h. ARP-Antwort-Timeout).
(Wenn es sich um eine Firewall-Blockierung handeln würde, würde der Verbindungsversuch entweder sofort einen RST- oder ICMP-Fehler oder überhaupt nichts zurückgeben.)
Wenn die Einstellungensehenrichtig, verwenden Sie tcpdump
, um einen Blick darauf zu werfen, was istGenau genommenpassiert. Wenn es tcpdump -e -n -i <interface> "arp or port 443"
auf dem Proxmox-Host ausgeführt wird (auf der Schnittstelle zu Ihrer Web-VM), wird die tatsächliche IP-Adresse angezeigt, die die Portweiterleitungsregel zu erreichen versucht.
Das Gleiche gilt im Allgemeinen; es reicht nicht aus, Dinge einfach abzuschalten. Man muss auch dieaktuellFirewall-Regeln (die eigentliche Firewall ist entweder iptables oder nft); d. h. prüfen Sie, ob der aktuelle Status mit dem angeforderten Status übereinstimmt. Sie wissen nicht sicher, dass die Firewall nach dem Deaktivieren von ufw vollständig leer ist, bis Sie mit iptables-save
, iptables-legacy-save
, prüfen nft list ruleset
.