NetSendo
Guides & Tips

Port 25 auf dem VPS blockiert? So versendest du trotzdem

NetSendo Team12 Min. Lesezeit
Port 25 auf dem VPS blockiert? So versendest du trotzdem

Wenn dein VPS keine E-Mails verschickt, hat der Cloud-Anbieter sehr wahrscheinlich den ausgehenden Port 25 blockiert – und bei den meisten Anbietern bleibt die Sperre, bis du die Freischaltung beantragst, manchmal lässt sie sich gar nicht aufheben. Die Lösung, die fast überall funktioniert: Mails nicht mehr direkt vom Server zustellen, sondern über ein authentifiziertes SMTP-Relay auf Port 587, 465 oder 2525 verschicken. Port 25 brauchst du nur, wenn du einen eigenen MTA betreibst, der direkt an die Mailserver der Empfänger zustellt.

Kurz gesagt: Teste mit nc -vz -w 5 gmail-smtp-in.l.google.com 25: Ein Timeout heißt, dass ausgehender Port 25 gefiltert wird. DigitalOcean sperrt 25, 465 und 587 auf jedem Droplet; Hetzner Cloud sperrt 25 und 465, lässt 587 aber offen; AWS, Google Cloud, Azure (außerhalb von Enterprise-Verträgen) und Vultr sperren Port 25 standardmäßig. Versende über ein Relay wie Amazon SES oder Mailgun auf 587 (oder 2525/2587, wenn auch 587 zu ist), oder beantrage die Freischaltung, wenn du wirklich direkt zustellen musst. Ein offener Port allein bringt dich nicht ins Postfach: Du brauchst außerdem PTR, SPF, DKIM, DMARC und eine aufgewärmte IP.

Wie prüfe ich, ob Port 25 auf meinem VPS blockiert ist?

Baue vom Server aus eine TCP-Verbindung zu einem echten Mailserver (MX) auf Port 25 auf: Eine 220-Begrüßung heißt, der Port ist offen; ein Timeout heißt, dass der Anbieter oder deine eigene Firewall den Verkehr verwirft. Mach denselben Test gegen dein Relay auf 587 und 465, damit du vor jeder Konfigurationsänderung weißt, welcher Weg offen ist.

Schritt 1: einen Mailserver zum Testen finden

# MX-Einträge eines großen Postfachanbieters
dig +short MX gmail.com
# 5 gmail-smtp-in.l.google.com.
# 10 alt1.gmail-smtp-in.l.google.com.
# ...

Schritt 2: ausgehenden Port 25 testen

# netcat: -v ausführlich, -z nur verbinden, -w 5 nach 5 Sekunden aufgeben
nc -vz -w 5 gmail-smtp-in.l.google.com 25

# ohne netcat: SMTP-Begrüßung über /dev/tcp der Bash lesen
timeout 10 bash -c 'exec 3<>/dev/tcp/gmail-smtp-in.l.google.com/25 && head -1 <&3' || echo "port 25 is blocked"

So liest du das Ergebnis:

Was du siehstWas es bedeutetNächster Schritt
220 mx.google.com ESMTP …Port 25 ist durchgehend offenDirekte Zustellung ist möglich; jetzt PTR und Reputation prüfen
Hängt, dann timed outPakete werden stillschweigend verworfen – typisch für eine AnbietersperreAnbieterregeln unten und eigene Egress-Regeln prüfen
Connection refusedEtwas weist die Verbindung aktiv ab (oft eine lokale Firewall-Regel oder ein Proxy)ufw/nftables und ausgehende Proxys prüfen
Name or service not knownDNS-Problem, kein Port-ProblemZuerst den Resolver reparieren

Schritt 3: dein Relay auf den Submission-Ports testen

Submission-Ports nutzen TLS, also testest du sie mit openssl s_client. Port 587 startet im Klartext und wechselt per STARTTLS zur Verschlüsselung; Port 465 ist ab dem ersten Byte verschlüsselt.

