
Ich bin gerade dabei, eine kleine persönliche Website von einer Virtualbox-VM in einen Docker-Container zu migrieren, der auf meinem persönlichen Computer gehostet wird. Aber ich habe das Problem, dass ich die Meldung „Verbindungs-Timeout“ erhalte, wenn ich versuche, diesen Container vom Internet aus zu erreichen (ich versuche es mit meinem Telefon ohne WLAN). Von anderen Computern im selben Netzwerk aus funktioniert es jedoch nicht.
Folgendes habe ich bisher getestet:
Lokales Netzwerk
Alles funktioniert gut, sowohl mit http://localhost als auchhttp://192.168.1.10von jedem anderen Computer im Netzwerk
Ich verstehe diesen Test so, dass mein Computer und die Docker-Konfiguration einwandfrei funktionieren und der Server von außerhalb des Computers zugänglich ist.
Aus dem Internet
Auf meinem Internet-Gateway habe ich eine Portweiterleitung eingerichtet. Bei der Umleitung auf 192.168.1.15 habe ich korrekten Zugriff auf den VM-Server.
bei der Umleitung auf 192.168.1.10 erhalte ich ein Gateway-Timeout und das Port-Prüftool sagt, dass Port 80 geschlossen ist
Ich verstehe aus diesem Test, dass mein ISP nicht im Weg steht und mein Gateway die Daten ordnungsgemäß an die richtige IP weiterleitet. Auch auf der Clientseite (mein Telefon/Telefonanbieter) gibt es kein Problem.
nützliche Konfiguration
- Docker-Compose-Konfiguration:
version: "3.7"
services:
proxy:
image: nginx:stable
ports:
- "80:80"
volumes:
- ./proxy/conf.d:/etc/nginx/conf.d
- ./proxy/conf.d/site.conf
server {
listen 80;
server_name example.com; # not actual DNS, but it doesn’t seem to be in cause.
location / {
deny all;
}
}
Ja,funktioniert guteigentlich meine ich, dass ich jetzt einen 403 Forbidden-Fehler bekomme
- Gateway-Portweiterleitung (in einer Benutzeroberfläche) Port 80 zu Port 80 Host 192.168.10
- Das Virtualbox-VM-Netzwerk ist als Bridge konfiguriert und hat die IP 192.168.1.15
- alle geschriebenen internen IPs sind statisch
Lassen Sie mich wissen, ob weitere Informationen erforderlich sind
ausgeschlossen
Ich habe absichtlich alle SSL- und DNS-Variablen ausgeschlossen, bis dieses Problem behoben ist. Sie werden anschließend konfiguriert.
Ich suche hauptsächlich nach Ideen, was ich sonst noch überprüfen könnte, da alle Teile einzeln gut zu funktionieren scheinen, mir aber offensichtlich etwas fehlt.
Bearbeiten: Habe mir die Ausgabe des Curl-Befehls von einem Remotecomputer zum Problem des geschlossenen Ports/Timeouts etwas genauer angesehen:
$ curl -v --output - 142.#.#.#
* Trying 142.#.#.#:80...
* Connected to 142.#.#.# (142.#.#.#) port 80 (#0)
> GET / HTTP/1.1
> Host: 142.#.#.#
> User-Agent: curl/7.83.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 502 Connection timed out
< Date: Wed, 01 Jun 2022 16:34:06 GMT
< Connection: close
< Cache-Control: no-store
< Content-Type: text/html
< Content-Language: en
< Content-Length: 219
<
<HEAD><TITLE>Connection timed out</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
Connection timed out</B></FONT>
<!-- default "Connection timed out" response (502) -->
</BODY>
* Closing connection 0
Ausgabe der Portprüfung
$ nmap 142.#.#.# -p 81
...
Host is up (0.077s latency).
PORT STATE SERVICE
80/tcp open http
$ nc -zvw10 142.#.#.# 80
...
[142.#.#.#] 80 (http) open
aber Ping.eu, das ich zuerst verwendet habe, zeigt es immer noch als geschlossen an. Ich bin mir nicht sicher, wie sie es überprüfen