Windows 7 und Localhost / 127.0.0.1

Gast #2807222
Lesenswert?

Unter XP können meine MS Visual C++ Programme problemlos über 
"localhost" kommunizieren, unter Windows 7 klappt das nicht mehr. Es gab 
wohl auch Probleme, so auf einen Datenbankserver zuzugreifen.

Allerdings lässt sich mit zwei socat [1] Instanzen dennoch so per TCP 
kommunizieren.

Die altbekannte umleitung von localhost zu 127.0.0.1 ist in der Windows 
7 hosts auskommentiert, mit Hinweis darauf, dass der DNS das erledigt.
Einkommentieren ändert nichts am Verhalten.

Es bleibt mir derzeit nichts anderes übrig, als die LAN Adresse der 
Maschine zur lokalen Kommunikation zu nutzen.

Ist dieses Verhalten "by design" / gibt es einen workaround?


[1] http://www.dest-unreach.org/socat/
Gast #2807230
Lesenswert?

geht bei mir problemlos

C:\Users\ICH>ping -4 localhost

Ping wird ausgeführt für PC [127.0.0.1] mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
#2807244
Lesenswert?

Stimmt auffallend, aber dafür kann ich nix. Wie gesagt, das Netz ist 
IPv4, das DNS auch. Dass die Windows-Kiste für localhost IPv6 verwendet 
ist ihre Entscheidung. IPv4 geht aber auch:

Ping wird ausgeführt für 127.0.0.1 mit 32 Bytes Daten:
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128

Der Name "localhost" wird, wenn mit IPv4 verwendet, zu 127.0.0.1 
aufgelöst:

X:\temp>host localhost
Name: (...)
Address: 127.0.0.1
Gast #2807261
Lesenswert?

Pingen kann ich auch..
Es wird was mit geänderten Sicherheitvorkehrungen zu tun haben 
(WINSOCK). Allerdings bin ich Einsteiger und steige nicht wirklich 
durch:

Winsock server not working on Win7:
http://forums.codeguru.com/archive/index.php/t-507783.html

Using SO_REUSEADDR and SO_EXCLUSIVEADDRUSE:
http://msdn.microsoft.com/en-us/library/ms740621(v=vs.85).aspx

Dass ping und socat funktionieren, heisst nur, dass es gehen müsste. 
Offenbar muss also beim Herstellen der Netzwerkverbindug unter Windows 7 
mehr berücksichtigt werden als bislang.
Gast #2808025
Lesenswert?

Ich kann problemlos z.B. zu einer postgresql-DB via 127.0.0.1 zugreifen 
unter win7.

Ich vermute stark dass da bei dir einfach passende Regeln in der 
Windows-Firewall fehlen:
- Bei Anwendungen sollte eigentlich die Firewall nachfragen, sobald die 
Anwendung versucht an einem Port zu lauschen (unter Visual Studio laufen 
Anwendungen im Debugger teilweise über vshost.exe oder ähnlich, evtl. 
wurde die mal versehentlich geblockt - dann kommt die Meldung nicht 
mehr...)
- Bei Diensten sorgt in der Regel der dazugehörige Installer dafür 
passende Firewall-Regeln anzulegen.

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