# 587 mit STARTTLS (Amazon SES, Endpoint eu-west-1 als Beispiel)
openssl s_client -starttls smtp -connect email-smtp.eu-west-1.amazonaws.com:587 -crlf -quiet
# erwartet: Zertifikatskette und "250 ..."-Zeilen; mit QUIT beenden

# 465 mit implizitem TLS
openssl s_client -connect email-smtp.eu-west-1.amazonaws.com:465 -crlf -quiet

# Ausweich-Ports, wenn auch 587 und 465 gesperrt sind (z. B. DigitalOcean)
nc -vz -w 5 email-smtp.eu-west-1.amazonaws.com 2587
nc -vz -w 5 smtp.mailgun.org 2525
💡 Tipp: Führe jeden Test zweimal aus, einmal mit nc -4 und einmal mit nc -6. Anbieter filtern IPv4 und IPv6 manchmal unterschiedlich, und dein MTA probiert gern zuerst einen AAAA-Eintrag.

Welche Cloud-Anbieter sperren Port 25?

Die meisten großen Clouds sperren ausgehenden Port 25 auf neuen Servern standardmäßig; sie unterscheiden sich vor allem darin, ob sich die Sperre aufheben lässt. Am strengsten ist DigitalOcean, weil dort auch 465 und 587 gesperrt sind; Hetzner Cloud und Vultr prüfen Anträge im Einzelfall; AWS hat ein Antragsformular; Google Cloud hebt die Sperre pro Projekt selbst auf, sobald es das Projekt als risikoarm einstuft.

AnbieterAusgehend 25 standardmäßig465 / 587Freischaltung möglich?
DigitalOcean Droplets✗ Gesperrt✗ Beide gesperrt, auch über Reserved IPsDie Doku beschreibt keine Freischaltung und empfiehlt einen externen E-Mail-Dienst (DigitalOcean)
Hetzner Cloud✗ Gesperrt465 gesperrt, ✓ 587 offen~ Nach einem Monat und bezahlter erster Rechnung per Limit-Anfrage in der Hetzner Console, Entscheidung im Einzelfall (Hetzner)
AWS EC2 und Lambda✗ Gesperrt, außer das Konto steht auf der Allowlist✓ Offen~ Antragsformular, ein Antrag pro Region (AWS)
Google Cloud Compute Engine✗ Gesperrt zu externen IPs✓ Von der Sperre ausgenommen~ Automatisch aufgehoben, wenn Google das Projekt als risikoarm einstuft; ein Banner auf der Seite VPC networks zeigt den Status (Google Cloud)
Azure VMs✓ Offen bei Enterprise Agreement und MCA-E; ✗ gesperrt bei allen anderen Abotypen✓ 587 zu authentifizierten Relays nicht eingeschränktEnterprise Dev/Test: Selbstfreischaltung unter Diagnose and Solve; andere: Relay nutzen (Microsoft)
Vultr✗ Gesperrt auf neuen Instanzen✓ Offen~ Support-Ticket mit Anwendungsfall, SPF/DKIM/Ratenlimits und Volumen; ohne Garantie (Vultr)

Stand: November 2026, am 12. November 2026 in der Dokumentation jedes Anbieters geprüft. Regeln ändern sich – mach den Test aus dem vorigen Abschnitt, bevor du dich auf diese Tabelle verlässt.

Kleinere Hoster wie IONOS oder Strato haben eigene Regeln und Freischaltungswege. Wenn direkte Zustellung für dich Pflicht ist, frag vor dem Kauf nach und mach den nc-Test am ersten Tag.

Port 25, 587, 465 oder 2525: wofür ist welcher?

