Linux Port extern erreichbar machen

Gast #4188182
Lesenswert?

Hallo zusammen,

ich habe eine Software, die auf dem Port 50000 Daten sendet.

Mit "telnet localhost 50000" kann ich die Daten anzeigen. Nun möchte ich 
von einem anderen Netzwerk Device die Daten einlesen. Das funktioniert 
leider nicht, da der Port nur für localhost "freigegeben" ist:

netstat -nlp liefert folgende Information:
Local Address: 127.0.0.1:50000

An der Software kann ich leider nichts ändern. Kann ich nicht einfach 
einen Port mit Local Address 0.0.0.0 auf den internen Port weiterleiten?

Ich habe mich gerade mit iptables versucht, bin aber noch nicht 
durchgestiegen. Vielleicht hat jemand von euch einen Tipp für mich.

Ich habe es mir so vorgestellt: Port 50001 mit Local Address 0.0.0.0 auf 
Port 50000 mit Local Address 127.0.0.1 weiterleiten?

Vielen Dank!
Steffen
Gast #4188202
Lesenswert?

Hallo Marc,

danke, dass du dir das anschaust. Meine Linux Kenntnisse sind leider 
noch etwas rudimentär. Meine Versuche:

iptables -A INPUT -i wlan0 -p tcp --dport 50001 -j ACCEPT

sudo iptables -t nat -A PREROUTING -t nat -p tcp -d 127.0.0.1 --dport 
50000 -j DNAT --to 0.0.0.0:50001

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Das habe ich im Internet als Beispiel gefunden und entsprechend 
angepasst.

LG
#4188203
Lesenswert?

Steffen schrieb:
> An der Software kann ich leider nichts ändern.

Sicher? Was ist das denn für ein Programm?

Wenn man wollte, könnte man es vermutlich mit LD_PRELOAD ändern.

> Ich habe mich gerade mit iptables versucht, bin aber noch nicht
> durchgestiegen. Vielleicht hat jemand von euch einen Tipp für mich.

Doch, das sollte schon gehen. Schau mal nach Anleitungen für 
Portforwarding, das ist hier eigentlich nichts anderes.

> Ich habe es mir so vorgestellt: Port 50001 mit Local Address 0.0.0.0

Bei iptables hast Du keine "Local Address", sondern Selektoren. Da 
nimmst Du einfach nur -p tcp --dport 50001 und leitest das dann mit -j 
DNAT --to 127.0.0.1:50000 weiter. Das ganze natürlich im prerouting der 
nat-table.

Ich meine mich aber dunkel zu erinnern daß es irgendwo noch einen 
speziellen schutz für 127.0.0.1 gab der dort den Empfang fremder Pakete 
verhindert hat. Weiß nicht ob das genau für diesen Fall gilt oder was 
ähnliches war. Wenn es nicht geht also einfach mal in die 
messages/journal schauen. Evtl. musst du den Schutz dann noch irgendwo 
unter /proc/sys/net abschalten.
#4188204
Lesenswert?

erstmal port freischalten:

sudo iptables -A INPUT -p tcp --dport 50000 -j ACCEPT

Ausprobieren, und wenns klappt in die permanent einbinden.. wie das geht 
kommt da auch auf die Distribution an.

EDIT:Ups, falsch verstanden..das musste ich auch noch nicht machen aber 
googles erster Eintrag hört sich nach der Lösung an.

http://forum.ubuntuusers.de/topic/portweiterleitung-zum-loopbackinterface-localh/

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren