
- Stellen Sie sich eine Serveranwendung vor, die nur auf dem lokalen Host lauscht.
- das keine Einstellungen zum Abhören anderer Schnittstellen hat
- man möchte es zwingen, auf anderen Schnittstellen wie eth0 zu lauschen
bindp(libindp.so) kann das. Es ist jedoch nicht in Debian-Repositories verfügbar, was es umständlich macht. Daher frage ich, ob es Alternativen zu bindp gibt, um dasselbe Ziel zu erreichen?
Antwort1
Dies wurde bereits dutzendmal gefragt und eine akzeptable Antwort ist die Verwendung von iptables:
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
Der erste Befehl dient dazu, Umleitungen vom externen Netzwerk zum internen Netzwerk zuzulassen (was aus Sicherheitsgründen deaktiviert ist) und der zweite dient dazu, die Umleitung durchzuführen (natürlich müssen Sie die Ports an Ihren speziellen Fall anpassen, den Sie überhaupt nicht erklärt haben).
Eine andere Lösung könnte die Verwendung OpenSSH
einer lokalen Portumleitung sein, mit der Sie im Grunde dasselbe tun können, ohne jedoch den Kernel-Schutz zu deaktivieren (ich gehe hier nicht näher darauf ein, da die andere Lösung bereits funktioniert).
Abhängig vom Protokoll, das Ihr lokaler Dienst verwendet, können Sie es auch nginx
als Reverse-Proxy oder sshl
Multiplexer verwenden.
Schließlich können hierfür auch , und Freunde verwendet werden socat
.stunnel
Der Vorteil der iptables-Lösung besteht darin, dass sie im Kernel liegt und daher schneller ist.
Warnung
Da es sich bei SE um ein System handelt, bei dem präzise Antworten besser sind als der Versuch, Probleme tatsächlich zu lösen, habe ich versucht, die Frage zu beantworten. Angesichts Ihrer Beschreibung, die nicht detailliert genug ist, vermute ich jedoch, dass Sie sich tatsächlich in einem dieser beiden Fälle befinden:
- Entweder kann der Dienst tatsächlich so konfiguriert werden, dass er auf eine über Word erreichbare Schnittstelle lauscht, Sie wissen aber nicht wie. In diesem Fall hätten Sie den Dienst selbst beschreiben und fragen sollen, wie dieser von außen verfügbar gemacht werden kann.
- Oder der Dienst ist aus technischen oder sicherheitsrelevanten Gründen tatsächlich nicht für die telefonische Erreichbarkeit vorgesehen.
Ich kann jedoch keine genaueren Angaben machen, wenn ich nicht weiß, um welchen Dienst es sich handelt.
Antwort2
socatWerkzeug (Debian-Paket) kann helfen:
socat -d -d TCP4-LISTEN:80,bind=192.168.1.1,fork TCP4:localhost:80
Antwort3
Mit IPv6 wird dieiptables-Lösung funktioniert nicht. Sie können stattdessen die Lösung von @Artem verwenden, wie
sudo socat TCP6-LISTEN:80,bind=[2001::beef],fork TCP6:[2001::beef]:8080