Port 25 dient der Zustellung von Server zu Server: Dein MTA verbindet sich mit dem MX des Empfängers und übergibt die Nachricht ohne Anmeldung. Die Ports 587 und 465 dienen der Einlieferung (Submission): Eine Anwendung oder ein Mailprogramm meldet sich bei seinem Anbieter an, der dann über Port 25 von seinen etablierten IPs zustellt. Port 2525 (und bei Amazon 2587/2465) ist eine inoffizielle Alternative, die Relays für Netze anbieten, die die Standardports sperren.

Einlieferung, Relay, Zustellung

Einlieferung ist die authentifizierte Übergabe von deiner Anwendung an einen Maildienst (587/465). Relay heißt, dass dieser Dienst die Mail in deinem Auftrag weiterleitet. Zustellung ist der letzte SMTP-Schritt zum MX des Empfängers auf Port 25. Ist Port 25 gesperrt, behältst du die Einlieferung und lagerst die Zustellung aus.

PortZweckVerschlüsselungAnmeldung
25Zustellung MTA → MX (Relays nehmen ihn ebenfalls an)Optional STARTTLSKeine gegenüber einem MX
587Einlieferung beim AnbieterSTARTTLSPflicht
465Einlieferung mit implizitem TLSTLS ab dem ersten BytePflicht
2525 / 2587 / 2465Ausweich-Ports einiger RelaysSTARTTLS (2525, 2587) oder TLS (2465)Pflicht

Amazon SES akzeptiert STARTTLS auf 25, 587 und 2587 sowie TLS Wrapper auf 465 und 2465 (AWS-SES-Doku); Mailgun akzeptiert 25, 465, 587 und 2525 (Mailgun-Doku). Deshalb erreicht ein Droplet, das nicht auf 587 kommt, ein Relay meist noch über 2525 oder 2587.

Was kann ich tun, wenn Port 25 gesperrt ist?

Du hast drei realistische Möglichkeiten: über einen E-Mail-Dienst auf einem Submission-Port versenden, die Freischaltung beantragen oder die direkte Zustellung auf einen Host verlagern, der sie erlaubt. Für eine Anwendung, die Newsletter, Transaktionsmails oder Benachrichtigungen verschickt, ist das Relay in den meisten Fällen die richtige Antwort.

Option 1: Relay über einen ESP auf 587, 465 oder 2525

Leg bei einem Relay (Amazon SES, Mailgun, SendGrid, Postmark, SMTP2GO o. Ä.) SMTP-Zugangsdaten an, verifiziere dort deine Domain und trag den Relay-Host in deiner Anwendung ein. Eine minimale Postfix-Konfiguration, die alles an Amazon SES weitergibt, sieht so aus:

