Falsche IP-Adresse beim Herstellen einer Verbindung von localhost zu localhost


0

Ich habe einen Linux-Server mit Ubuntu installiert. Wenn ich eine Verbindung zu einem Dienst (z. B. MySQL, Apache, Icecast) von demselben Computer an der Adresse herstelle 127.0.0.1zeigen sie alle, dass ich mich von meiner lokalen Adresse aus verbunden habe ( 10.10.x.x ) anstatt localhost ( 127.0.0.1 ). Es verursacht Probleme mit der Verbindung zur MySQL-Datenbank (aufgrund von Einschränkungen, die nur die Verbindung von localhost zulassen) und sieht einfach hässlich aus.

Was ist der Grund für dieses Problem? Wie man es repariert?

Antworten:


0

Leider verwendet MySQL in der Vergangenheit localhost anstelle von ip als Socket-basierte Verbindung. Sie werden 127.0.0.1 oder localhost erst sehen, wenn Sie keine Verbindung über Socket herstellen. (Ja, es ist falsch)


0

Wie üblich versteckte sich das Problem an einer anderen Stelle des Systems. Ich hatte diese Regel für iptables was ich gerade aus einem Handbuch kopiert habe:

-A POSTROUTING -j MASQUERADE

Diese Regel wurde festgelegt, um NAT für den Zugriff auf Clients auf das Internet zuzulassen. Diese Regel war an keinerlei Bedingungen gebunden, sodass Anforderungen von localhost an localhost NAT-konform waren und Anwendungen falsche IP-Adressen erkannten. Nach dem Hinzufügen einiger Bedingungen (Quell-IP-Adressen) zu dieser Regel erhielt ich 127.0.0.1 als IP-Adressen der Clients:

-A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE
-A POSTROUTING -s 10.10.10.0/24 -j MASQUERADE

Problem gelöst.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.