Diskussion fortgesetzt von Wie konfiguriere ich SMTP, um localhost zu verwenden?:
Ich versuche, eine Verbindung zu Protonmail Bridge herzustellen, die auf dem Host läuft, und es schlägt mit connection refused fehl. Meine Einstellungen sind:
DISCOURSE_SMTP_ADDRESS: 172.17.0.1
DISCOURSE_SMTP_PORT: 1025
Jetzt Nmap-Tests:
nmap 127.0.0.1 auf dem Host gibt aus:
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000010s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
1025/tcp open NFS-or-IIS
1042/tcp open afrog
nmap 172.17.0.1 im Docker-Container gibt keinen Port 1025 aus.
Ich habe auch in meiner app.yml-Datei im Abschnitt expose versucht:
172.17.0.1:1025:1025
Aber dann konnte der Docker-Container nicht starten und meldete “the port is already in use”.
Schließlich, wenn ich versuche, mich mit Openssl vom localhost aus zu verbinden:
openssl s_client -connect 127.0.01:1025 -starttls smtp
funktioniert es einwandfrei; aber nicht, wenn ich versuche, vom Docker-Container aus zu verbinden:
openssl s_client -connect 172.17.0.1:1025 -starttls smtp
Überprüfung mit ss auf dem Host:
ss -plnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.1:1025 0.0.0.0:* users:(("proton-bridge",pid=953,fd=12))
Was mache ich falsch?
Eine Sache, die ich in dieser Stackoverflow-Antwort gefunden habe, besagt:
- Sie können nur auf Host-Dienste zugreifen, die entweder (a) auf
INADDR_ANY(auch bekannt als 0.0.0.0) lauschen oder die explizit auf derdocker0-Schnittstelle lauschen.
Zuerst habe ich iptables --list überprüft, was meiner Meinung nach die Standardausgabe liefert:
iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:https
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Nun frage ich mich, ob der Protonmail Bridge-Dienst, der auf 127.0.0.1:1025 lauscht, keine Verbindungen vom Docker-Container akzeptiert, weil sie nicht genau von 127.0.0.1 stammen?