# /etc/postfix/main.cf (relevante Zeilen)
relayhost = [email-smtp.eu-west-1.amazonaws.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt

# /etc/postfix/sasl_passwd
[email-smtp.eu-west-1.amazonaws.com]:587 SMTP_USERNAME:SMTP_PASSWORD

# danach
sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo systemctl reload postfix

Auf DigitalOcean ersetzt du :587 durch :2587 für SES oder nimmst smtp.mailgun.org:2525, weil das Droplet Port 587 nicht erreicht. Eine vollständige Anleitung für SES mit Sandbox-Freigabe und DNS-Einträgen findest du in unserer Anleitung zur Amazon-SES-SMTP-Einrichtung.

✅ Vorteile

  • Funktioniert bei jedem Anbieter aus der Tabelle, meist in wenigen Minuten
  • Die IPs des Relays haben bereits eine Versandhistorie
  • Bounces, Beschwerden und Sperrlisten übernimmt der Dienst

❌ Zu bedenken

  • Kosten pro Nachricht und eigene Kontingente des Relays
  • Ein weiteres Unternehmen verarbeitet die Empfängeradressen – es gehört ins Verzeichnis von Verarbeitungstätigkeiten (DSGVO) und braucht einen AV-Vertrag
  • Geteilte IPs tragen die Reputation anderer Absender

Option 2: Freischaltung beantragen

Das lohnt sich, wenn du bewusst einen eigenen MTA betreibst, etwa um von dedizierten IPs zu versenden. Was du schreiben solltest, steht im nächsten Abschnitt. Rechne mit manueller Prüfung, Anforderungen an das Kontoalter und möglicher Ablehnung.

Option 3: von einem anderen Host zustellen

Lass die Anwendung, wo sie ist, und setz nur den MTA zu einem Anbieter oder auf einen dedizierten Server, der Port 25 erlaubt; eingeliefert wird dann über das Netz auf 587. Du übernimmst damit alles, was sonst das Relay erledigt: PTR, IP-Warm-up, Blocklisten-Überwachung und Bounce-Verarbeitung.

Wie beantrage ich die Freischaltung von Port 25?

Schreib einen kurzen, konkreten Antrag, der zeigt, dass du erwünschte Mails versendest, Authentifizierung eingerichtet hast und Missbrauch stoppen kannst. Anbieter prüfen solche Anträge von Hand und lehnen vage ab, also bereite zuerst DNS vor: einen A-Eintrag für den Hostnamen des Versandservers und, wo möglich, einen PTR-Eintrag, der auf diesen Namen zurückzeigt.

  1. DNS vorbereiten

    Leg mail.example.com → Server-IP an, setz den Reverse-DNS im Anbieter-Panel auf mail.example.com (AWS: an der Elastic IP; das Formular hat ein optionales rDNS-Feld) und veröffentliche SPF, DKIM und DMARC für die Absenderdomain.

  2. Formale Bedingungen prüfen

    Hetzner Cloud verlangt ein Konto, das älter als einen Monat ist, und eine bezahlte erste Rechnung; AWS einen Antrag pro Region; Vultr fragt nach SPF/DKIM, Ratenlimits und Volumen.

  3. Antrag stellen

    Über das Formular oder das Ticketsystem des Anbieters, nicht über einen Forenbeitrag.

  4. Erneut testen

    Manche Anbieter brauchen einen Neustart oder Stop/Start, damit die neue Regel greift (Azure schreibt das für freigeschaltete Abos ausdrücklich).

Ein Antrag, der die üblichen Fragen beantwortet (die meisten Anbieter bearbeiten ihn auf Englisch):

Subject: Request to allow outbound SMTP (TCP 25) for server 203.0.113.10

We run a self-hosted email platform for our own company (example.com) on this
server. It sends opt-in newsletters and transactional emails (order and account
notifications) to people who subscribed through a double opt-in form.

- Sending host: mail.example.com (A record and PTR set to 203.0.113.10)
- SPF, DKIM and DMARC (p=quarantine) are published for example.com
- Expected volume: about 2,000 messages per day, rate-limited to 300 per hour
- Every message has a one-click unsubscribe link; bounces and complaints are
  suppressed automatically
- Abuse contact: postmaster@example.com

Please remove the outbound port 25 restriction for this server.

Nenn deine echten Zahlen. Einen vagen Antrag kann der Anbieter leicht ablehnen, und bei späteren Beschwerden kann er die Sperre wieder einführen.

Warum reicht ein offener Port 25 nicht?

Weil der empfangende Server die IP bewertet und nicht nur die Verbindung: Ohne passenden PTR-Eintrag, authentifizierte Domain und Versandhistorie wird eine frische Cloud-IP abgewiesen oder landet im Spam. Gmail, Yahoo und Microsoft verlangen Authentifizierung von Massenversendern, und ein in beide Richtungen stimmiger Reverse-DNS gehört dazu.

PTR (Reverse-DNS)

dig +short -x 203.0.113.10        # sollte mail.example.com. liefern
dig +short A mail.example.com     # sollte 203.0.113.10 liefern
# der HELO/EHLO-Name deines MTA sollte derselbe Hostname sein

Ein generischer, vom Anbieter vergebener PTR-Name oder gar kein PTR ist ein häufiger Grund für Ablehnungen. Wenn du Gmails 550-5.7.26 oder ähnliche Authentifizierungsfehler siehst, arbeite unsere Anleitung zum Gmail-Fehler 550-5.7.26 durch.

IP-Reputation und Warm-up

Eine neue IP hat keine Historie, und Cloud-Adressbereiche werden oft misstrauisch behandelt. Starte mit kleinen Tagesmengen an deine aktivsten Empfänger und steigere sie über Wochen, während du Bounces und Beschwerden beobachtest. Den Warm-up-Plan und die Absenderregeln von Gmail, Yahoo und Outlook im Vergleich findest du im Leitfaden zur Zustellbarkeit für selbst gehostete Absender (Englisch).

Betriebsaufwand

Direkte Zustellung heißt auch: Rückstellungen (4xx), Wiederholungen, Feedback-Loops und Blocklisten-Prüfungen machst du selbst. Wenn das mehr Arbeit ist als der Grund, aus dem du Port 25 wolltest, nimm ein Relay.

Docker, Firewall und IPv6: Test auf dem Host klappt, Mails trotzdem nicht

Ein erfolgreicher Test auf dem Host beweist nicht, dass ein Container denselben Port erreicht – und umgekehrt. Container im Docker-Bridge-Netz verlassen den Host per NAT über die FORWARD-Kette, Host-Prozesse über OUTPUT; Egress-Regeln können also für das eine gelten und für das andere nicht.

  • Teste aus dem Container, der wirklich versendet. Viele Anwendungs-Images haben PHP oder Python, aber kein nc; das hier funktioniert in jedem PHP-Container:
    docker compose exec app php -r '$s=@fsockopen("email-smtp.eu-west-1.amazonaws.com",587,$e,$m,5); echo $s ? fgets($s) : "failed: $m\n";'
  • ufw mit default deny outgoing sperrt den Host, und Regeln wie ufw allow out 587/tcp gelten für Host-Verkehr. Ausgehender Container-Verkehr läuft über Dockers eigene Ketten; willst du ihn einschränken, dann in DOCKER-USER.
  • Cloud-Firewalls (Security Groups, Hetzner Firewalls, VPC-Egress-Regeln) kommen zur anbieterweiten Sperre hinzu. In Google Cloud brauchst du zum Beispiel eine Allow-Regel für den Relay-Port, wenn du eine Deny-all-Egress-Regel angelegt hast.
  • IPv6: Dockers Standard-Bridge-Netz ist nur IPv4, Container verbinden sich also meist über IPv4, selbst wenn der Host IPv6 hat. Ein MTA im Host-Netz kann aber AAAA-Einträge bevorzugen; dann braucht die IPv6-Adresse einen eigenen PTR und dieselben Tests.
  • DNS im Container: Kann der Container den Relay-Hostnamen nicht auflösen, sieht der Fehler wie ein Netzwerkproblem aus. Prüfe mit docker compose exec app getent hosts email-smtp.eu-west-1.amazonaws.com.

Versand mit NetSendo bei gesperrtem Port 25

NetSendo versendet Kampagnen über Postfächer, die du im Panel anlegst, und ein SMTP-Postfach (Host, Port, Benutzer, Passwort, Verschlüsselung), das mit einem Relay wie Amazon SES oder Mailgun verbunden ist, arbeitet auf 587, 465 oder einem Ausweich-Port – ein gesperrter Port 25 betrifft es nicht. Die Variablen beschreibt die Konfigurationsreferenz; NetSendo setzt keine eigenen Versandlimits, dein Volumen bestimmt also das Relay.

Der optionale NetSendo MTA (NMI, ein Haraka-Container, gestartet mit docker compose --profile nmi up -d, eine GOLD-Funktion) ist anders: Er stellt direkt an die Server der Empfänger zu und braucht deshalb ausgehenden Port 25 und einen PTR-Eintrag für jede Versand-IP. Ist der Port gesperrt, nimmt der MTA Mails an, kann sie aber nicht zustellen, und docker logs netsendo-mta zeigt Verbindungs-Timeouts. Seit Version 2.9.0 erklärt Settings → Mail Infrastructure → Configure Providers die Port-25-Regel jedes IP-Anbieters, und NMI_HELO_HOST setzt den HELO-Namen, der zum PTR-Eintrag passen sollte.

📌 Das Wichtigste

  • Ein Timeout bei nc -vz host 25 heißt: gefiltert; eine 220-Begrüßung heißt: offen.
  • Nutze ein Relay auf 587/465 (2525/2587 bei DigitalOcean), außer du betreibst bewusst einen eigenen MTA.
  • Freischaltungsanträge brauchen fertiges DNS und ehrliche Zahlen; eine Zusage gibt es nie garantiert.
  • Ein offener Port ist erst der Anfang: PTR, SPF, DKIM, DMARC und Warm-up entscheiden über das Postfach.

🎯 Expertentipps

1
Vor dem Umzug testen

Starte die günstigste Instanz in der Zielregion und mach die nc- und openssl-Tests, bevor du irgendetwas migrierst.

2
Relay und MTA trennen

Schick Transaktionsmails über ein Relay, auch wenn Newsletter über deinen eigenen MTA laufen – ein Reputationsproblem auf einem Weg stoppt dann keine Passwort-Resets.

3
SMTP-Dialog protokollieren

Schalte bei den ersten Sendungen das SMTP-Debug-Logging ein. Der genaue Antwortcode verrät, ob es eine Netzsperre, ein Anmeldefehler oder ein Reputationsfilter ist.

4
Nach jeder Infrastrukturänderung neu testen

Eine neue Firewall, eine neue IP oder ein Wechsel der Region kann eine bereits aufgehobene Sperre zurückbringen.

Häufig gestellte Fragen

Wie erkenne ich, ob Port 25 auf meinem VPS blockiert ist?

Führe auf dem Server nc -vz -w 5 gmail-smtp-in.l.google.com 25 aus. Eine 220-Begrüßung oder 'succeeded' heißt, der Port ist offen; ein Timeout heißt, dass Anbieter oder Firewall ausgehenden Port 25 filtern.

Warum sperren Cloud-Anbieter Port 25?

Über Port 25 stellen Server einander Mails zu, und gekaperte oder missbrauchte Cloud-Server sind eine häufige Spamquelle. Die Standardsperre schützt die IP-Bereiche des Anbieters vor Blocklisten.

Kann ich Port 587 statt Port 25 verwenden?

Ja, wenn du über ein Relay oder einen E-Mail-Dienst versendest, der authentifizierte Einlieferung auf 587 annimmt. Für die direkte Zustellung an die MX-Server der Empfänger, die nur auf 25 lauschen, ersetzt 587 den Port 25 nicht.

Schaltet DigitalOcean Port 25 frei?

Laut DigitalOcean-Dokumentation sind 25, 465 und 587 auf allen Droplets standardmäßig gesperrt, und ein Freischaltungsweg wird nicht beschrieben; empfohlen wird ein externer E-Mail-Dienst. Relays mit Port 2525 oder 2587 sind der übliche Ausweg.

Reicht ein offener Port 25 für zuverlässigen Versand?

Nein. Empfangende Server prüfen auch einen passenden PTR-Eintrag, SPF, DKIM, DMARC und die Versandhistorie der IP. Eine neue Cloud-IP braucht ein schrittweises Warm-up, bevor größere Mengen im Postfach ankommen.

Quellen

Versende vom eigenen Server, über das Relay deiner Wahl

NetSendo läuft mit Docker auf deinem Server und versendet über SMTP-Relays, die Gmail API, SendGrid oder den eigenen MTA, ohne eigene Versandlimits.

#smtp#port 25#vps#deliverability#self-hosting
Teilen